Skip to content

Commit 35d63b5

Browse files
committed
UnitTest: expect()
1 parent 5c3957a commit 35d63b5

16 files changed

Lines changed: 134 additions & 134 deletions

File tree

modules/UnitTest/UnitTest.mpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,9 +248,9 @@ namespace CppUtils::UnitTest
248248
}
249249

250250
// Todo C++23: std::stacktrace stacktrace = std::current_stacktrace()
251-
inline auto expect(bool condition, std::source_location sourceLocation = std::source_location::current()) -> void
251+
inline auto expect(const std::convertible_to<bool> auto& condition, std::source_location sourceLocation = std::source_location::current()) -> void
252252
{
253-
if (not condition) [[unlikely]]
253+
if (not static_cast<bool>(condition)) [[unlikely]]
254254
throw TestException{std::format("In {}\nAt line {}, column {}\nIn expect(condition)",
255255
sourceLocation.file_name(),
256256
sourceLocation.line(),

tests/Container/DependencyGraph.mpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ namespace CppUtils::UnitTest::Container::DependencyGraph
180180
return false;
181181
});
182182

183-
suite.expect(result.has_value());
183+
suite.expect(result);
184184
suite.expect(not *result);
185185
suite.expectEqual(count, 1uz);
186186
});

tests/Container/Stack.mpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ namespace CppUtils::UnitTest::Container::Stack
2626
stack.push(42);
2727
{
2828
auto result = stack.pop<int>();
29-
suite.expect(result.has_value());
29+
suite.expect(result);
3030
suite.expectEqual(result.value(), 42);
3131
}
3232
suite.expect(std::empty(stack));
3333
{
3434
auto result = stack.pop<int>();
35-
suite.expect(not result.has_value());
35+
suite.expect(not result);
3636
}
3737
});
3838

@@ -56,22 +56,22 @@ namespace CppUtils::UnitTest::Container::Stack
5656

5757
{
5858
auto result = stack.get<bool>(sizeof(int) + sizeof(float) + sizeof(std::string_view));
59-
suite.expect(result.has_value());
59+
suite.expect(result);
6060
Logger::print("{}", result.value());
6161
}
6262
{
6363
auto result = stack.get<int>(sizeof(float) + sizeof(std::string_view));
64-
suite.expect(result.has_value());
64+
suite.expect(result);
6565
Logger::print("{}", result.value());
6666
}
6767
{
6868
auto result = stack.get<float>(sizeof(std::string_view));
69-
suite.expect(result.has_value());
69+
suite.expect(result);
7070
Logger::print("{}", result.value());
7171
}
7272
{
7373
auto result = stack.get<std::string_view>();
74-
suite.expect(result.has_value());
74+
suite.expect(result);
7575
Logger::print("{}", result.value());
7676
}
7777
});
@@ -82,10 +82,10 @@ namespace CppUtils::UnitTest::Container::Stack
8282
auto getNumber = []() -> std::size_t {
8383
return 42uz;
8484
};
85-
suite.expect(stack.call(+getNumber).has_value());
85+
suite.expect(stack.call(+getNumber));
8686
{
8787
auto result = stack.pop<std::size_t>();
88-
suite.expect(result.has_value());
88+
suite.expect(result);
8989
suite.expectEqual(result.value(), 42uz);
9090
}
9191
suite.expect(std::empty(stack));
@@ -97,7 +97,7 @@ namespace CppUtils::UnitTest::Container::Stack
9797
std::println("{}", nb);
9898
};
9999
stack.push(42uz);
100-
suite.expect(stack.call(print).has_value());
100+
suite.expect(stack.call(print));
101101
});
102102

