@@ -26,57 +26,70 @@ class prevector_tester {
2626 pretype pre_vector_alt;
2727
2828 typedef typename pretype::size_type Size;
29+ bool passed = true ;
30+ uint32_t insecure_rand_Rz_cache;
31+ uint32_t insecure_rand_Rw_cache;
2932
33+
34+ template <typename A, typename B>
35+ void local_check_equal (A a, B b)
36+ {
37+ local_check (a == b);
38+ }
39+ void local_check (bool b)
40+ {
41+ passed &= b;
42+ }
3043 void test () {
3144 const pretype& const_pre_vector = pre_vector;
32- BOOST_CHECK_EQUAL (real_vector.size (), pre_vector.size ());
33- BOOST_CHECK_EQUAL (real_vector.empty (), pre_vector.empty ());
45+ local_check_equal (real_vector.size (), pre_vector.size ());
46+ local_check_equal (real_vector.empty (), pre_vector.empty ());
3447 for (Size s = 0 ; s < real_vector.size (); s++) {
35- BOOST_CHECK (real_vector[s] == pre_vector[s]);
36- BOOST_CHECK (&(pre_vector[s]) == &(pre_vector.begin ()[s]));
37- BOOST_CHECK (&(pre_vector[s]) == &*(pre_vector.begin () + s));
38- BOOST_CHECK (&(pre_vector[s]) == &*((pre_vector.end () + s) - real_vector.size ()));
48+ local_check (real_vector[s] == pre_vector[s]);
49+ local_check (&(pre_vector[s]) == &(pre_vector.begin ()[s]));
50+ local_check (&(pre_vector[s]) == &*(pre_vector.begin () + s));
51+ local_check (&(pre_vector[s]) == &*((pre_vector.end () + s) - real_vector.size ()));
3952 }
40- // BOOST_CHECK (realtype(pre_vector) == real_vector);
41- BOOST_CHECK (pretype (real_vector.begin (), real_vector.end ()) == pre_vector);
42- BOOST_CHECK (pretype (pre_vector.begin (), pre_vector.end ()) == pre_vector);
53+ // local_check (realtype(pre_vector) == real_vector);
54+ local_check (pretype (real_vector.begin (), real_vector.end ()) == pre_vector);
55+ local_check (pretype (pre_vector.begin (), pre_vector.end ()) == pre_vector);
4356 size_t pos = 0 ;
4457 BOOST_FOREACH (const T& v, pre_vector) {
45- BOOST_CHECK (v == real_vector[pos++]);
58+ local_check (v == real_vector[pos++]);
4659 }
4760 BOOST_REVERSE_FOREACH (const T& v, pre_vector) {
48- BOOST_CHECK (v == real_vector[--pos]);
61+ local_check (v == real_vector[--pos]);
4962 }
5063 BOOST_FOREACH (const T& v, const_pre_vector) {
51- BOOST_CHECK (v == real_vector[pos++]);
64+ local_check (v == real_vector[pos++]);
5265 }
5366 BOOST_REVERSE_FOREACH (const T& v, const_pre_vector) {
54- BOOST_CHECK (v == real_vector[--pos]);
67+ local_check (v == real_vector[--pos]);
5568 }
5669 CDataStream ss1 (SER_DISK, 0 );
5770 CDataStream ss2 (SER_DISK, 0 );
5871 ss1 << real_vector;
5972 ss2 << pre_vector;
60- BOOST_CHECK_EQUAL (ss1.size (), ss2.size ());
73+ local_check_equal (ss1.size (), ss2.size ());
6174 for (Size s = 0 ; s < ss1.size (); s++) {
62- BOOST_CHECK_EQUAL (ss1[s], ss2[s]);
75+ local_check_equal (ss1[s], ss2[s]);
6376 }
6477 }
6578
6679public:
6780 void resize (Size s) {
6881 real_vector.resize (s);
69- BOOST_CHECK_EQUAL (real_vector.size (), s);
82+ local_check_equal (real_vector.size (), s);
7083 pre_vector.resize (s);
71- BOOST_CHECK_EQUAL (pre_vector.size (), s);
84+ local_check_equal (pre_vector.size (), s);
7285 test ();
7386 }
7487
7588 void reserve (Size s) {
7689 real_vector.reserve (s);
77- BOOST_CHECK (real_vector.capacity () >= s);
90+ local_check (real_vector.capacity () >= s);
7891 pre_vector.reserve (s);
79- BOOST_CHECK (pre_vector.capacity () >= s);
92+ local_check (pre_vector.capacity () >= s);
8093 test ();
8194 }
8295
@@ -157,6 +170,17 @@ class prevector_tester {
157170 pre_vector.swap (pre_vector_alt);
158171 test ();
159172 }
173+ ~prevector_tester () {
174+ BOOST_CHECK_MESSAGE (passed, " insecure_rand_Rz: "
175+ << insecure_rand_Rz_cache
176+ << " , insecure_rand_Rw: "
177+ << insecure_rand_Rw_cache);
178+ }
179+ prevector_tester () {
180+ seed_insecure_rand ();
181+ insecure_rand_Rz_cache = insecure_rand_Rz;
182+ insecure_rand_Rw_cache = insecure_rand_Rw;
183+ }
160184};
161185
162186BOOST_AUTO_TEST_CASE (PrevectorTestInt)
0 commit comments