Skip to content

Commit 100c39b

Browse files
committed
Move sharing map unit tests to catch
1 parent fe34bf6 commit 100c39b

File tree

3 files changed

+102
-97
lines changed

3 files changed

+102
-97
lines changed

unit/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ SRC += unit_tests.cpp \
2828
java_bytecode/inherited_static_fields/inherited_static_fields.cpp \
2929
pointer-analysis/custom_value_set_analysis.cpp \
3030
sharing_node.cpp \
31+
sharing_map.cpp \
3132
solvers/refinement/string_constraint_generator_valueof/calculate_max_string_length.cpp \
3233
solvers/refinement/string_constraint_generator_valueof/get_numeric_value_from_character.cpp \
3334
solvers/refinement/string_constraint_generator_valueof/is_digit_with_radix.cpp \

unit/sharing_map.cpp

Lines changed: 97 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1-
#include <iostream>
2-
#include <cassert>
1+
/*******************************************************************\
2+
3+
Module: Unit tests for sharing map
4+
5+
Author: Daniel Poetzl
6+
7+
\*******************************************************************/
38

49
#include <util/sharing_map.h>
10+
#include <testing-utils/catch.hpp>
511

612
typedef sharing_mapt<irep_idt, std::string, irep_id_hash> smt;
713

@@ -24,50 +30,48 @@ void fill2(smt &sm)
2430

2531
void sharing_map_interface_test()
2632
{
27-
std::cout << "Running interface test" << std::endl;
28-
29-
// empty map
33+
SECTION("Empty map")
3034
{
3135
smt sm;
3236

33-
assert(sm.empty());
34-
assert(sm.size()==0);
35-
assert(!sm.has_key("i"));
37+
REQUIRE(sm.empty());
38+
REQUIRE(sm.size() == 0);
39+
REQUIRE(!sm.has_key("i"));
3640
}
3741

38-
// insert elements
42+
SECTION("Insert elements")
3943
{
4044
smt sm;
4145

4246
smt::const_find_type r1=sm.insert(std::make_pair("i", "0"));
43-
assert(r1.second);
47+
REQUIRE(r1.second);
4448

4549
smt::const_find_type r2=sm.insert("j", "1");
46-
assert(r2.second);
50+
REQUIRE(r2.second);
4751

4852
smt::const_find_type r3=sm.insert(std::make_pair("i", "0"));
49-
assert(!r3.second);
53+
REQUIRE(!r3.second);
5054

51-
assert(sm.size()==2);
52-
assert(!sm.empty());
55+
REQUIRE(sm.size() == 2);
56+
REQUIRE(!sm.empty());
5357
}
5458

55-
// place elements
59+
SECTION("Place elements")
5660
{
5761
smt sm1;
5862
smt sm2(sm1);
5963

6064
smt::find_type r1=sm1.place("i", "0");
61-
assert(r1.second);
62-
assert(!sm2.has_key("i"));
65+
REQUIRE(r1.second);
66+
REQUIRE(!sm2.has_key("i"));
6367

6468
std::string &s1=r1.first;
6569
s1="1";
6670

67-
assert(sm1.at("i")=="1");
71+
REQUIRE(sm1.at("i") == "1");
6872
}
6973

70-
// retrieve elements
74+
SECTION("Retrieve elements")
7175
{
7276
smt sm;
7377
sm.insert("i", "0");
@@ -77,109 +81,107 @@ void sharing_map_interface_test()
7781

7882
std::string s;
7983
s=sm2.at("i");
80-
assert(s=="0");
84+
REQUIRE(s == "0");
8185

8286
try {
8387
sm2.at("k");
84-
assert(false);
88+
REQUIRE(false);
8589
} catch (...) {}
8690

8791
s=sm2.at("j");
88-
assert(s=="1");
92+
REQUIRE(s == "1");
8993

90-
assert(sm.has_key("i"));
91-
assert(sm.has_key("j"));
92-
assert(!sm.has_key("k"));
94+
REQUIRE(sm.has_key("i"));
95+
REQUIRE(sm.has_key("j"));
96+
REQUIRE(!sm.has_key("k"));
9397

9498
std::string &s2=sm.at("i");
9599
s2="3";
96-
assert(sm2.at("i")=="3");
100+
REQUIRE(sm2.at("i") == "3");
97101

98-
assert(sm.size()==2);
102+
REQUIRE(sm.size() == 2);
99103

100104
smt::find_type r=sm.find("i");
101-
assert(r.second);
105+
REQUIRE(r.second);
102106
r.first="4";
103-
assert(sm2.at("i")=="4");
107+
REQUIRE(sm2.at("i") == "4");
104108

105109
smt::const_find_type rc=sm2.find("k");
106-
assert(!rc.second);
110+
REQUIRE(!rc.second);
107111
}
108112

109-
// remove elements
113+
SECTION("Remove elements")
110114
{
111115
smt sm;
112116
sm.insert("i", "0");
113117
sm.insert("j", "1");
114118

115-
assert(sm.erase("k")==0);
116-
assert(sm.size()==2);
119+
REQUIRE(sm.erase("k") == 0);
120+
REQUIRE(sm.size() == 2);
117121

118-
assert(sm.erase("i")==1);
119-
assert(!sm.has_key("i"));
122+
REQUIRE(sm.erase("i") == 1);
123+
REQUIRE(!sm.has_key("i"));
120124

121-
assert(sm.erase("j")==1);
122-
assert(!sm.has_key("j"));
125+
REQUIRE(sm.erase("j") == 1);
126+
REQUIRE(!sm.has_key("j"));
123127

124128
sm.insert("i", "0");
125129
sm.insert("j", "1");
126130

127131
smt sm3(sm);
128-
129-
assert(sm.has_key("i"));
130-
assert(sm.has_key("j"));
131-
assert(sm3.has_key("i"));
132-
assert(sm3.has_key("j"));
132+
133+
REQUIRE(sm.has_key("i"));
134+
REQUIRE(sm.has_key("j"));
135+
REQUIRE(sm3.has_key("i"));
136+
REQUIRE(sm3.has_key("j"));
133137

134138
sm.erase("i");
135139

136-
assert(!sm.has_key("i"));
137-
assert(sm.has_key("j"));
140+
REQUIRE(!sm.has_key("i"));
141+
REQUIRE(sm.has_key("j"));
138142

139-
assert(sm3.has_key("i"));
140-
assert(sm3.has_key("j"));
143+
REQUIRE(sm3.has_key("i"));
144+
REQUIRE(sm3.has_key("j"));
141145

142146
sm3.erase("i");
143-
assert(!sm3.has_key("i"));
147+
REQUIRE(!sm3.has_key("i"));
144148
}
145149

146-
// operator[]
150+
SECTION("Subscript operator")
147151
{
148152
smt sm;
149153

150154
sm["i"];
151-
assert(sm.has_key("i"));
155+
REQUIRE(sm.has_key("i"));
152156

153157
sm["i"]="0";
154-
assert(sm.at("i")=="0");
158+
REQUIRE(sm.at("i") == "0");
155159

156160
sm["j"]="1";
157-
assert(sm.at("j")=="1");
161+
REQUIRE(sm.at("j") == "1");
158162
}
159163
}
160164

