If a data test case uses boolean values directly passed to make in the BOOST_DATA_TEST_CASE macro the resulting value will be more or less random. This happens when compiling it on macOS / clang 10.0.1 / boost 1.7.0, but not on Windows with VS2017. It also doesn't happen with any other data types except bool.
This appears to happen because the boost::unit_test::data::monomorphic::init_list<bool> specialization that captures the data set uses a vector<bool> itself. Thus, its iterators dereference to a proxy type that only references the original value from the initial data set, and it is those proxies that get captured in the bound function during test setup.
One fix that seems to work is to introduce a wrapper structure inside init_list<bool> with a bool conversion operator, and then store the data set in a vector of that instead. Its iterators return non-proxy values, and then it should work.