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ý
2024-03-01 15:09:06 +01:00
parent fb51116d5b
commit c3fd4eb17e
12 changed files with 153 additions and 292 deletions

View File

@@ -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" );
}
}