Skip to content

Commit fca7c04

Browse files
authored
Merge pull request diffblue#1537 from smowton/smowton/cleanup/sharing-node-test-to-catch
Convert sharing-node test to run under Catch
2 parents e35372a + c219663 commit fca7c04

File tree

3 files changed

+35
-50
lines changed

3 files changed

+35
-50
lines changed

unit/CMakeLists.txt

-12
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ list(REMOVE_ITEM sources
1010
# Used in executables
1111
${CMAKE_CURRENT_SOURCE_DIR}/miniBDD.cpp
1212
${CMAKE_CURRENT_SOURCE_DIR}/string_utils.cpp
13-
${CMAKE_CURRENT_SOURCE_DIR}/sharing_node.cpp
1413

1514
# Don't build
1615
${CMAKE_CURRENT_SOURCE_DIR}/sharing_map.cpp
@@ -70,14 +69,3 @@ target_include_directories(string_utils
7069
target_link_libraries(string_utils solvers ansi-c)
7170
add_test(NAME string_utils COMMAND $<TARGET_FILE:string_utils>)
7271
set_tests_properties(string_utils PROPERTIES LABELS "CORE;CBMC")
73-
74-
add_executable(sharing_node sharing_node.cpp)
75-
target_include_directories(sharing_node
76-
PUBLIC
77-
${CBMC_BINARY_DIR}
78-
${CBMC_SOURCE_DIR}
79-
${CMAKE_CURRENT_SOURCE_DIR}
80-
)
81-
target_link_libraries(sharing_node util)
82-
add_test(NAME sharing_node COMMAND $<TARGET_FILE:sharing_node>)
83-
set_tests_properties(sharing_node PROPERTIES LABELS "CORE;CBMC")

unit/Makefile

+1-4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ SRC += unit_tests.cpp \
2222
miniBDD_new.cpp \
2323
java_bytecode/java_string_library_preprocess/convert_exprt_to_string_exprt.cpp \
2424
java_bytecode/java_utils_test.cpp \
25+
sharing_node.cpp \
2526
solvers/refinement/string_constraint_generator_valueof/calculate_max_string_length.cpp \
2627
solvers/refinement/string_constraint_generator_valueof/get_numeric_value_from_character.cpp \
2728
solvers/refinement/string_constraint_generator_valueof/is_digit_with_radix.cpp \
@@ -69,7 +70,6 @@ OBJ += $(CPROVER_LIBS) testing-utils/testing-utils$(LIBEXT)
6970
TESTS = unit_tests$(EXEEXT) \
7071
miniBDD$(EXEEXT) \
7172
string_utils$(EXEEXT) \
72-
sharing_node$(EXEEXT) \
7373
# Empty last line
7474

7575
CLEANFILES = $(TESTS)
@@ -91,6 +91,3 @@ miniBDD$(EXEEXT): miniBDD$(OBJEXT) $(CPROVER_LIBS)
9191

9292
string_utils$(EXEEXT): string_utils$(OBJEXT) $(CPROVER_LIBS)
9393
$(LINKBIN)
94-
95-
sharing_node$(EXEEXT): sharing_node$(OBJEXT) $(CPROVER_LIBS)
96-
$(LINKBIN)

unit/sharing_node.cpp

+34-34
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1+
// Copyright 2016-2017 DiffBlue Limited. All Rights Reserved.
2+
3+
/// \file Tests for sharing-node utility
4+
15
#include <iostream>
26
#include <cassert>
37

48
#include <util/sharing_node.h>
9+
#include <testing-utils/catch.hpp>
510

611
void sharing_node_test()
712
{
8-
std::cout << "Running sharing node test" << std::endl;
9-
1013
typedef sharing_nodet<std::string, std::string> snt;
1114

1215
// internal node test
@@ -16,36 +19,36 @@ void sharing_node_test()
1619

1720
const snt *p2;
1821

19-
assert(sn1.is_empty());
22+
REQUIRE(sn1.is_empty());
2023

2124
sn1.add_child(0);
2225
sn1.add_child(1);
2326
sn1.add_child(2);
2427

25-
assert(!sn2.is_empty());
26-
assert(sn2.is_internal());
27-
assert(!sn2.is_container());
28-
assert(!sn2.is_leaf());
28+
REQUIRE(!sn2.is_empty());
29+
REQUIRE(sn2.is_internal());
30+
REQUIRE(!sn2.is_container());
31+
REQUIRE(!sn2.is_leaf());
2932

30-
assert(sn2.get_sub().size()==3);
33+
REQUIRE(sn2.get_sub().size()==3);
3134

3235
p2=sn2.find_child(0);
33-
assert(p2!=nullptr);
36+
REQUIRE(p2!=nullptr);
3437

3538
p2=sn1.find_child(0);
36-
assert(p2!=nullptr);
39+
REQUIRE(p2!=nullptr);
3740

3841
p2=sn2.find_child(3);
39-
assert(p2==nullptr);
42+
REQUIRE(p2==nullptr);
4043

4144
p2=sn1.find_child(3);
42-
assert(p2==nullptr);
45+
REQUIRE(p2==nullptr);
4346

4447
sn1.remove_child(0);
45-
assert(sn2.get_sub().size()==2);
48+
REQUIRE(sn2.get_sub().size()==2);
4649

4750
sn1.clear();
48-
assert(sn2.is_empty());
51+
REQUIRE(sn2.is_empty());
4952
}
5053

5154
// container node test
@@ -61,18 +64,18 @@ void sharing_node_test()
6164
p1=sn1.add_child(2);
6265
p2=p1;
6366

64-
assert(p1->find_leaf("a")==nullptr);
65-
assert(p2->find_leaf("a")==nullptr);
67+
REQUIRE(p1->find_leaf("a")==nullptr);
68+
REQUIRE(p2->find_leaf("a")==nullptr);
6669

6770
p1->place_leaf("a", "b");
68-
assert(p2->get_container().size()==1);
71+
REQUIRE(p2->get_container().size()==1);
6972
p1->place_leaf("c", "d");
70-
assert(p2->get_container().size()==2);
73+
REQUIRE(p2->get_container().size()==2);
7174

72-
assert(p2->is_container());
75+
REQUIRE(p2->is_container());
7376

7477
p1->remove_leaf("a");
75-
assert(p2->get_container().size()==1);
78+
REQUIRE(p2->get_container().size()==1);
7679
}
7780

7881
// copy test 1
@@ -81,16 +84,16 @@ void sharing_node_test()
8184
snt sn2;
8285

8386
sn2=sn1;
84-
assert(sn1.data.use_count()==3);
85-
assert(sn2.data.use_count()==3);
87+
REQUIRE(sn1.data.use_count()==3);
88+
REQUIRE(sn2.data.use_count()==3);
8689

8790
sn1.add_child(0);
88-
assert(sn1.data.use_count()==1);
91+
REQUIRE(sn1.data.use_count()==1);
8992
// the newly created node is empty as well
90-
assert(sn2.data.use_count()==3);
93+
REQUIRE(sn2.data.use_count()==3);
9194

9295
sn2=sn1;
93-
assert(sn2.data.use_count()==2);
96+
REQUIRE(sn2.data.use_count()==2);
9497
}
9598

9699
// copy test 2
@@ -110,20 +113,17 @@ void sharing_node_test()
110113
const snt &sn2c=sn2;
111114
sn2=sn1;
112115

113-
assert(sn1.is_internal());
114-
assert(sn2.is_internal());
116+
REQUIRE(sn1.is_internal());
117+
REQUIRE(sn2.is_internal());
115118

116119
sn1.remove_child(0);
117-
assert(sn1c.get_sub().size()==1);
120+
REQUIRE(sn1c.get_sub().size()==1);
118121

119-
assert(sn2c.get_sub().size()==2);
122+
REQUIRE(sn2c.get_sub().size()==2);
120123
}
121124
}
122125

123-
int main()
126+
TEST_CASE("Sharing node")
124127
{
125-
sharing_node_test();
126-
127-
return 0;
128+
sharing_node_test();
128129
}
129-

0 commit comments

Comments
 (0)