BOOST_AUTO_TEST_CASE_TEMPLATE(CompareAndSwapFailTest, T, AtomicTypes) { Atomic<T> value = 0; T cmp = 123; bool const swapped = value.CompareAndSwap(cmp, 0); BOOST_CHECK(!swapped); BOOST_CHECK_EQUAL(cmp, T(0)); BOOST_CHECK_EQUAL(value, T(0)); }
BOOST_AUTO_TEST_CASE_TEMPLATE(CompareAndSwapSucceedTest, T, AtomicTypes) { Atomic<T> value = 0; T cmp = 0; bool const swapped = value.CompareAndSwap(cmp, 123); BOOST_CHECK(swapped); BOOST_CHECK_EQUAL(cmp, T(0)); BOOST_CHECK_EQUAL(value, T(123)); }