A test in the bitcoin test suite is failing for me while running the sha256d64 test cases in crypto_tests.cpp, but only on 32-bit distro. It passes on 64-bit.
I expected the test suite to pass.
The test suite log is:
0$ cat test/crypto_tests.cpp.log
1Running 11 test cases...
2Entering test module "Bitcoin Test Suite"
3test/crypto_tests.cpp(23): Entering test suite "crypto_tests"
4test/crypto_tests.cpp(217): Entering test case "ripemd160_testvectors"
5test/crypto_tests.cpp(217): Leaving test case "ripemd160_testvectors"; testing time: 343157us
6test/crypto_tests.cpp(233): Entering test case "sha1_testvectors"
7test/crypto_tests.cpp(233): Leaving test case "sha1_testvectors"; testing time: 200719us
8test/crypto_tests.cpp(249): Entering test case "sha256_testvectors"
9test/crypto_tests.cpp(249): Leaving test case "sha256_testvectors"; testing time: 518373us
10test/crypto_tests.cpp(271): Entering test case "sha512_testvectors"
11test/crypto_tests.cpp(271): Leaving test case "sha512_testvectors"; testing time: 1071278us
12test/crypto_tests.cpp(308): Entering test case "hmac_sha256_testvectors"
13test/crypto_tests.cpp(308): Leaving test case "hmac_sha256_testvectors"; testing time: 10312us
14test/crypto_tests.cpp(361): Entering test case "hmac_sha512_testvectors"
15test/crypto_tests.cpp(361): Leaving test case "hmac_sha512_testvectors"; testing time: 22518us
16test/crypto_tests.cpp(429): Entering test case "aes_testvectors"
17test/crypto_tests.cpp(429): Leaving test case "aes_testvectors"; testing time: 3358us
18test/crypto_tests.cpp(445): Entering test case "aes_cbc_testvectors"
19test/crypto_tests.cpp(445): Leaving test case "aes_cbc_testvectors"; testing time: 4206us
20test/crypto_tests.cpp(497): Entering test case "chacha20_testvector"
21test/crypto_tests.cpp(497): Leaving test case "chacha20_testvector"; testing time: 3051us
22test/crypto_tests.cpp(527): Entering test case "countbits_tests"
23test/crypto_tests.cpp(527): Leaving test case "countbits_tests"; testing time: 63452us
24test/crypto_tests.cpp(549): Entering test case "sha256d64"
25test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
26test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
27test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
28test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
29test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
30test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
31test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
32test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
33test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
34test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
35test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
36test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
37test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
38test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
39test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
40test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
41test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
42test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
43test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
44test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
45test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
46test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
47test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
48test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
49test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
50test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
51test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
52test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
53test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
54test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
55test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
56test/crypto_tests.cpp(561): error: in "crypto_tests/sha256d64": check memcmp(out1, out2, 32 * i) == 0 has failed
57test/crypto_tests.cpp(549): Leaving test case "sha256d64"; testing time: 5115us
58test/crypto_tests.cpp(23): Leaving test suite "crypto_tests"; testing time: 2246048us
59Leaving test module "Bitcoin Test Suite"; testing time: 2246167us
60
61*** 32 failures are detected in the test module "Bitcoin Test Suite"
This is occurring on Fedora 29 i686 while building bitcoin. The builder has 4GB RAM. This environment includes boost 1.66.0 and openssl 1.1.1. The test passes while building bitcoin on Fedora 29 x86_64 on the same machine. The test also passed on Fedora 28 i686, which has boost 1.66.0 and openssl 1.1.0i.
This is bitcoin 0.17.0 obtained from thhe github release tagged v0.17.0.
I glanced at the test but I didn’t see anything obvious that might cause it to fail on a 32-bit system. I would appreciate a hint as to where to look next.