Here is the full output from my program:

 

$ ./decision.test.suite

terminate called after throwing an instance of 'std::logic_error'

  what():  basic_string::_S_construct NULL not valid

Aborted (core dumped)

 

Now, all the code in this program is focussed on number crunching, so none of it involves strings.  I am guessing that I missed something in setting up a test suite.

 

After including the headers for the function objects being tested (some of which are template classes) as well as headers for several boost libraries, I have the following:

 

 

#define BOOST_TEST_MAIN decision_tests

#include <boost/test/unit_test.hpp>

#include <boost/test/floating_point_comparison.hpp>

 

BOOST_AUTO_TEST_SUITE( test_decisions )

 

BOOST_AUTO_TEST_CASE( test_dist_moments ) {

 

And I have a series of test cases that start the same way.

 

After setting up the required data for each test, I use something like:

 

    BOOST_CHECK_CLOSE( Sm, 0.00000000000, 0.0001 );

 

or something like:

 

  BOOST_CHECK(ibll(x1,i) == true);

 

Of course each test case ends with a closing '}' and the whole program ends with:

 

BOOST_AUTO_TEST_SUITE_END()

 

Now, I know I can write a suite of unit tests without using Boost::Test, but I was hoping I'd just missed something obvious.  I don't even know where to look for the cause of this exception since none of the code I actually wrote that is involved in these tests makes any use at all of any strings.

 

My guess is that I must have missed some macro required by the unit test framework that is required in order to ensure whatever string object is involved in this exception doesn't get a NULL value.  Or maybe I missed a header.  I really have no idea where to look for the cause of this problem.

 

Any guidance on what to look for or what I may have missed, would be greatly appreciated.

 

Cheers

 

Ted