dqn: Namespace tests

This commit is contained in:
doyle 2023-08-26 17:34:02 +10:00
parent 441ba657a0
commit faf229c17f
3 changed files with 56 additions and 53 deletions

View File

@ -28,7 +28,7 @@
#define DQN_UTEST_IMPLEMENTATION #define DQN_UTEST_IMPLEMENTATION
#include "dqn_utest.h" #include "dqn_utest.h"
Dqn_UTest TestArena() static Dqn_UTest Dqn_Test_Arena()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_Arena") { DQN_UTEST_GROUP(test, "Dqn_Arena") {
@ -161,7 +161,7 @@ Dqn_UTest TestArena()
return test; return test;
} }
Dqn_UTest TestBin() static Dqn_UTest Dqn_Test_Bin()
{ {
Dqn_ThreadScratch scratch = Dqn_Thread_GetScratch(nullptr); Dqn_ThreadScratch scratch = Dqn_Thread_GetScratch(nullptr);
Dqn_UTest test = {}; Dqn_UTest test = {};
@ -247,7 +247,7 @@ Dqn_UTest TestBin()
} }
Dqn_UTest TestBinarySearch() static Dqn_UTest Dqn_Test_BinarySearch()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_BinarySearch") { DQN_UTEST_GROUP(test, "Dqn_BinarySearch") {
@ -417,7 +417,7 @@ Dqn_UTest TestBinarySearch()
return test; return test;
} }
Dqn_UTest TestDSMap() static Dqn_UTest Dqn_Test_DSMap()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_DSMap") { DQN_UTEST_GROUP(test, "Dqn_DSMap") {
@ -611,7 +611,7 @@ Dqn_UTest TestDSMap()
return test; return test;
} }
Dqn_UTest TestFString8() static Dqn_UTest Dqn_Test_FString8()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_FString8") { DQN_UTEST_GROUP(test, "Dqn_FString8") {
@ -628,7 +628,7 @@ Dqn_UTest TestFString8()
return test; return test;
} }
Dqn_UTest TestFs() static Dqn_UTest Dqn_Test_Fs()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_Fs") { DQN_UTEST_GROUP(test, "Dqn_Fs") {
@ -685,7 +685,7 @@ Dqn_UTest TestFs()
return test; return test;
} }
Dqn_UTest TestFixedArray() static Dqn_UTest Dqn_Test_FixedArray()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_FArray") { DQN_UTEST_GROUP(test, "Dqn_FArray") {
@ -735,7 +735,7 @@ Dqn_UTest TestFixedArray()
return test; return test;
} }
Dqn_UTest TestIntrinsics() static Dqn_UTest Dqn_Test_Intrinsics()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
// TODO(dqn): We don't have meaningful tests here, but since // TODO(dqn): We don't have meaningful tests here, but since
@ -836,7 +836,7 @@ Dqn_String8 const DQN_UTEST_HASH_STRING_[] =
#undef DQN_UTEST_HASH_X_ENTRY #undef DQN_UTEST_HASH_X_ENTRY
}; };
void TestKeccakDispatch_(Dqn_UTest *test, int hash_type, Dqn_String8 input) void Dqn_Test_KeccakDispatch_(Dqn_UTest *test, int hash_type, Dqn_String8 input)
{ {
Dqn_ThreadScratch scratch = Dqn_Thread_GetScratch(nullptr); Dqn_ThreadScratch scratch = Dqn_Thread_GetScratch(nullptr);
Dqn_String8 input_hex = Dqn_Hex_BytesToString8Arena(scratch.arena, input.data, input.size); Dqn_String8 input_hex = Dqn_Hex_BytesToString8Arena(scratch.arena, input.data, input.size);
@ -982,7 +982,7 @@ void TestKeccakDispatch_(Dqn_UTest *test, int hash_type, Dqn_String8 input)
} }
} }
Dqn_UTest TestKeccak() Dqn_UTest Dqn_Test_Keccak()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
Dqn_String8 const INPUTS[] = { Dqn_String8 const INPUTS[] = {
@ -1001,7 +1001,7 @@ Dqn_UTest TestKeccak()
for (Dqn_String8 input : INPUTS) { for (Dqn_String8 input : INPUTS) {
Dqn_UTest_Begin(&test, "%.*s - Input: %.*s", DQN_STRING_FMT(DQN_UTEST_HASH_STRING_[hash_type]), DQN_CAST(int)DQN_MIN(input.size, 54), input.data); Dqn_UTest_Begin(&test, "%.*s - Input: %.*s", DQN_STRING_FMT(DQN_UTEST_HASH_STRING_[hash_type]), DQN_CAST(int)DQN_MIN(input.size, 54), input.data);
TestKeccakDispatch_(&test, hash_type, input); Dqn_Test_KeccakDispatch_(&test, hash_type, input);
Dqn_UTest_End(&test); Dqn_UTest_End(&test);
} }
@ -1023,7 +1023,7 @@ Dqn_UTest TestKeccak()
} }
#endif // defined(DQN_TEST_WITH_KECCAK) #endif // defined(DQN_TEST_WITH_KECCAK)
Dqn_UTest TestM4() static Dqn_UTest Dqn_Test_M4()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_M4") { DQN_UTEST_GROUP(test, "Dqn_M4") {
@ -1049,7 +1049,7 @@ Dqn_UTest TestM4()
return test; return test;
} }
Dqn_UTest TestOS() static Dqn_UTest Dqn_Test_OS()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_OS") { DQN_UTEST_GROUP(test, "Dqn_OS") {
@ -1108,7 +1108,7 @@ Dqn_UTest TestOS()
return test; return test;
} }
Dqn_UTest TestRect() static Dqn_UTest Dqn_Test_Rect()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_Rect") { DQN_UTEST_GROUP(test, "Dqn_Rect") {
@ -1236,7 +1236,7 @@ Dqn_UTest TestRect()
return test; return test;
} }
Dqn_UTest TestString8() static Dqn_UTest Dqn_Test_String8()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_String8") { DQN_UTEST_GROUP(test, "Dqn_String8") {
@ -1534,7 +1534,7 @@ Dqn_UTest TestString8()
return test; return test;
} }
Dqn_UTest TestTicketMutex() static Dqn_UTest Dqn_Test_TicketMutex()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_TicketMutex") { DQN_UTEST_GROUP(test, "Dqn_TicketMutex") {
@ -1567,7 +1567,7 @@ Dqn_UTest TestTicketMutex()
return test; return test;
} }
Dqn_UTest TestVArray() static Dqn_UTest Dqn_Test_VArray()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_VArray") { DQN_UTEST_GROUP(test, "Dqn_VArray") {
@ -1700,7 +1700,7 @@ Dqn_UTest TestVArray()
return test; return test;
} }
Dqn_UTest TestWin() static Dqn_UTest Dqn_Test_Win()
{ {
Dqn_UTest test = {}; Dqn_UTest test = {};
DQN_UTEST_GROUP(test, "Dqn_Win") { DQN_UTEST_GROUP(test, "Dqn_Win") {
@ -1787,7 +1787,7 @@ Dqn_UTest TestWin()
return test; return test;
} }
void CustomLogProc(Dqn_String8 type, int log_type, void *user_data, Dqn_CallSite call_site, char const *fmt, va_list args) static void Dqn_Test_CustomLogProc(Dqn_String8 type, int log_type, void *user_data, Dqn_CallSite call_site, char const *fmt, va_list args)
{ {
(void)user_data; (void)user_data;
Dqn_ThreadScratch scratch = Dqn_Thread_GetScratch(nullptr); Dqn_ThreadScratch scratch = Dqn_Thread_GetScratch(nullptr);
@ -1795,48 +1795,50 @@ void CustomLogProc(Dqn_String8 type, int log_type, void *user_data, Dqn_CallSite
DQN_UTEST_LOG("%.*s", DQN_STRING_FMT(log)); DQN_UTEST_LOG("%.*s", DQN_STRING_FMT(log));
} }
void Dqn_TestRunSuite() static void Dqn_Test_RunSuite()
{ {
Dqn_Library *dqn_library = Dqn_Library_Init(); Dqn_Library *dqn_library = Dqn_Library_Init();
dqn_library->log_callback = CustomLogProc; auto *prev_log_callback = dqn_library->log_callback;
dqn_library->log_callback = Dqn_Test_CustomLogProc;
Dqn_UTest tests[] = Dqn_UTest tests[] =
{ {
TestArena(), Dqn_Test_Arena(),
TestBin(), Dqn_Test_Bin(),
TestBinarySearch(), Dqn_Test_BinarySearch(),
TestDSMap(), Dqn_Test_DSMap(),
TestFString8(), Dqn_Test_FString8(),
TestFs(), Dqn_Test_Fs(),
TestFixedArray(), Dqn_Test_FixedArray(),
TestIntrinsics(), Dqn_Test_Intrinsics(),
#if defined(DQN_TEST_WITH_KECCAK) #if defined(DQN_TEST_WITH_KECCAK)
TestKeccak(), Dqn_Test_Keccak(),
#endif #endif
TestM4(), Dqn_Test_M4(),
TestOS(), Dqn_Test_OS(),
TestRect(), Dqn_Test_Rect(),
TestString8(), Dqn_Test_String8(),
TestTicketMutex(), Dqn_Test_TicketMutex(),
TestVArray(), Dqn_Test_VArray(),
TestWin(), Dqn_Test_Win(),
}; };
int total_tests = 0; int total_tests = 0;
int total_good_tests = 0; int total_good_tests = 0;
for (Dqn_UTest &test : tests) { for (const Dqn_UTest &test : tests) {
total_tests += test.num_tests_in_group; total_tests += test.num_tests_in_group;
total_good_tests += test.num_tests_ok_in_group; total_good_tests += test.num_tests_ok_in_group;
} }
fprintf(stdout, "Summary: %d/%d tests succeeded\n", total_good_tests, total_tests); fprintf(stdout, "Summary: %d/%d tests succeeded\n", total_good_tests, total_tests);
dqn_library->log_callback = prev_log_callback;
} }
#if defined(DQN_TEST_WITH_MAIN) #if defined(DQN_TEST_WITH_MAIN)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
(void)argv; (void)argc; (void)argv; (void)argc;
Dqn_TestRunSuite(); Dqn_Test_RunSuite();
return 0; return 0;
} }
#endif #endif

View File

@ -24,22 +24,22 @@ pushd Build
set clang_link_flags=%msvc_link_flags% set clang_link_flags=%msvc_link_flags%
REM msvc ======================================================================================= REM msvc =======================================================================================
REM set has_msvc=1 set has_msvc=1
REM where /q cl || set has_msvc=0 where /q cl || set has_msvc=0
REM if %has_msvc% == 1 ( if %has_msvc% == 1 (
REM echo [BUILD] MSVC's cl detected, compiling ... echo [BUILD] MSVC's cl detected, compiling ...
REM set msvc_cmd=cl %msvc_compile_flags% %msvc_link_flags% set msvc_cmd=cl %msvc_compile_flags% %msvc_link_flags%
REM powershell -Command "$time = Measure-Command { !msvc_cmd! | Out-Default }; Write-Host '[BUILD] msvc:'$time.TotalSeconds's'; exit $LASTEXITCODE" || exit /b 1 powershell -Command "$time = Measure-Command { !msvc_cmd! | Out-Default }; Write-Host '[BUILD] msvc:'$time.TotalSeconds's'; exit $LASTEXITCODE" || exit /b 1
REM ) )
REM REM clang-cl =================================================================================== REM REM clang-cl ===================================================================================
REM set has_clang_cl=1 set has_clang_cl=1
REM where /q clang-cl || set has_clang_cl=0 where /q clang-cl || set has_clang_cl=0
REM if %has_clang_cl% == 1 ( if %has_clang_cl% == 1 (
REM echo [BUILD] clang-cl detected, compiling ... echo [BUILD] clang-cl detected, compiling ...
REM set clang_cmd=clang-cl %clang_compile_flags% %clang_link_flags% set clang_cmd=clang-cl %clang_compile_flags% %clang_link_flags%
REM powershell -Command "$time = Measure-Command { !clang_cmd! | Out-Default }; Write-Host '[BUILD] clang-cl:'$time.TotalSeconds's'; exit $LASTEXITCODE" || exit /b 1 powershell -Command "$time = Measure-Command { !clang_cmd! | Out-Default }; Write-Host '[BUILD] clang-cl:'$time.TotalSeconds's'; exit $LASTEXITCODE" || exit /b 1
REM ) )
REM zig ======================================================================================== REM zig ========================================================================================
REM TODO(doyle):Can't build "Misc\dqn_unit_tests.cpp|1 col 1| error: unable to build C object: FileNotFound" REM TODO(doyle):Can't build "Misc\dqn_unit_tests.cpp|1 col 1| error: unable to build C object: FileNotFound"

1
dqn.h
View File

@ -294,6 +294,7 @@
#include "dqn_base.cpp" #include "dqn_base.cpp"
#include "dqn_external.cpp" #include "dqn_external.cpp"
#include "dqn_memory.cpp" #include "dqn_memory.cpp"
#include "dqn_platform_print.cpp"
#include "dqn_debug.cpp" #include "dqn_debug.cpp"
#include "dqn_strings.cpp" #include "dqn_strings.cpp"
#include "dqn_containers.cpp" #include "dqn_containers.cpp"