161165
void sharing_map_copy_test()
162166
{
163-
std::cout << "Running copy test" << std::endl;
164-
165167
smt sm1;
166168
const smt &sm2=sm1;
167169

168170
fill(sm1);
169171

170-
assert(sm2.find("i").first=="0");
171-
assert(sm2.find("j").first=="1");
172-
assert(sm2.find("k").first=="2");
172+
REQUIRE(sm2.find("i").first == "0");
173+
REQUIRE(sm2.find("j").first == "1");
174+
REQUIRE(sm2.find("k").first == "2");
173175

174176
smt sm3=sm1;
175177
const smt &sm4=sm3;
176178

177-
assert(sm3.erase("l")==0);
178-
assert(sm3.erase("i")==1);
179+
REQUIRE(sm3.erase("l") == 0);
180+
REQUIRE(sm3.erase("i") == 1);
179181

180-
assert(!sm4.has_key("i"));
182+
REQUIRE(!sm4.has_key("i"));
181183
sm3.place("i", "3");
182-
assert(sm4.find("i").first=="3");
184+
REQUIRE(sm4.find("i").first == "3");
183185
}
184186

185187
class some_keyt
@@ -208,8 +210,6 @@ class some_key_hash
208210

209211
void sharing_map_collision_test()
210212
{
211-
std::cout << "Running collision test" << std::endl;
212-
213213
typedef sharing_mapt<some_keyt, std::string, some_key_hash> smt;
214214

215215
smt sm;
@@ -223,20 +223,18 @@ void sharing_map_collision_test()
223223

224224
sm.erase(8);
225225

226-
assert(sm.has_key(0));
227-
assert(sm.has_key(16));
226+
REQUIRE(sm.has_key(0));
227+
REQUIRE(sm.has_key(16));
228228

229-
assert(sm.has_key(1));
230-
assert(sm.has_key(2));
229+
REQUIRE(sm.has_key(1));
230+
REQUIRE(sm.has_key(2));
231231

232-
assert(!sm.has_key(8));
232+
REQUIRE(!sm.has_key(8));
233233
}
234234