103103
suite.addTest("Call function: (std::size_t, std::size_t) -> std::size_t", [&] {
@@ -108,11 +108,11 @@ namespace CppUtils::UnitTest::Container::Stack
108108
auto add = [](std::size_t lhs, std::size_t rhs) -> std::size_t {
109109
return lhs + rhs;
110110
};
111-
suite.expect(stack.call(add).has_value());
112-
suite.expect(stack.drop(sizeof(std::size_t) * 2).has_value());
111+
suite.expect(stack.call(add));
112+
suite.expect(stack.drop(sizeof(std::size_t) * 2));
113113
{
114114
auto result = stack.pop<std::size_t>();
115-
suite.expect(result.has_value());
115+
suite.expect(result);
116116
suite.expectEqual(result.value(), 42uz);
117117
}
118118
suite.expect(std::empty(stack));
@@ -129,15 +129,15 @@ namespace CppUtils::UnitTest::Container::Stack
129129
auto print = [](std::size_t nb) -> void {
130130
std::println("{}", nb);
131131
};
132-
suite.expect(stack.call(add).has_value());
133-
suite.expect(stack.drop(sizeof(std::size_t) * 2).has_value());
132+
suite.expect(stack.call(add));
133+
suite.expect(stack.drop(sizeof(std::size_t) * 2));
134134
{
135135
auto result = stack.get<std::size_t>();
136-
suite.expect(result.has_value());
136+
suite.expect(result);
137137
suite.expectEqual(result.value(), 42uz);
138138
}
139-
suite.expect(stack.call(print).has_value());
140-
suite.expect(stack.drop(sizeof(std::size_t)).has_value());
139+
suite.expect(stack.call(print));
140+
suite.expect(stack.drop(sizeof(std::size_t)));
141141
suite.expect(std::empty(stack));
142142
});
143143
}};

tests/FileSystem/File.mpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ namespace CppUtils::UnitTest::FileSystem::File
4949
++nbBlocks;
5050
}, blockSize);
5151

52-
suite.expect(result.has_value());
52+
suite.expect(result);
5353
suite.expectEqual(resultData, originalData);
5454
suite.expectEqual(nbBlocks, (std::size(originalData) + blockSize - 1) / blockSize);
5555
}};
@@ -69,15 +69,15 @@ namespace CppUtils::UnitTest::FileSystem::File
6969
++nbBlocks;
7070
}, blockSize);
7171

72-
suite.expect(result.has_value());
72+
suite.expect(result);
7373
suite.expectEqual(resultString, originalString);
7474
suite.expectEqual(nbBlocks, (std::size(originalString) + blockSize - 1) / blockSize);
7575
}};
7676
});
7777

7878
suite.addTest("readByBlocks (error)", [&] {
7979
const auto result = CppUtils::FileSystem::Binary::readByBlocks("non_existent_file.tmp", [](auto) {});
80-
suite.expect(not result.has_value());
80+
suite.expect(not result);
8181
suite.expect(result.error().type == CppUtils::FileSystem::Error::Type::OpenFailed);
8282
suite.expectEqual(result.error().message, "Failed to open file"sv);
8383
});
@@ -91,7 +91,7 @@ namespace CppUtils::UnitTest::FileSystem::File
9191
return std::unexpected{"Error from callback"};
9292
});
9393

94-
suite.expect(not result.has_value());
94+
suite.expect(not result);
9595
suite.expect(result.error().type == CppUtils::FileSystem::Error::Type::CallbackError);
9696
suite.expectEqual(result.error().message, "Error from callback"sv);
9797
}};
@@ -108,7 +108,7 @@ namespace CppUtils::UnitTest::FileSystem::File
108108
finalHash = CppUtils::Type::hash(block, finalHash);
109109
}, 8uz);
110110

111-
suite.expect(result.has_value());
111+
suite.expect(result);
112112
auto expectedHash = CppUtils::Type::hash(originalString);
113113

114114
suite.expectEqual(finalHash, expectedHash);

tests/Language/ASTParser.mpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ namespace CppUtils::UnitTest::Language::ASTParser
3434
if (not result)
3535
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
3636

