From 8c95db33be58a545dd2e030428bded0bd958c4b6 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Wed, 16 Oct 2024 22:54:34 +0200 Subject: Start work on the testing framework --- asl/format_tests.cpp | 106 --------------------------------------------------- 1 file changed, 106 deletions(-) delete mode 100644 asl/format_tests.cpp (limited to 'asl/format_tests.cpp') diff --git a/asl/format_tests.cpp b/asl/format_tests.cpp deleted file mode 100644 index 818773b..0000000 --- a/asl/format_tests.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include "asl/format.hpp" - -#include -#include -#include -#include - -// @Todo Improve this to use our utilities, not the C stdlib - -static_assert(asl::formattable); - -class StringSink : public asl::writer -{ - int64_t m_current_len{}; - char* m_data{}; - -public: - void write(const char* str, int64_t len) override - { - m_data = (char*)realloc(m_data, (size_t)(m_current_len + len + 1)); - memcpy(m_data + m_current_len, str, (size_t)len); - m_current_len += len; - m_data[m_current_len] = '\0'; - } - - constexpr const char* cstr() const { return m_data; } - - void reset() - { - m_current_len = 0; - free(m_data); - m_data = nullptr; - } -}; - -int main() -{ - StringSink sink; - - // @Todo Use the testing framework - - asl::format(&sink, "Hello, world!"); - assert(strcmp(sink.cstr(), "Hello, world!") == 0); - - sink.reset(); - asl::format(&sink, ""); - assert(strcmp(sink.cstr(), "") == 0); - - sink.reset(); - asl::format(&sink, "Hello, {}!", "world"); - assert(strcmp(sink.cstr(), "Hello, world!") == 0); - - sink.reset(); - asl::format(&sink, "Hello, {}! {}", "world"); - assert(strcmp(sink.cstr(), "Hello, world! ") == 0); - - sink.reset(); - asl::format(&sink, "Hello, pup!", "world"); - assert(strcmp(sink.cstr(), "Hello, pup!") == 0); - - sink.reset(); - asl::format(&sink, "{}", "CHEESE"); - assert(strcmp(sink.cstr(), "CHEESE") == 0); - - sink.reset(); - asl::format(&sink, "{ ", "CHEESE"); - assert(strcmp(sink.cstr(), " ") == 0); - - sink.reset(); - asl::format(&sink, "{", "CHEESE"); - assert(strcmp(sink.cstr(), "") == 0); - - sink.reset(); - asl::format(&sink, "a{{b"); - assert(strcmp(sink.cstr(), "a{b") == 0); - - sink.reset(); - asl::format(&sink, "{{{}}} }", "CHEESE"); - assert(strcmp(sink.cstr(), "{CHEESE} }") == 0); - - sink.reset(); - asl::format(&sink, "{} {} {}", 0, 1, 2); - assert(strcmp(sink.cstr(), "0 1 2") == 0); - - sink.reset(); - asl::format(&sink, "{} {} {}", 10, 11, 12); - assert(strcmp(sink.cstr(), "10 11 12") == 0); - - sink.reset(); - asl::format(&sink, "{} {} {}", 100, 101, 102); - assert(strcmp(sink.cstr(), "100 101 102") == 0); - - sink.reset(); - asl::format(&sink, "{} {} {}", 1000, 1001, 1002); - assert(strcmp(sink.cstr(), "1000 1001 1002") == 0); - - sink.reset(); - asl::format(&sink, "{} {} {} {}", -1, -23, -456, -7890); - assert(strcmp(sink.cstr(), "-1 -23 -456 -7890") == 0); - - sink.reset(); - asl::format(&sink, "{} {}", true, false); - assert(strcmp(sink.cstr(), "true false") == 0); - - return 0; -} -- cgit