Update outdated tests for stringifying characters

Previously the tests relied purely on output changes in approvals.
Now the stringification output is checked directly as part of the
unit tests.
This commit is contained in:
Martin Hořeňovský committed 2024-03-01 15:09:11 +01:00
1 parent fb51116d5b
commit c3fd4eb17e
12 files changed
+153 -292

No files matched your search

@@ -14,31 +14,20 @@
TEST_CASE( "Character pretty printing" ){
SECTION("Specifically escaped"){
char tab = '\t';
char newline = '\n';
char carr_return = '\r';
char form_feed = '\f';
CHECK(tab == '\t');
CHECK(newline == '\n');
CHECK(carr_return == '\r');
CHECK(form_feed == '\f');
CHECK(::Catch::Detail::stringify('\t') == "'\\t'");
CHECK(::Catch::Detail::stringify('\n') == "'\\n'");
CHECK(::Catch::Detail::stringify('\r') == "'\\r'");
CHECK(::Catch::Detail::stringify('\f') == "'\\f'");
}
SECTION("General chars"){
char space = ' ';
CHECK(space == ' ');
char chars[] = {'a', 'z', 'A', 'Z'};
for (int i = 0; i < 4; ++i){
char c = chars[i];
REQUIRE(c == chars[i]);
}
CHECK(::Catch::Detail::stringify( ' ' ) == "' '" );
CHECK(::Catch::Detail::stringify( 'A' ) == "'A'" );
CHECK(::Catch::Detail::stringify( 'z' ) == "'z'" );
}
SECTION("Low ASCII"){
char null_terminator = '\0';
CHECK(null_terminator == '\0');
for (int i = 2; i < 6; ++i){
char c = static_cast<char>(i);
REQUIRE(c == i);
}
CHECK(::Catch::Detail::stringify( '\0' ) == "0" );
CHECK(::Catch::Detail::stringify( static_cast<char>(2) ) == "2" );
CHECK(::Catch::Detail::stringify( static_cast<char>(5) ) == "5" );
}
}