diff --git a/VisualC/tests/testautomation/testautomation.vcxproj b/VisualC/tests/testautomation/testautomation.vcxproj index 1673aeeba..0acc54af9 100644 --- a/VisualC/tests/testautomation/testautomation.vcxproj +++ b/VisualC/tests/testautomation/testautomation.vcxproj @@ -206,6 +206,7 @@ + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c2fcc766a..0781aad13 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -96,7 +96,6 @@ add_executable(testgesture testgesture.c) add_executable(testgl2 testgl2.c) add_executable(testgles testgles.c) add_executable(testgles2 testgles2.c) -add_executable(testguid testguid.c) add_executable(testhaptic testhaptic.c) add_executable(testhotplug testhotplug.c) add_executable(testrumble testrumble.c) @@ -178,7 +177,6 @@ SET(ALL_TESTS testgl2 testgles testgles2 - testguid testhaptic testhittesting testhotplug @@ -227,7 +225,6 @@ set(NONINTERACTIVE testatomic testerror testfilesystem - testguid testlocale testplatform testpower @@ -337,7 +334,6 @@ if(PSP) testfilesystem testgeometry testgl2 - testguid testhittesting testiconv testintersections diff --git a/test/Makefile.in b/test/Makefile.in index 2bcfa92b4..435e50fd4 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -40,7 +40,6 @@ TARGETS = \ testgamecontroller$(EXE) \ testgeometry$(EXE) \ testgesture$(EXE) \ - testguid$(EXE) \ testhaptic$(EXE) \ testhittesting$(EXE) \ testhotplug$(EXE) \ @@ -138,6 +137,7 @@ testautomation$(EXE): $(srcdir)/testautomation.c \ $(srcdir)/testautomation_audio.c \ $(srcdir)/testautomation_clipboard.c \ $(srcdir)/testautomation_events.c \ + $(srcdir)/testautomation_guid.c \ $(srcdir)/testautomation_keyboard.c \ $(srcdir)/testautomation_main.c \ $(srcdir)/testautomation_mouse.c \ @@ -216,9 +216,6 @@ testgles2$(EXE): $(srcdir)/testgles2.c testgles2_sdf$(EXE): $(srcdir)/testgles2_sdf.c $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@ -testguid$(EXE): $(srcdir)/testguid.c - $(CC) -o $@ $^ $(CFLAGS) $(LIBS) - testhaptic$(EXE): $(srcdir)/testhaptic.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) diff --git a/test/testguid.c b/test/testautomation_guid.c similarity index 57% rename from test/testguid.c rename to test/testautomation_guid.c index 29ccb6a21..0bfedebde 100644 --- a/test/testguid.c +++ b/test/testautomation_guid.c @@ -1,42 +1,13 @@ -/* - Copyright (C) 1997-2022 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely. -*/ - /** - * Automated tests for GUID processing + * GUID test suite */ -#include - #include "SDL.h" +#include "SDL_test.h" -/* Helpers */ +/* ================= Test Case Implementation ================== */ -static int _error_count = 0; - -static int -_require_eq(Uint64 expected, Uint64 actual, int line, char *msg) -{ - if (expected != actual) { - _error_count += 1; - SDL_LogError(SDL_LOG_CATEGORY_ERROR, "[%s, L%d] %s: Actual %ld (0x%lx) != expected %ld (0x%lx)", - __FILE__, line, msg, actual, actual, expected, expected); - return 0; - } - return 1; -} - -#define ASSERT_EQ(MSG, EXPECTED, ACTUAL) _require_eq((EXPECTED), (ACTUAL), __LINE__, (MSG)) - -/* Helpers */ +/* Helper functions */ #define NUM_TEST_GUIDS 5 @@ -75,18 +46,20 @@ upper_lower_to_bytestring(Uint8* out, Uint64 upper, Uint64 lower) } } -/* ================= Test Case Implementation ================== */ + +/* Test case functions */ /** * @brief Check String-to-GUID conversion * * @sa SDL_GUIDFromString */ -static void -TestGuidFromString(void) +static int +TestGuidFromString(void *arg) { int i; + SDLTest_AssertPass("Call to SDL_GUIDFromString"); for (i = 0; i < NUM_TEST_GUIDS; ++i) { Uint8 expected[16]; SDL_GUID guid; @@ -95,10 +68,10 @@ TestGuidFromString(void) test_guids[i].upper, test_guids[i].lower); guid = SDL_GUIDFromString(test_guids[i].str); - if (!ASSERT_EQ("GUID from string", 0, SDL_memcmp(expected, guid.data, 16))) { - SDL_Log(" GUID was: '%s'", test_guids[i].str); - } + SDLTest_AssertCheck(SDL_memcmp(expected, guid.data, 16) == 0, "GUID from string, GUID was: '%s'", test_guids[i].str); } + + return TEST_COMPLETED; } /** @@ -106,11 +79,12 @@ TestGuidFromString(void) * * @sa SDL_GUIDToString */ -static void -TestGuidToString(void) +static int +TestGuidToString(void *arg) { int i; + SDLTest_AssertPass("Call to SDL_GUIDToString"); for (i = 0; i < NUM_TEST_GUIDS; ++i) { const int guid_str_offset = 4; char guid_str_buf[64]; @@ -134,36 +108,43 @@ TestGuidToString(void) /* Check bytes before guid_str_buf */ expected_prefix = fill_char | (fill_char << 8) | (fill_char << 16) | (fill_char << 24); SDL_memcpy(&actual_prefix, guid_str_buf, 4); - if (!ASSERT_EQ("String buffer memory before output untouched: ", expected_prefix, actual_prefix)) { - SDL_Log(" at size=%d", size); - } + SDLTest_AssertCheck(expected_prefix == actual_prefix, "String buffer memory before output untouched, expected: %i, got: %i, at size=%d", expected_prefix, actual_prefix, size); /* Check that we did not overwrite too much */ written_size = 0; while ((guid_str[written_size] & 0xff) != fill_char && written_size < 256) { ++written_size; } - if (!ASSERT_EQ("Output length is within expected bounds", 1, written_size <= size)) { - SDL_Log(" with length %d: wrote %d of %d permitted bytes", - size, written_size, size); - } + SDLTest_AssertCheck(written_size <= size, "Output length is within expected bounds, with length %d: wrote %d of %d permitted bytes", size, written_size, size); if (size >= 33) { - if (!ASSERT_EQ("GUID string equality", 0, SDL_strcmp(guid_str, test_guids[i].str))) { - SDL_Log(" from string: %s", test_guids[i].str); - } + SDLTest_AssertCheck(SDL_strcmp(guid_str, test_guids[i].str) == 0, "GUID string equality, from string: %s", test_guids[i].str); } } } + + return TEST_COMPLETED; } -int -main(int argc, char *argv[]) -{ - /* Enable standard application logging */ - SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO); +/* ================= Test References ================== */ - TestGuidFromString(); - TestGuidToString(); +/* GUID routine test cases */ +static const SDLTest_TestCaseReference guidTest1 = + { (SDLTest_TestCaseFp)TestGuidFromString, "TestGuidFromString", "Call to SDL_GUIDFromString", TEST_ENABLED }; - return _error_count > 0; -} +static const SDLTest_TestCaseReference guidTest2 = + { (SDLTest_TestCaseFp)TestGuidToString, "TestGuidToString", "Call to SDL_GUIDToString", TEST_ENABLED }; + +/* Sequence of GUID routine test cases */ +static const SDLTest_TestCaseReference *guidTests[] = { + &guidTest1, + &guidTest2, + NULL +}; + +/* GUID routine test suite (global) */ +SDLTest_TestSuiteReference guidTestSuite = { + "GUID", + NULL, + guidTests, + NULL +}; diff --git a/test/testautomation_suites.h b/test/testautomation_suites.h index a8c886384..a03cdbcbc 100644 --- a/test/testautomation_suites.h +++ b/test/testautomation_suites.h @@ -12,6 +12,7 @@ extern SDLTest_TestSuiteReference audioTestSuite; extern SDLTest_TestSuiteReference clipboardTestSuite; extern SDLTest_TestSuiteReference eventsTestSuite; +extern SDLTest_TestSuiteReference guidTestSuite; extern SDLTest_TestSuiteReference keyboardTestSuite; extern SDLTest_TestSuiteReference mainTestSuite; extern SDLTest_TestSuiteReference mouseTestSuite; @@ -34,6 +35,7 @@ SDLTest_TestSuiteReference *testSuites[] = { &audioTestSuite, &clipboardTestSuite, &eventsTestSuite, + &guidTestSuite, &keyboardTestSuite, &mainTestSuite, &mouseTestSuite, diff --git a/test/watcom.mif b/test/watcom.mif index fd9bff7f5..91036f9a3 100644 --- a/test/watcom.mif +++ b/test/watcom.mif @@ -11,7 +11,7 @@ TARGETS = testatomic.exe testdisplayinfo.exe testbounds.exe testdraw2.exe & testdrawchessboard.exe testdropfile.exe testerror.exe testfile.exe & testfilesystem.exe testgamecontroller.exe testgeometry.exe testgesture.exe & testhittesting.exe testhotplug.exe testiconv.exe testime.exe testlocale.exe & - testguid.exe testintersections.exe testjoystick.exe testkeys.exe testloadso.exe & + testintersections.exe testjoystick.exe testkeys.exe testloadso.exe & testlock.exe testmessage.exe testoverlay2.exe testplatform.exe & testpower.exe testsensor.exe testrelative.exe testrendercopyex.exe & testrendertarget.exe testrumble.exe testscale.exe testsem.exe & @@ -58,7 +58,7 @@ TASRCS = testautomation.c testautomation_audio.c testautomation_clipboard.c & testautomation_sdltest.c testautomation_stdlib.c & testautomation_surface.c testautomation_syswm.c & testautomation_timer.c testautomation_video.c & - testautomation_math.c + testautomation_math.c testautomation_guid.c OBJS = $(TARGETS:.exe=.obj) COBJS = $(CSRCS:.c=.obj)