Start work on the testing framework

This commit is contained in:
2024-10-16 22:54:34 +02:00
parent 7193114b15
commit 8c95db33be
13 changed files with 53 additions and 20 deletions

View File

@ -15,5 +15,6 @@ build --cxxopt=-Wno-unused-macros
build --cxxopt=-Wno-documentation-unknown-command
build --cxxopt=-Wno-extra-semi-stmt
build --cxxopt=-Wno-extra-semi
build --cxxopt=-Wno-global-constructors
test --test_output=errors

View File

@ -24,11 +24,12 @@ cc_library(
[cc_test(
name = "%s_tests" % name,
srcs = [
"%s_tests.cpp" % name,
"test_types.hpp",
"tests/%s_tests.cpp" % name,
"tests/test_types.hpp",
],
deps = [
":asl",
"//asl/testing",
],
) for name in [
"format",

13
asl/testing/BUILD.bazel Normal file
View File

@ -0,0 +1,13 @@
cc_library(
name = "testing",
hdrs = [
"testing.hpp",
],
srcs = [
"testing.cpp",
],
deps = [
"//asl",
],
visibility = ["//visibility:public"],
)

14
asl/testing/testing.cpp Normal file
View File

@ -0,0 +1,14 @@
#include "asl/testing/testing.hpp"
int asl::testing::register_test(
const char* suite_name,
const char* case_name,
TestFunction* fn)
{
return 0;
}
int main(int argc, char* argv[])
{
return 0;
}

15
asl/testing/testing.hpp Normal file
View File

@ -0,0 +1,15 @@
#pragma once
namespace asl::testing
{
using TestFunction = void();
int register_test(const char* suite_name, const char* case_name, TestFunction* fn);
} // namespace asl::testing
#define ASL_TEST(SUITE, CASE) \
static void asl_test_fn_##SUITE##_##CASE(); \
static const int asl_test_##SUITE##_##CASE = ::asl::testing::register_test( \
#SUITE, #CASE, asl_test_fn_##SUITE##_##CASE); \
void asl_test_fn_##SUITE##_##CASE()

View File

@ -33,7 +33,7 @@ public:
}
};
int main()
int main2()
{
StringSink sink;

View File

@ -9,5 +9,3 @@ static_assert(sizeof(uint8_t) == 1);
static_assert(sizeof(uint16_t) == 2);
static_assert(sizeof(uint32_t) == 4);
static_assert(sizeof(uint64_t) == 8);
int main() { return 0; }

View File

@ -1,5 +1,5 @@
#include "asl/maybe_uninit.hpp"
#include "asl/test_types.hpp"
#include "asl/tests/test_types.hpp"
static_assert(asl::layout::of<int>() == asl::layout::of<asl::maybe_uninit<int>>());
static_assert(asl::size_of<int> == asl::size_of<asl::maybe_uninit<int>>);
@ -8,7 +8,3 @@ static_assert(asl::align_of<int> == asl::align_of<asl::maybe_uninit<int>>);
static_assert(asl::trivially_destructible<asl::maybe_uninit<TriviallyDestructible>>);
static_assert(!asl::trivially_destructible<asl::maybe_uninit<HasDestructor>>);
int main()
{
return 0;
}

View File

@ -1,5 +1,5 @@
#include "asl/meta.hpp"
#include "asl/test_types.hpp"
#include "asl/tests/test_types.hpp"
struct Struct {};
union Union {};
@ -168,5 +168,3 @@ static_assert(!asl::trivially_copyable<HasDestructor>);
static_assert(!asl::trivially_copyable<CopyAssignable>);
static_assert(asl::trivially_copyable<DefaultConstructible>);
static_assert(asl::trivially_copyable<TriviallyDefaultConstructible>);
int main() { return 0; }

View File

@ -1,5 +1,6 @@
#include "asl/option.hpp"
#include "asl/test_types.hpp"
#include "asl/tests/test_types.hpp"
#include <asl/testing/testing.hpp>
static_assert(asl::trivially_destructible<asl::option<TriviallyDestructible>>);
static_assert(!asl::trivially_destructible<asl::option<HasDestructor>>);
@ -23,12 +24,10 @@ static_assert(asl::move_assignable<asl::option<int>>);
static_assert(asl::move_assignable<asl::option<CopyAssignable>>);
static_assert(!asl::move_assignable<asl::option<NonMoveAssignable>>);
int main()
ASL_TEST(Option, cheese)
{
asl::option<int> a;
asl::option<int> b;
a = ASL_MOVE(b);
return 0;
}

View File

@ -0,0 +1 @@
#include "asl/utility.hpp"

View File

@ -1,3 +0,0 @@
#include "asl/utility.hpp"
int main() { return 0; }