From 3557f277f68b556e40dc056baa0b1ab6296c6d8d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 14 Jun 2019 17:36:17 +0200 Subject: [PATCH] AK/Tests: Add some macros for testing. --- AK/Tests/TestHelpers.h | 19 +++++++++++++ AK/Tests/TestString.cpp | 63 ++++++++++++++++++++++++++++------------- 2 files changed, 62 insertions(+), 20 deletions(-) create mode 100644 AK/Tests/TestHelpers.h diff --git a/AK/Tests/TestHelpers.h b/AK/Tests/TestHelpers.h new file mode 100644 index 0000000000..2162e17079 --- /dev/null +++ b/AK/Tests/TestHelpers.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +#define LOG_FAIL(cond) \ + fprintf(stderr, "\033[31;1mFAIL\033[0m: " #cond "\n") + +#define LOG_PASS(cond) \ + fprintf(stderr, "\033[32;1mPASS\033[0m: " #cond "\n") + +#define EXPECT(cond) \ + do { \ + if (!(cond)) { \ + LOG_FAIL(cond); \ + } else { \ + LOG_PASS(cond); \ + } \ + } while(0) + diff --git a/AK/Tests/TestString.cpp b/AK/Tests/TestString.cpp index aefe1b908a..7d417abfdf 100644 --- a/AK/Tests/TestString.cpp +++ b/AK/Tests/TestString.cpp @@ -1,36 +1,59 @@ +#include "TestHelpers.h" #include int main() { - ASSERT(String().is_null()); - ASSERT(String().is_empty()); - ASSERT(!String().characters()); + EXPECT(String().is_null()); + EXPECT(String().is_empty()); + EXPECT(!String().characters()); - ASSERT(!String("").is_null()); - ASSERT(String("").is_empty()); - ASSERT(String("").characters()); + EXPECT(!String("").is_null()); + EXPECT(String("").is_empty()); + EXPECT(String("").characters()); - ASSERT(String("").impl() == String::empty().impl()); + EXPECT(String("").impl() == String::empty().impl()); String test_string = "ABCDEF"; - ASSERT(!test_string.is_empty()); - ASSERT(!test_string.is_null()); - ASSERT(test_string.length() == 6); - ASSERT(test_string.length() == strlen(test_string.characters())); - ASSERT(test_string.characters()); - ASSERT(!strcmp(test_string.characters(), "ABCDEF")); + EXPECT(!test_string.is_empty()); + EXPECT(!test_string.is_null()); + EXPECT(test_string.length() == 6); + EXPECT(test_string.length() == (int)strlen(test_string.characters())); + EXPECT(test_string.characters()); + EXPECT(!strcmp(test_string.characters(), "ABCDEF")); - ASSERT(test_string == "ABCDEF"); - ASSERT(test_string != "ABCDE"); - ASSERT(test_string != "ABCDEFG"); + EXPECT(test_string == "ABCDEF"); + EXPECT(test_string != "ABCDE"); + EXPECT(test_string != "ABCDEFG"); + + EXPECT(test_string[0] == 'A'); + EXPECT(test_string[1] == 'B'); + + EXPECT(test_string.starts_with("AB")); + EXPECT(test_string.starts_with("ABCDEF")); + EXPECT(!test_string.starts_with("DEF")); + + EXPECT(test_string.ends_with("EF")); + EXPECT(test_string.ends_with("ABCDEF")); + EXPECT(!test_string.ends_with("ABC")); auto test_string_copy = test_string; - ASSERT(test_string == test_string_copy); - ASSERT(test_string.characters() == test_string_copy.characters()); + EXPECT(test_string == test_string_copy); + EXPECT(test_string.characters() == test_string_copy.characters()); auto test_string_move = move(test_string_copy); - ASSERT(test_string == test_string_move); - ASSERT(test_string_copy.is_null()); + EXPECT(test_string == test_string_move); + EXPECT(test_string_copy.is_null()); + + EXPECT(String::repeated('x', 0) == ""); + EXPECT(String::repeated('x', 1) == "x"); + EXPECT(String::repeated('x', 2) == "xx"); + + bool ok; + EXPECT(String("123").to_int(ok) == 123 && ok); + EXPECT(String("-123").to_int(ok) == -123 && ok); + + EXPECT(String("ABC").to_lowercase() == "abc"); + EXPECT(String("AbC").to_uppercase() == "ABC"); return 0; }