37-
suite.expect(result.has_value());
37+
suite.expect(result);
3838
Logger::print("{}", interpreter.getScope());
3939
suite.expect(std::empty(interpreter.getScope().nodes));
4040
});
@@ -51,7 +51,7 @@ namespace CppUtils::UnitTest::Language::ASTParser
5151
if (not result)
5252
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
5353

54-
suite.expect(result.has_value());
54+
suite.expect(result);
5555
Logger::print("{}", interpreter.getScope());
5656
suite.expect(std::empty(interpreter.getScope().nodes));
5757
});
@@ -66,7 +66,7 @@ namespace CppUtils::UnitTest::Language::ASTParser
6666
if (not result)
6767
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
6868

69-
suite.expect(result.has_value());
69+
suite.expect(result);
7070
Logger::print("{}", interpreter.getScope());
7171
const auto& scopeNodes = interpreter.getScope().nodes;
7272
suite.expectEqual(std::size(scopeNodes), 1uz);
@@ -84,7 +84,7 @@ namespace CppUtils::UnitTest::Language::ASTParser
8484
if (not result)
8585
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
8686

87-
suite.expect(result.has_value());
87+
suite.expect(result);
8888
Logger::print("{}", interpreter.getScope());
8989
const auto& scopeNodes = interpreter.getScope().nodes;
9090
suite.expectEqual(std::size(scopeNodes), 1uz);
@@ -109,7 +109,7 @@ namespace CppUtils::UnitTest::Language::ASTParser
109109
if (not result)
110110
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
111111

112-
suite.expect(result.has_value());
112+
suite.expect(result);
113113
Logger::print("{}", interpreter.getScope());
114114
const auto& scopeNodes = interpreter.getScope().nodes;
115115
suite.expectEqual(std::size(scopeNodes), 1uz);
@@ -131,7 +131,7 @@ namespace CppUtils::UnitTest::Language::ASTParser
131131
if (not result)
132132
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
133133

134-
suite.expect(result.has_value());
134+
suite.expect(result);
135135
Logger::print("{}", interpreter.getScope());
136136
const auto& scopeNodes = interpreter.getScope().nodes;
137137
suite.expectEqual(std::size(scopeNodes), 1uz);
@@ -155,7 +155,7 @@ namespace CppUtils::UnitTest::Language::ASTParser
155155
if (not result)
156156
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
157157

158-
suite.expect(result.has_value());
158+
suite.expect(result);
159159
Logger::print("{}", interpreter.getScope());
160160
const auto& scopeNodes = interpreter.getScope().nodes;
161161
suite.expectEqual(std::size(scopeNodes), 2uz);
@@ -178,7 +178,7 @@ namespace CppUtils::UnitTest::Language::ASTParser
178178
if (not result)
179179
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
180180

181-
suite.expect(result.has_value());
181+
suite.expect(result);
182182
Logger::print("{}", interpreter.getScope());
183183
const auto& scopeNodes = interpreter.getScope().nodes;
184184
suite.expectEqual(std::size(scopeNodes), 1uz);

tests/Language/GrammarParser.mpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace CppUtils::UnitTest::Language::GrammarParser
2222
if (not result)
2323
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
2424

25-
suite.expect(result.has_value());
25+
suite.expect(result);
2626
});
2727
}};
2828
}

tests/Language/JSON/Mapping.mpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ namespace CppUtils::UnitTest::Language::JSON::Mapping
6060
"d": false
6161
})"_json;
6262

63-
suite.expect(result.has_value());
63+
suite.expect(result);
6464
const auto object = CppUtils::Language::JSON::toStruct<Object, ObjectMapping>(result.value());
6565
suite.expectEqual(object.a, "test");
6666
suite.expectEqual(object.b, 123);
@@ -74,7 +74,7 @@ namespace CppUtils::UnitTest::Language::JSON::Mapping
7474
{"a": "o2", "b": 2}
7575
])"_json;
7676

