Distribution Unit Tests failing
Summary
The distribution unit tests are failing. See also http://amas.web.psi.ch/opal/unitTests/master/results_2020-04-25.xml
Steps to reproduce
compile OPAL with BUILD_UNIT_TESTS
./tests/opal_unit_tests --gtest_filter=Binomial*
./tests/opal_unit_tests --gtest_filter=Gauss*
What is the current bug behavior?
Segmentation fault
What is the expected correct behavior?
Successful test
Relevant logs and/or screenshots
Ippl> CommMPI: Parent process waiting for children ...
Ippl> CommMPI: Initialization complete.
Note: Google Test filter = Gauss*
[==========] Running 3 tests from 2 test suites.
[----------] Global test environment set-up.
[----------] 2 tests from GaussTest
[ RUN ] GaussTest.FullSigmaTest1
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
0x00007fff92fdfa8d in __dynamic_cast ()
(gdb) bt
#0 0x00007fff92fdfa8d in __dynamic_cast ()
#1 0x0000000100567089 in Attributes::setString (attr=@0x105808a00, val=@0x7fff5fbfee80) at /Users/jsnuverink/Documents/OPAL/fork/src/src/Attributes/Attributes.cpp:363
#2 0x0000000100013301 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__is_long () at /opt/local/libexec/llvm-9.0/include/c++/v1/string:37
#3 0x0000000100013301 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string () at /Users/jsnuverink/Documents/OPAL/fork/src/tests/opal_src/Distribution/GaussTest.cpp:2137
#4 0x0000000100013301 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string () at /opt/local/libexec/llvm-9.0/include/c++/v1/string:2133
#5 0x0000000100013301 in GaussTest_FullSigmaTest1_Test::TestBody () at /Users/jsnuverink/Documents/OPAL/fork/src/tests/opal_src/Distribution/GaussTest.cpp:37
#6 0x0000000100b7ef03 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::TestSuite, void> () at gtest.cc:2433
#7 0x0000000100b63757 in testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=0x104600c80, method=not implemented: member type in c_val_print
) at gtest.cc:2469
#8 0x0000000100b23932 in testing::Test::Run (this=0x104600c80) at gtest.cc:2508
#9 0x0000000100b2533a in testing::TestInfo::Run (this=0x104414330) at gtest.cc:2684
#10 0x0000000100b263af in testing::TestSuite::Run (this=0x1044144a0) at gtest.cc:2816
#11 0x0000000100b3efe9 in testing::internal::UnitTestImpl::RunAllTests (this=0x104412ff0) at gtest.cc:5338
#12 0x0000000100b7fe73 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x104412ff0, method=not implemented: member type in c_val_print
) at gtest.cc:2433
#13 0x0000000100b65bd7 in testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x104412ff0, method=not implemented: member type in c_val_print
) at gtest.cc:2469
#14 0x0000000100b3e902 in testing::UnitTest::Run (this=0x100d863a0) at gtest.cc:4925
#15 0x0000000100003502 in RUN_ALL_TESTS () at /opt/local/include/gtest/gtest.h:2473
Possible fixes
The Distribution attribute TYPE
has been changed in !341 (merged) to uppercase. All setString methods should be changed in setUpperCaseString.
Attributes::setString(dist.itsAttr[Attrib::Distribution::TYPE], "GAUSS");
to
Attributes::setUpperCaseString(dist.itsAttr[Attrib::Distribution::TYPE], "GAUSS");