Skip to content

Commit f71d4a3

Browse files
committed
Minimal fix to slow prevector tests as stopgap measure
1 parent 8ea4440 commit f71d4a3

File tree

1 file changed

+43
-19
lines changed

1 file changed

+43
-19
lines changed

src/test/prevector_tests.cpp

Lines changed: 43 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6679
public:
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

162186
BOOST_AUTO_TEST_CASE(PrevectorTestInt)

0 commit comments

Comments
 (0)