]>
git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/test-sholder_hh.cc
1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_NO_MAIN
4 #include <boost/test/unit_test.hpp>
16 static GlobalStateHolder
<TestObject
> g_to
;
17 std::atomic
<bool> g_failed
;
19 BOOST_AUTO_TEST_SUITE(sholder_hh
)
23 auto local
= g_to
.getLocal();
24 for(int n
=0; n
< 10000000; ++n
) {
26 if(g
.name
!= std::to_string(g
.number
)) {
33 BOOST_AUTO_TEST_CASE(test_sholder
) {
34 g_to
.setState({"1", 1});
36 std::thread
t1(treader
);
37 for(unsigned int n
=0; n
< 1000000; ++n
) {
38 g_to
.setState({std::to_string(n
), n
});
39 g_to
.modify([n
](TestObject
& to
) { to
.number
= 2*n
; to
.name
=std::to_string(to
.number
);} );
42 BOOST_CHECK_EQUAL(g_failed
, 0);
46 BOOST_AUTO_TEST_SUITE_END()