Jellyfish
Jellyfish copied to clipboard
ppc64le: Unit test fails erroneously
Testing on PPC64le, unit tests fail erroneously. The tests should be altered so that they no longer erroneously fail.
The error can be recreated by compiling on an IBM POWER8 Red Hat system with --without-sse and running make check
.
[u0017592@sys-82143 jellyfish-2.2.4]$ sudo make check
make check-am
make[1]: Entering directory `/home/u0017592/projects/jellyfish-2.2.4'
make libgtest.la libgtest_main.la bin/generate_sequence bin/test_all
make[2]: Entering directory `/home/u0017592/projects/jellyfish-2.2.4'
CXX unit_tests/gtest/src/libgtest_la-gtest-all.lo
CXXLD libgtest.la
CXX unit_tests/gtest/src/libgtest_main_la-gtest_main.lo
CXXLD libgtest_main.la
CXX jellyfish/generate_sequence.o
CXX jellyfish/mersenne.o
CXX jellyfish/backtrace.o
CXX jellyfish/dbg.o
CXXLD bin/generate_sequence
CXX unit_tests/bin_test_all-test_main.o
CXX unit_tests/bin_test_all-test_misc.o
CXX unit_tests/bin_test_all-test_offsets_key_value.o
CXX unit_tests/bin_test_all-test_simple_circular_buffer.o
CXX unit_tests/bin_test_all-test_rectangular_binary_matrix.o
CXX unit_tests/bin_test_all-test_mer_dna.o
CXX unit_tests/bin_test_all-test_large_hash_array.o
CXX unit_tests/bin_test_all-test_mer_overlap_sequence_parser.o
CXX unit_tests/bin_test_all-test_file_header.o
CXX unit_tests/bin_test_all-test_mer_iterator.o
CXX unit_tests/bin_test_all-test_hash_counter.o
CXX unit_tests/bin_test_all-test_mer_heap.o
CXX unit_tests/bin_test_all-test_stream_iterator.o
CXX unit_tests/bin_test_all-test_token_ring.o
CXX unit_tests/bin_test_all-test_text_dumper.o
CXX unit_tests/bin_test_all-test_dumpers.o
CXX unit_tests/bin_test_all-test_mapped_file.o
CXX unit_tests/bin_test_all-test_int128.o
CXX unit_tests/bin_test_all-test_mer_dna_bloom_counter.o
CXX unit_tests/bin_test_all-test_whole_sequence_parser.o
CXX unit_tests/bin_test_all-test_allocators_mmap.o
CXX unit_tests/bin_test_all-test_cooperative_pool2.o
CXX unit_tests/bin_test_all-test_generator_manager.o
CXX unit_tests/bin_test_all-test_atomic_bits_array.o
CXX unit_tests/bin_test_all-test_stdio_filebuf.o
CXX jellyfish/bin_test_all-backtrace.o
CXXLD bin/test_all
make[2]: Leaving directory `/home/u0017592/projects/jellyfish-2.2.4'
make check-TESTS
make[2]: Entering directory `/home/u0017592/projects/jellyfish-2.2.4'
make[3]: Entering directory `/home/u0017592/projects/jellyfish-2.2.4'
PASS: tests/generate_sequence.sh
PASS: tests/parallel_hashing.sh
PASS: tests/merge.sh
PASS: tests/bloom_filter.sh
SKIP: tests/big.sh
PASS: tests/subset_hashing.sh
PASS: tests/multi_file.sh
PASS: tests/bloom_counter.sh
FAIL: tests/large_key.sh
SKIP: tests/swig_python.sh
SKIP: tests/swig_ruby.sh
SKIP: tests/swig_perl.sh
FAIL: unit_tests/unit_tests.sh
============================================================================
Testsuite summary for jellyfish 2.2.4
============================================================================
# TOTAL: 13
# PASS: 7
# SKIP: 4
# XFAIL: 0
# FAIL: 2
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to [email protected]
============================================================================
make[3]: *** [test-suite.log] Error 1
make[3]: Leaving directory `/home/u0017592/projects/jellyfish-2.2.4'
make[2]: *** [check-TESTS] Error 2
make[2]: Leaving directory `/home/u0017592/projects/jellyfish-2.2.4'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/home/u0017592/projects/jellyfish-2.2.4'
make: *** [check] Error 2
The unit testing error can be safely ignored. It occurs when using __int128 as the base type for storing mers, which is an experiment and not done by default. Everywhere else but in these few tests, uint64_t is used, and all the tests with uint64_t are successful. In addition the failure occurs in a method that is only used in the script binding, so it would not affect k-mer counting anyway.
See #63 for details.
The unit testing error can be safely ignored. It occurs when using __int128 as the base type for storing mers, which is an experiment and not done by default.
As it is an experiment wouldn't be nice if it's disabled by default? (--without-int128)
@gmarcais can you answer this issue too? x)
And this one too
@gmarcais: Running autoreconf -if using #68 and configure --without-int128 make all tests pass on ppc64le. :)
@gmarcais: Hello again :)
When you talks about __int128 been an experiment for base type for mers at #63, the __int128 must be disable at project level or only for MerDNA scope?
Best regards
Do you want to solve it or can I start it?
This is fixed. WHoeve fixed it should claim the bounty.
I think this was fixed by this PR: https://github.com/gmarcais/Jellyfish/commit/958f04918be65785ec626ded68bd0d55ccb76321
And using the --without-128 flag in configure
@jlost could you confirm if this is already fixed?
I no longer have access to the hardware to confirm for myself whether this was fixed, so I will defer to @shawnl and close it up.