Skip to content

Commit ec18bb0

Browse files
committed
test: migrate from Catch2 to GTest
1 parent fc84cdf commit ec18bb0

File tree

11 files changed

+358
-401
lines changed

11 files changed

+358
-401
lines changed

Diff for: Bar/tests/CMakeLists.txt

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ elseif(UNIX)
1919
INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:$ORIGIN")
2020
endif()
2121
target_link_libraries(bar_test PRIVATE
22-
#GTest::gtest_main
23-
Catch2::Catch2WithMain
22+
GTest::gtest_main
2423
${PROJECT_NAMESPACE}::Bar)
2524

2625
add_test(NAME bar_test COMMAND bar_test)

Diff for: Bar/tests/bar_test.cpp

+116-122
Original file line numberDiff line numberDiff line change
@@ -1,155 +1,149 @@
1-
#include <catch2/catch_test_macros.hpp>
1+
#include <bar/Bar.hpp>
2+
3+
#include <gtest/gtest.h>
24
#include <iostream>
35
#include <numeric>
46
#include <string>
57

6-
#include <bar/Bar.hpp>
7-
88
namespace bar {
99

10-
TEST_CASE("Bar free function", "[Bar]") {
11-
SECTION("Int Function") { REQUIRE_NOTHROW(freeFunction(42)); }
12-
SECTION("Int64_t Function") { REQUIRE_NOTHROW(freeFunction(int64_t{42})); }
10+
TEST(BarTest, FreeFunction) {
11+
EXPECT_NO_THROW(freeFunction(42));
12+
EXPECT_NO_THROW(freeFunction(int64_t{42}));
1313
}
1414

15-
TEST_CASE("String Vector usage", "[Bar]") {
16-
SECTION("Vector of String Output") {
17-
std::vector<std::string> result;
18-
REQUIRE_NOTHROW(result = stringVectorOutput(8));
19-
REQUIRE(result.size() == 8);
20-
for (const auto& it : result) {
21-
REQUIRE(it == std::to_string(8));
22-
}
23-
}
24-
SECTION("Vector of String Input by value") {
25-
std::vector<std::string> data{"1", "2", "3", "4", "5"};
26-
int size = 0;
27-
REQUIRE_NOTHROW(size = stringVectorInput(data));
28-
REQUIRE(size == 5);
29-
}
30-
SECTION("Vector of String Input by const ref") {
31-
std::vector<std::string> data{"1", "2", "3", "4", "5"};
32-
int size = 0;
33-
REQUIRE_NOTHROW(size = stringVectorRefInput(data));
34-
REQUIRE(size == 5);
15+
TEST(BarTest, StringVectorOutput) {
16+
std::vector<std::string> result;
17+
ASSERT_NO_THROW(result = stringVectorOutput(8));
18+
EXPECT_EQ(result.size(), 8);
19+
for (const auto& it : result) {
20+
EXPECT_EQ(it, std::to_string(8));
3521
}
3622
}
3723

38-
TEST_CASE("String Jagged Array usage", "[Bar]") {
39-
SECTION("Jagged Array of String Output") {
40-
std::vector<std::vector<std::string>> result;
41-
REQUIRE_NOTHROW(result = stringJaggedArrayOutput(8));
42-
REQUIRE(result.size() == 8);
43-
for (int i = 0; i < result.size(); ++i) {
44-
REQUIRE(i + 1 == result[i].size());
45-
}
46-
for (int i = 1; i <= result.size(); ++i) {
47-
const auto& inner = result[i - 1];
48-
for (const auto& it : inner) {
49-
REQUIRE(it == std::to_string(i));
50-
}
51-
}
52-
}
53-
SECTION("Jagged Array of String Input by value") {
54-
std::vector<std::vector<std::string>> data{{"1", "2", "3"}, {"4", "5"}};
55-
int size = 0;
56-
REQUIRE_NOTHROW(size = stringJaggedArrayInput(data));
57-
REQUIRE(size == 2);
58-
}
59-
SECTION("Jagged Array of String Input by const ref") {
60-
std::vector<std::vector<std::string>> data{{"1", "2", "3"}, {"4", "5"}};
61-
int size = 0;
62-
REQUIRE_NOTHROW(size = stringJaggedArrayRefInput(data));
63-
REQUIRE(size == 2);
64-
}
24+
TEST(BarTest, StringVectorValueInput) {
25+
const std::vector<std::string> data{"1", "2", "3", "4", "5"};
26+
int size = 0;
27+
ASSERT_NO_THROW(size = stringVectorInput(data));
28+
EXPECT_EQ(size, 5);
6529
}
6630

67-
TEST_CASE("Pair Vector usage", "[Bar]") {
68-
SECTION("Vector of Pair Output") {
69-
std::vector<std::string> result;
70-
REQUIRE_NOTHROW(result = stringVectorOutput(8));
71-
REQUIRE(result.size() == 8);
72-
for (const auto& it : result) {
73-
REQUIRE(it == std::to_string(8));
74-
}
75-
}
76-
SECTION("Vector of Pair Input by value") {
77-
std::vector<std::string> data{"1", "2", "3", "4", "5"};
78-
int size = 0;
79-
REQUIRE_NOTHROW(size = stringVectorInput(data));
80-
REQUIRE(size == 5);
81-
}
82-
SECTION("Vector of Pair Input by const ref") {
83-
std::vector<std::string> data{"1", "2", "3", "4", "5"};
84-
int size = 0;
85-
REQUIRE_NOTHROW(size = stringVectorRefInput(data));
86-
REQUIRE(size == 5);
87-
}
31+
TEST(BarTest, StringVectorRefInput) {
32+
const std::vector<std::string> data{"1", "2", "3", "4", "5"};
33+
int size = 0;
34+
ASSERT_NO_THROW(size = stringVectorRefInput(data));
35+
EXPECT_EQ(size, 5);
8836
}
8937

90-
TEST_CASE("Pair Jagged Array usage", "[Bar]") {
91-
SECTION("Jagged Array of Pair Output") {
92-
std::vector<std::vector<std::pair<int, int>>> result;
93-
REQUIRE_NOTHROW(result = pairJaggedArrayOutput(8));
94-
REQUIRE(result.size() == 8);
95-
for (int i = 0; i < result.size(); ++i) {
96-
REQUIRE(i + 1 == result[i].size());
97-
}
98-
for (int i = 1; i <= result.size(); ++i) {
99-
const auto& inner = result[i - 1];
100-
for (const auto& it : inner) {
101-
REQUIRE(it == std::make_pair(i, i));
102-
}
103-
}
38+
TEST(BarTest, StringJaggedArrayOutput) {
39+
std::vector<std::vector<std::string>> result;
40+
ASSERT_NO_THROW(result = stringJaggedArrayOutput(8));
41+
EXPECT_EQ(result.size(), 8);
42+
for (std::size_t i = 0; i < result.size(); ++i) {
43+
EXPECT_EQ(i + 1, result[i].size());
10444
}
105-
SECTION("Jagged Array of Pair Input by value") {
106-
std::vector<std::vector<std::pair<int, int>>> data{{{1, 1}, {2, 2}, {3, 3}}, {{4, 4}, {5, 5}}};
107-
int size = 0;
108-
REQUIRE_NOTHROW(size = pairJaggedArrayInput(data));
109-
REQUIRE(size == 2);
110-
}
111-
SECTION("Jagged Array of Pair Input by const ref") {
112-
std::vector<std::vector<std::pair<int, int>>> data{{{1, 1}, {2, 2}, {3, 3}}, {{4, 4}, {5, 5}}};
113-
int size = 0;
114-
REQUIRE_NOTHROW(size = pairJaggedArrayRefInput(data));
115-
REQUIRE(size == 2);
45+
for (std::size_t i = 1; i <= result.size(); ++i) {
46+
const auto& inner = result[i - 1];
47+
for (const auto& it : inner) {
48+
EXPECT_EQ(it, std::to_string(i));
49+
}
11650
}
11751
}
11852

119-
TEST_CASE("Bar static method", "[Bar]") {
120-
SECTION("Int Method") { REQUIRE_NOTHROW(Bar::staticFunction(42)); }
121-
SECTION("Int64_t Method") { REQUIRE_NOTHROW(Bar::staticFunction(int64_t{42})); }
53+
TEST(BarTest, StringJaggedArrayValueInput) {
54+
const std::vector<std::vector<std::string>> data{{"1", "2", "3"}, {"4", "5"}};
55+
int size = 0;
56+
ASSERT_NO_THROW(size = stringJaggedArrayInput(data));
57+
EXPECT_EQ(size, 2);
12258
}
12359

124-
TEST_CASE("Bar::Ctor", "[Bar]") {
125-
SECTION("Default constructor") {
126-
Bar* b = new Bar();
127-
REQUIRE(b != nullptr);
128-
}
60+
TEST(BarTest, StringJaggedArrayRefInput) {
61+
const std::vector<std::vector<std::string>> data{{"1", "2", "3"}, {"4", "5"}};
62+
int size = 0;
63+
ASSERT_NO_THROW(size = stringJaggedArrayRefInput(data));
64+
EXPECT_EQ(size, 2);
12965
}
13066

131-
SCENARIO("Bar Int", "[Bar]") {
132-
GIVEN("A Bar instance") {
133-
Bar bar;
134-
WHEN("Setting a value") {
135-
REQUIRE_NOTHROW(bar.setInt(42));
136-
THEN("The value is updated") { REQUIRE(bar.getInt() == 42); }
137-
}
67+
TEST(BarTest, PairVectorOutput) {
68+
std::vector<std::pair<int, int>> result;
69+
ASSERT_NO_THROW(result = pairVectorOutput(8));
70+
EXPECT_EQ(result.size(), 8);
71+
for (const auto& it : result) {
72+
EXPECT_EQ(it.first, 8);
73+
EXPECT_EQ(it.second, 8);
13874
}
13975
}
14076

141-
SCENARIO("Bar Int64", "[Bar]") {
142-
GIVEN("A Bar instance") {
143-
Bar bar;
144-
WHEN("Setting a value") {
145-
REQUIRE_NOTHROW(bar.setInt64(31));
146-
THEN("The value is updated") { REQUIRE(bar.getInt64() == 31); }
77+
TEST(BarTest, PairVectorValueInput) {
78+
const std::vector<std::pair<int, int>> data{{1, 2}, {3, 4}, {5, 6}};
79+
int size = 0;
80+
ASSERT_NO_THROW(size = pairVectorInput(data));
81+
EXPECT_EQ(size, 3);
82+
}
83+
84+
TEST(BarTest, PairVectorRefInput) {
85+
const std::vector<std::pair<int, int>> data{{1, 2}, {3, 4}, {5, 6}};
86+
int size = 0;
87+
ASSERT_NO_THROW(size = pairVectorRefInput(data));
88+
EXPECT_EQ(size, 3);
89+
}
90+
91+
TEST(BarTest, PairJaggedArrayOutput) {
92+
std::vector<std::vector<std::pair<int, int>>> result;
93+
ASSERT_NO_THROW(result = pairJaggedArrayOutput(8));
94+
EXPECT_EQ(result.size(), 8);
95+
for (std::size_t i = 0; i < result.size(); ++i) {
96+
EXPECT_EQ(i + 1, result[i].size());
97+
}
98+
for (int i = 1; i <= static_cast<int>(result.size()); ++i) {
99+
const auto& inner = result[i - 1];
100+
for (const auto& it : inner) {
101+
EXPECT_EQ(it, std::make_pair(i, i));
147102
}
148103
}
149104
}
150105

151-
TEST_CASE("Bar::operator()", "[Bar]") {
152-
SECTION("Debug print") { INFO("Bar: " << Bar()()); }
106+
TEST(BarTest, PairJaggedArrayValueInput) {
107+
std::vector<std::vector<std::pair<int, int>>> data{{{1, 1}, {2, 2}, {3, 3}}, {{4, 4}, {5, 5}}};
108+
int size = 0;
109+
ASSERT_NO_THROW(size = pairJaggedArrayInput(data));
110+
EXPECT_EQ(size, 2);
111+
}
112+
113+
TEST(BarTest, PairJaggedArrayRefInput) {
114+
std::vector<std::vector<std::pair<int, int>>> data{{{1, 1}, {2, 2}, {3, 3}}, {{4, 4}, {5, 5}}};
115+
int size = 0;
116+
ASSERT_NO_THROW(size = pairJaggedArrayRefInput(data));
117+
EXPECT_EQ(size, 2);
118+
}
119+
120+
TEST(BarTest, StaticMethods) {
121+
EXPECT_NO_THROW(Bar::staticFunction(42));
122+
EXPECT_NO_THROW(Bar::staticFunction(int64_t{42}));
123+
}
124+
125+
TEST(BarTest, Constructor) {
126+
Bar* b = new Bar();
127+
EXPECT_NE(b, nullptr);
128+
}
129+
130+
TEST(BarTest, IntMethods) {
131+
Bar bar;
132+
ASSERT_NO_THROW(bar.setInt(42));
133+
EXPECT_EQ(42, bar.getInt());
134+
}
135+
136+
TEST(BarTest, Int64Methods) {
137+
Bar bar;
138+
ASSERT_NO_THROW(bar.setInt64(31));
139+
EXPECT_EQ(31, bar.getInt64());
140+
}
141+
142+
TEST(BarTest, PrintMethod) {
143+
Bar bar;
144+
std::string str("");
145+
ASSERT_NO_THROW(str = bar());
146+
EXPECT_EQ("\"Bar\":{\"int\":0,\"int64\":0}", str);
153147
}
154148

155149
} // namespace bar

Diff for: CMakeLists.txt

-4
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,6 @@ option(BUILD_Protobuf "Build the Protobuf dependency Library" ON)
8686
message(STATUS "Build protobuf: ${BUILD_Protobuf}")
8787

8888
if(BUILD_TESTING)
89-
option(BUILD_Catch2 "Build Catch2" ON)
90-
message(STATUS "Build Catch2: ${BUILD_Catch2}")
91-
9289
option(BUILD_re2 "Build the re2 dependency Library" ON)
9390
message(STATUS "Build re2: ${BUILD_re2}")
9491

@@ -98,7 +95,6 @@ if(BUILD_TESTING)
9895
option(BUILD_benchmark "Build benchmark" ON)
9996
message(STATUS "Build benchmark: ${BUILD_benchmark}")
10097
else()
101-
set(BUILD_Catch2 OFF)
10298
set(BUILD_re2 OFF)
10399
set(BUILD_googletest OFF)
104100
set(BUILD_benchmark OFF)

Diff for: Foo/tests/CMakeLists.txt

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ elseif(UNIX)
1919
INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:$ORIGIN")
2020
endif()
2121
target_link_libraries(foo_test PRIVATE
22-
#GTest::gtest_main
23-
Catch2::Catch2WithMain
22+
GTest::gtest_main
2423
${PROJECT_NAMESPACE}::Foo)
2524

2625
add_test(NAME foo_test COMMAND foo_test)

0 commit comments

Comments
 (0)