77-
suite.expect(result.has_value());
77+
suite.expect(result);
7878
const auto& value = result.value();
7979
const auto objects = CppUtils::Language::JSON::toStructs<Object, ObjectMapping>(value);
8080
suite.expectEqual(std::size(objects), 2uz);
@@ -95,7 +95,7 @@ namespace CppUtils::UnitTest::Language::JSON::Mapping
9595
"d": true
9696
})"_json;
9797

98-
suite.expect(result.has_value());
98+
suite.expect(result);
9999
suite.expectEqual(json, result.value());
100100
});
101101

@@ -118,7 +118,7 @@ namespace CppUtils::UnitTest::Language::JSON::Mapping
118118
{"a": "o2", "b": 2, "c": 2.2, "d": false}
119119
])"_json;
120120

121-
suite.expect(result.has_value());
121+
suite.expect(result);
122122
suite.expectEqual(resultValue, result.value());
123123
});
124124
}};

tests/Language/JSON/Parsing.mpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace CppUtils::UnitTest::Language::JSON::Parsing
1111

1212
suite.addTest("Simple Parse", [&] {
1313
const auto result = "{}"_json;
14-
suite.expect(result.has_value());
14+
suite.expect(result);
1515
suite.expect(result->isObject());
1616
suite.expect(std::empty(result->as<CppUtils::Language::JSON::Object>()));
1717
});
@@ -25,7 +25,7 @@ namespace CppUtils::UnitTest::Language::JSON::Parsing
2525
"e": null
2626
})"_json;
2727

28-
suite.expect(result.has_value());
28+
suite.expect(result);
2929
const auto& value = result.value();
3030
suite.expect(value.isObject());
3131
suite.expectEqual(value["a"].template as<std::string>(), "hello");
@@ -38,7 +38,7 @@ namespace CppUtils::UnitTest::Language::JSON::Parsing
3838
suite.addTest("Parse Array", [&] {
3939
const auto result = "[1, 2, 3]"_json;
4040

41-
suite.expect(result.has_value());
41+
suite.expect(result);
4242
const auto& value = result.value();
4343
suite.expect(value.isArray());
4444
suite.expectEqual(std::size(value.as<CppUtils::Language::JSON::Array>()), 3uz);
@@ -47,7 +47,7 @@ namespace CppUtils::UnitTest::Language::JSON::Parsing
4747

4848
suite.addTest("Error Reporting", [&] {
4949
const auto result = R"({"a": 1, "b"})"_json;
50-
suite.expect(not result.has_value());
50+
suite.expect(not result);
5151
const auto& error = result.error();
5252
suite.expectEqual(error.message, "Expected ':' after key");
5353
suite.expectEqual(error.position, 12uz);

tests/Language/MetaEvaluator.mpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace CppUtils::UnitTest::Language::MetaEvaluator
2525
if (not result)
2626
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
2727

28-
suite.expect(result.has_value());
28+
suite.expect(result);
2929
suite.expectEqual(std::size(interpreter.getScope().nodes), 1uz);
3030
});
3131

@@ -50,7 +50,7 @@ namespace CppUtils::UnitTest::Language::MetaEvaluator
5050
if (not result)
5151
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
5252

53-
suite.expect(result.has_value());
53+
suite.expect(result);
5454
const auto& scopeNodes = interpreter.getScope().nodes;
5555
suite.expectEqual(std::size(scopeNodes), 2uz);
5656
suite.expectEqual(scopeNodes.at(0).value, "main"_token);
@@ -81,7 +81,7 @@ namespace CppUtils::UnitTest::Language::MetaEvaluator
8181
if (not result)
8282
Logger::print<"error">("Error: {}\nPosition: {}\nChar: '{}'", result.error(), cursor.position, cursor.getCurrent());
8383

84-
suite.expect(result.has_value());
84+
suite.expect(result);
8585
const auto& scopeNodes = interpreter.getScope().nodes;
8686
suite.expectEqual(std::size(scopeNodes), 3uz);
8787
suite.expectEqual(scopeNodes.at(0).value, "main"_token);

0 commit comments

Comments
 (0)