235235
void sharing_map_view_test()
236236
{
237-
std::cout << "Running view test" << std::endl;
238-
239-
// view test
237+
SECTION("View")
240238
{
241239
smt sm;
242240

@@ -245,10 +243,10 @@ void sharing_map_view_test()
245243
smt::viewt view;
246244
sm.get_view(view);
247245

248-
assert(view.size()==3);
246+
REQUIRE(view.size() == 3);
249247
}
250248

251-
// delta view test (no sharing, same keys)
249+
SECTION("Delta view (no sharing, same keys)")
252250
{
253251
smt sm1;
254252
fill(sm1);
@@ -259,14 +257,14 @@ void sharing_map_view_test()
259257
smt::delta_viewt delta_view;
260258

261259
sm1.get_delta_view(sm2, delta_view);
262-
assert(delta_view.size()==3);
260+
REQUIRE(delta_view.size() == 3);
263261

264262
delta_view.clear();
265263
sm1.get_delta_view(sm2, delta_view, false);
266-
assert(delta_view.size()==3);
264+
REQUIRE(delta_view.size() == 3);
267265
}
268266

269-
// delta view test (all shared, same keys)
267+
SECTION("delta view (all shared, same keys)")
270268
{
271269
smt sm1;
272270
fill(sm1);
@@ -276,36 +274,36 @@ void sharing_map_view_test()
276274
smt::delta_viewt delta_view;
277275

278276
sm1.get_delta_view(sm2, delta_view);
279-
assert(delta_view.size()==0);
277+
REQUIRE(delta_view.size() == 0);
280278

281279
delta_view.clear();
282280
sm1.get_delta_view(sm2, delta_view, false);
283-
assert(delta_view.size()==0);
281+
REQUIRE(delta_view.size() == 0);
284282
}
285283

286-
// delta view test (some sharing, same keys)
284+
SECTION("delta view (some sharing, same keys)")
287285
{
288286
smt sm1;
289287
fill(sm1);
290288

291289
smt sm2(sm1);
292290
auto r=sm2.find("i");
293-
assert(r.second);
291+
REQUIRE(r.second);
294292
r.first="3";
295293

296294
smt::delta_viewt delta_view;
297295

298296
sm1.get_delta_view(sm2, delta_view);
299-
assert(delta_view.size()>0); // not everything is shared
300-
assert(delta_view.size()<3); // there is some sharing
297+
REQUIRE(delta_view.size() > 0); // not everything is shared
298+
REQUIRE(delta_view.size() < 3); // there is some sharing
301299

302300
delta_view.clear();
303301
sm1.get_delta_view(sm2, delta_view, false);
304-
assert(delta_view.size()>0); // not everything is shared
305-
assert(delta_view.size()<3); // there is some sharing
302+
REQUIRE(delta_view.size() > 0); // not everything is shared
303+
REQUIRE(delta_view.size() < 3); // there is some sharing
306304
}
307305

308-
// delta view test (no sharing, different keys)
306+
SECTION("delta view (no sharing, different keys)")
309307
{
310308
smt sm1;
311309
fill(sm1);
@@ -316,21 +314,30 @@ void sharing_map_view_test()
316314
smt::delta_viewt delta_view;
317315

318316
sm1.get_delta_view(sm2, delta_view);
319-
assert(delta_view.size()==0);
317+
REQUIRE(delta_view.size() == 0);
320318

321319
delta_view.clear();
322320
sm1.get_delta_view(sm2, delta_view, false);
323-
assert(delta_view.size()==3);
321+
REQUIRE(delta_view.size() == 3);
324322
}
325323
}
326324

327-
int main()
325+
TEST_CASE("Sharing map interface")
328326
{
329327
sharing_map_interface_test();
328+
}
329+
330+
TEST_CASE("Sharing map copying")
331+
{
330332
sharing_map_copy_test();
331-
sharing_map_collision_test();
332-
sharing_map_view_test();
333+
}
333334

334-
return 0;
335+
TEST_CASE("Sharing map collisions")
336+
{
337+
sharing_map_collision_test();
335338
}
336339

340+
TEST_CASE("Sharing map views")
341+
{
342+
sharing_map_view_test();
343+
}

0 commit comments

Comments
 (0)