From 30f41c02aec763d32e62351452da9ef582bc3472 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 6 Mar 2026 13:30:59 -0800 Subject: Move contrib libraries to contrib repo --- contrib/SDL-3.2.8/test/testautomation_clipboard.c | 596 ---------------------- 1 file changed, 596 deletions(-) delete mode 100644 contrib/SDL-3.2.8/test/testautomation_clipboard.c (limited to 'contrib/SDL-3.2.8/test/testautomation_clipboard.c') diff --git a/contrib/SDL-3.2.8/test/testautomation_clipboard.c b/contrib/SDL-3.2.8/test/testautomation_clipboard.c deleted file mode 100644 index 3a70d31..0000000 --- a/contrib/SDL-3.2.8/test/testautomation_clipboard.c +++ /dev/null @@ -1,596 +0,0 @@ -/** - * New/updated tests: aschiffler at ferzkopp dot net - */ -#include -#include -#include "testautomation_suites.h" - -/* ================= Test Case Implementation ================== */ - -static int clipboard_update_count; - -static bool SDLCALL ClipboardEventWatch(void *userdata, SDL_Event *event) -{ - if (event->type == SDL_EVENT_CLIPBOARD_UPDATE) { - ++clipboard_update_count; - } - return true; -} - -enum -{ - TEST_MIME_TYPE_TEXT, - TEST_MIME_TYPE_CUSTOM_TEXT, - TEST_MIME_TYPE_DATA, - NUM_TEST_MIME_TYPES -}; -static const char *test_mime_types[] = { - "text/plain;charset=utf-8", - "test/text", - "test/data" -}; -SDL_COMPILE_TIME_ASSERT(test_mime_types, SDL_arraysize(test_mime_types) == NUM_TEST_MIME_TYPES); - -typedef struct -{ - const void *data; - size_t data_size; -} TestClipboardData; - -static int clipboard_callback_count; - -static const void * SDLCALL ClipboardDataCallback(void *userdata, const char *mime_type, size_t *length) -{ - TestClipboardData *test_data = (TestClipboardData *)userdata; - - ++clipboard_callback_count; - - if (SDL_strcmp(mime_type, test_mime_types[TEST_MIME_TYPE_TEXT]) == 0) { - /* We're returning the string "TEST", with no termination */ - static const char *test_text = "XXX TEST XXX"; - *length = 4; - return test_text + 4; - } - if (SDL_strcmp(mime_type, test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT]) == 0) { - /* We're returning the string "CUSTOM", with no termination */ - static const char *custom_text = "XXX CUSTOM XXX"; - *length = 6; - return custom_text + 4; - } - if (SDL_strcmp(mime_type, test_mime_types[TEST_MIME_TYPE_DATA]) == 0) { - *length = test_data->data_size; - return test_data->data; - } - return NULL; -} - -static int clipboard_cleanup_count; - -static void SDLCALL ClipboardCleanupCallback(void *userdata) -{ - ++clipboard_cleanup_count; -} - -/* Test case functions */ - -/** - * End-to-end test of SDL_xyzClipboardData functions - * \sa SDL_HasClipboardData - * \sa SDL_GetClipboardData - * \sa SDL_SetClipboardData - */ -static int SDLCALL clipboard_testClipboardDataFunctions(void *arg) -{ - int result = -1; - bool boolResult; - int last_clipboard_update_count; - int last_clipboard_callback_count; - int last_clipboard_cleanup_count; - void *data; - size_t size; - char *text; - const char *expected_text; - - TestClipboardData test_data1 = { - &test_data1, - sizeof(test_data1) - }; - TestClipboardData test_data2 = { - &last_clipboard_callback_count, - sizeof(last_clipboard_callback_count) - }; - - SDL_AddEventWatch(ClipboardEventWatch, NULL); - - /* Test clearing clipboard data */ - result = SDL_ClearClipboardData(); - SDLTest_AssertCheck( - result == true, - "Validate SDL_ClearClipboardData result, expected true, got %i", - result); - expected_text = ""; - text = SDL_GetClipboardText(); - SDLTest_AssertCheck( - text && SDL_strcmp(text, expected_text) == 0, - "Verify clipboard text, expected \"%s\", got \"%s\"", - expected_text, text); - SDL_free(text); - - /* Test clearing clipboard data when it's already clear */ - last_clipboard_update_count = clipboard_update_count; - result = SDL_ClearClipboardData(); - SDLTest_AssertCheck( - result == true, - "Validate SDL_ClearClipboardData result, expected true, got %i", - result); - SDLTest_AssertCheck( - clipboard_update_count != last_clipboard_update_count, - "Verify clipboard update count changed, got %d", - clipboard_update_count - last_clipboard_update_count); - - /* Validate error handling */ - last_clipboard_update_count = clipboard_update_count; - result = SDL_SetClipboardData(NULL, NULL, NULL, test_mime_types, SDL_arraysize(test_mime_types)); - SDLTest_AssertCheck( - result == false, - "Validate SDL_SetClipboardData(invalid) result, expected false, got %i", - result); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count, - "Verify clipboard update count unchanged, got %d", - clipboard_update_count - last_clipboard_update_count); - - last_clipboard_update_count = clipboard_update_count; - result = SDL_SetClipboardData(ClipboardDataCallback, ClipboardCleanupCallback, NULL, NULL, 0); - SDLTest_AssertCheck( - result == false, - "Validate SDL_SetClipboardData(invalid) result, expected false, got %i", - result); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count, - "Verify clipboard update count unchanged, got %d", - clipboard_update_count - last_clipboard_update_count); - - /* Test setting and getting clipboard data */ - last_clipboard_update_count = clipboard_update_count; - last_clipboard_callback_count = clipboard_callback_count; - last_clipboard_cleanup_count = clipboard_cleanup_count; - result = SDL_SetClipboardData(ClipboardDataCallback, ClipboardCleanupCallback, &test_data1, test_mime_types, SDL_arraysize(test_mime_types)); - SDLTest_AssertCheck( - result == true, - "Validate SDL_SetClipboardData(test_data1) result, expected true, got %i", - result); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count + 1, - "Verify clipboard update count incremented by 1, got %d", - clipboard_update_count - last_clipboard_update_count); - SDLTest_AssertCheck( - clipboard_cleanup_count == last_clipboard_cleanup_count, - "Verify clipboard cleanup count unchanged, got %d", - clipboard_cleanup_count - last_clipboard_cleanup_count); - - expected_text = "TEST"; - text = SDL_GetClipboardText(); - SDLTest_AssertCheck( - text && SDL_strcmp(text, expected_text) == 0, - "Verify clipboard text, expected \"%s\", got \"%s\"", - expected_text, text); - SDL_free(text); - - boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT]); - SDLTest_AssertCheck( - boolResult, - "Verify has test text data, expected true, got false"); - text = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT], &size); - SDLTest_AssertCheck( - text != NULL, - "Verify has test text data, expected valid result, got NULL"); - if (text) { - SDLTest_AssertCheck( - text[size] == '\0', - "Verify test text data, expected null termination, got %c", - text[size]); - SDLTest_AssertCheck( - SDL_strcmp(text, expected_text) == 0, - "Verify test text data, expected \"%s\", got \"%s\"", - expected_text, text); - } - SDLTest_AssertCheck( - size == SDL_strlen(expected_text), - "Verify test text size, expected %d, got %d", - (int)SDL_strlen(expected_text), (int)size); - SDL_free(text); - - expected_text = "CUSTOM"; - boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT]); - SDLTest_AssertCheck( - boolResult, - "Verify has test text data, expected true, got false"); - text = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT], &size); - SDLTest_AssertCheck( - text != NULL, - "Verify has test text data, expected valid result, got NULL"); - if (text) { - SDLTest_AssertCheck( - text[size] == '\0', - "Verify test text data, expected null termination, got %c", - text[size]); - SDLTest_AssertCheck( - SDL_strcmp(text, expected_text) == 0, - "Verify test text data, expected \"%s\", got \"%s\"", - expected_text, text); - } - SDLTest_AssertCheck( - size == SDL_strlen(expected_text), - "Verify test text size, expected %d, got %d", - (int)SDL_strlen(expected_text), (int)size); - SDL_free(text); - - boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_DATA]); - SDLTest_AssertCheck( - boolResult, - "Verify has test text data, expected true, got false"); - data = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_DATA], &size); - SDLTest_AssertCheck( - data && SDL_memcmp(data, test_data1.data, test_data1.data_size) == 0, - "Verify test data"); - SDLTest_AssertCheck( - size == test_data1.data_size, - "Verify test data size, expected %d, got %d", - (int)test_data1.data_size, (int)size); - SDL_free(data); - - boolResult = SDL_HasClipboardData("test/invalid"); - SDLTest_AssertCheck( - !boolResult, - "Verify has test text data, expected false, got true"); - data = SDL_GetClipboardData("test/invalid", &size); - SDLTest_AssertCheck( - data == NULL, - "Verify invalid data, expected NULL, got %p", - data); - SDLTest_AssertCheck( - size == 0, - "Verify invalid data size, expected 0, got %d", - (int)size); - SDL_free(data); - -#if 0 /* There's no guarantee how or when the callback is called */ - SDLTest_AssertCheck( - (clipboard_callback_count == last_clipboard_callback_count + 3) || - (clipboard_callback_count == last_clipboard_callback_count + 4), - "Verify clipboard callback count incremented by 3 or 4, got %d", - clipboard_callback_count - last_clipboard_callback_count); -#endif - - /* Test setting and getting clipboard data again */ - last_clipboard_update_count = clipboard_update_count; - last_clipboard_callback_count = clipboard_callback_count; - last_clipboard_cleanup_count = clipboard_cleanup_count; - result = SDL_SetClipboardData(ClipboardDataCallback, ClipboardCleanupCallback, &test_data2, test_mime_types, SDL_arraysize(test_mime_types)); - SDLTest_AssertCheck( - result == true, - "Validate SDL_SetClipboardData(test_data2) result, expected true, got %i", - result); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count + 1, - "Verify clipboard update count incremented by 1, got %d", - clipboard_update_count - last_clipboard_update_count); - SDLTest_AssertCheck( - clipboard_cleanup_count == last_clipboard_cleanup_count + 1, - "Verify clipboard cleanup count incremented by 1, got %d", - clipboard_cleanup_count - last_clipboard_cleanup_count); - - expected_text = "TEST"; - text = SDL_GetClipboardText(); - SDLTest_AssertCheck( - text && SDL_strcmp(text, expected_text) == 0, - "Verify clipboard text, expected \"%s\", got \"%s\"", - expected_text, text); - SDL_free(text); - - boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT]); - SDLTest_AssertCheck( - boolResult, - "Verify has test text data, expected true, got false"); - text = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT], &size); - SDLTest_AssertCheck( - text != NULL, - "Verify has test text data, expected valid result, got NULL"); - if (text) { - SDLTest_AssertCheck( - text[size] == '\0', - "Verify test text data, expected null termination, got %c", - text[size]); - SDLTest_AssertCheck( - SDL_strcmp(text, expected_text) == 0, - "Verify test text data, expected \"%s\", got \"%s\"", - expected_text, text); - } - SDLTest_AssertCheck( - size == SDL_strlen(expected_text), - "Verify test text size, expected %d, got %d", - (int)SDL_strlen(expected_text), (int)size); - SDL_free(text); - - expected_text = "CUSTOM"; - boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT]); - SDLTest_AssertCheck( - boolResult, - "Verify has test text data, expected true, got false"); - text = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT], &size); - SDLTest_AssertCheck( - text != NULL, - "Verify has test text data, expected valid result, got NULL"); - if (text) { - SDLTest_AssertCheck( - text[size] == '\0', - "Verify test text data, expected null termination, got %c", - text[size]); - SDLTest_AssertCheck( - SDL_strcmp(text, expected_text) == 0, - "Verify test text data, expected \"%s\", got \"%s\"", - expected_text, text); - } - SDLTest_AssertCheck( - size == SDL_strlen(expected_text), - "Verify test text size, expected %d, got %d", - (int)SDL_strlen(expected_text), (int)size); - SDL_free(text); - - data = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_DATA], &size); - SDLTest_AssertCheck( - data && SDL_memcmp(data, test_data2.data, test_data2.data_size) == 0, - "Verify test data"); - SDLTest_AssertCheck( - size == test_data2.data_size, - "Verify test data size, expected %d, got %d", - (int)test_data2.data_size, (int)size); - SDL_free(data); - - data = SDL_GetClipboardData("test/invalid", &size); - SDLTest_AssertCheck( - data == NULL, - "Verify invalid data, expected NULL, got %p", - data); - SDLTest_AssertCheck( - size == 0, - "Verify invalid data size, expected 0, got %d", - (int)size); - SDL_free(data); - -#if 0 /* There's no guarantee how or when the callback is called */ - SDLTest_AssertCheck( - (clipboard_callback_count == last_clipboard_callback_count + 3) || - (clipboard_callback_count == last_clipboard_callback_count + 4), - "Verify clipboard callback count incremented by 3 or 4, got %d", - clipboard_callback_count - last_clipboard_callback_count); -#endif - - /* Test clearing clipboard data when has data */ - last_clipboard_update_count = clipboard_update_count; - last_clipboard_cleanup_count = clipboard_cleanup_count; - result = SDL_ClearClipboardData(); - SDLTest_AssertCheck( - result == true, - "Validate SDL_ClearClipboardData result, expected true, got %i", - result); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count + 1, - "Verify clipboard update count incremented by 1, got %d", - clipboard_update_count - last_clipboard_update_count); - SDLTest_AssertCheck( - clipboard_cleanup_count == last_clipboard_cleanup_count + 1, - "Verify clipboard cleanup count incremented by 1, got %d", - clipboard_cleanup_count - last_clipboard_cleanup_count); - boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT]); - SDLTest_AssertCheck( - !boolResult, - "Verify has test text data, expected false, got true"); - boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_DATA]); - SDLTest_AssertCheck( - !boolResult, - "Verify has test text data, expected false, got true"); - boolResult = SDL_HasClipboardData("test/invalid"); - SDLTest_AssertCheck( - !boolResult, - "Verify has test text data, expected false, got true"); - - SDL_RemoveEventWatch(ClipboardEventWatch, NULL); - - return TEST_COMPLETED; -} - -/** - * End-to-end test of SDL_xyzClipboardText functions - * \sa SDL_HasClipboardText - * \sa SDL_GetClipboardText - * \sa SDL_SetClipboardText - */ -static int SDLCALL clipboard_testClipboardTextFunctions(void *arg) -{ - char *textRef = SDLTest_RandomAsciiString(); - char *text = SDL_strdup(textRef); - bool boolResult; - int intResult; - char *charResult; - int last_clipboard_update_count; - - SDL_AddEventWatch(ClipboardEventWatch, NULL); - - /* Empty clipboard text */ - last_clipboard_update_count = clipboard_update_count; - intResult = SDL_SetClipboardText(NULL); - SDLTest_AssertCheck( - intResult == true, - "Verify result from SDL_SetClipboardText(NULL), expected true, got %i", - intResult); - charResult = SDL_GetClipboardText(); - SDLTest_AssertCheck( - charResult && SDL_strcmp(charResult, "") == 0, - "Verify SDL_GetClipboardText returned \"\", got %s", - charResult); - SDL_free(charResult); - boolResult = SDL_HasClipboardText(); - SDLTest_AssertCheck( - boolResult == false, - "Verify SDL_HasClipboardText returned false, got %s", - (boolResult) ? "true" : "false"); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count + 1, - "Verify clipboard update count incremented by 1, got %d", - clipboard_update_count - last_clipboard_update_count); - - - /* Set clipboard text */ - last_clipboard_update_count = clipboard_update_count; - intResult = SDL_SetClipboardText(text); - SDLTest_AssertCheck( - intResult == true, - "Verify result from SDL_SetClipboardText(%s), expected true, got %i", text, - intResult); - SDLTest_AssertCheck( - SDL_strcmp(textRef, text) == 0, - "Verify SDL_SetClipboardText did not modify input string, expected '%s', got '%s'", - textRef, text); - boolResult = SDL_HasClipboardText(); - SDLTest_AssertCheck( - boolResult == true, - "Verify SDL_HasClipboardText returned true, got %s", - (boolResult) ? "true" : "false"); - charResult = SDL_GetClipboardText(); - SDLTest_AssertCheck( - charResult && SDL_strcmp(textRef, charResult) == 0, - "Verify SDL_GetClipboardText returned correct string, expected '%s', got '%s'", - textRef, charResult); - SDL_free(charResult); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count + 1, - "Verify clipboard update count incremented by 1, got %d", - clipboard_update_count - last_clipboard_update_count); - - /* Reset clipboard text */ - intResult = SDL_SetClipboardText(NULL); - SDLTest_AssertCheck( - intResult == true, - "Verify result from SDL_SetClipboardText(NULL), expected true, got %i", - intResult); - - /* Cleanup */ - SDL_free(textRef); - SDL_free(text); - - SDL_RemoveEventWatch(ClipboardEventWatch, NULL); - - return TEST_COMPLETED; -} - -/** - * End-to-end test of SDL_xyzPrimarySelectionText functions - * \sa SDL_HasPrimarySelectionText - * \sa SDL_GetPrimarySelectionText - * \sa SDL_SetPrimarySelectionText - */ -static int SDLCALL clipboard_testPrimarySelectionTextFunctions(void *arg) -{ - char *textRef = SDLTest_RandomAsciiString(); - char *text = SDL_strdup(textRef); - bool boolResult; - int intResult; - char *charResult; - int last_clipboard_update_count; - - SDL_AddEventWatch(ClipboardEventWatch, NULL); - - /* Empty primary selection */ - last_clipboard_update_count = clipboard_update_count; - intResult = SDL_SetPrimarySelectionText(NULL); - SDLTest_AssertCheck( - intResult == true, - "Verify result from SDL_SetPrimarySelectionText(NULL), expected true, got %i", - intResult); - charResult = SDL_GetPrimarySelectionText(); - SDLTest_AssertCheck( - charResult && SDL_strcmp(charResult, "") == 0, - "Verify SDL_GetPrimarySelectionText returned \"\", got %s", - charResult); - SDL_free(charResult); - boolResult = SDL_HasPrimarySelectionText(); - SDLTest_AssertCheck( - boolResult == false, - "Verify SDL_HasPrimarySelectionText returned false, got %s", - (boolResult) ? "true" : "false"); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count + 1, - "Verify clipboard update count incremented by 1, got %d", - clipboard_update_count - last_clipboard_update_count); - - /* Set primary selection */ - last_clipboard_update_count = clipboard_update_count; - intResult = SDL_SetPrimarySelectionText(text); - SDLTest_AssertCheck( - intResult == true, - "Verify result from SDL_SetPrimarySelectionText(%s), expected true, got %i", text, - intResult); - SDLTest_AssertCheck( - SDL_strcmp(textRef, text) == 0, - "Verify SDL_SetPrimarySelectionText did not modify input string, expected '%s', got '%s'", - textRef, text); - boolResult = SDL_HasPrimarySelectionText(); - SDLTest_AssertCheck( - boolResult == true, - "Verify SDL_HasPrimarySelectionText returned true, got %s", - (boolResult) ? "true" : "false"); - charResult = SDL_GetPrimarySelectionText(); - SDLTest_AssertCheck( - charResult && SDL_strcmp(textRef, charResult) == 0, - "Verify SDL_GetPrimarySelectionText returned correct string, expected '%s', got '%s'", - textRef, charResult); - SDL_free(charResult); - SDLTest_AssertCheck( - clipboard_update_count == last_clipboard_update_count + 1, - "Verify clipboard update count incremented by 1, got %d", - clipboard_update_count - last_clipboard_update_count); - - /* Reset primary selection */ - intResult = SDL_SetPrimarySelectionText(NULL); - SDLTest_AssertCheck( - intResult == true, - "Verify result from SDL_SetPrimarySelectionText(NULL), expected true, got %i", - intResult); - - /* Cleanup */ - SDL_free(textRef); - SDL_free(text); - - SDL_RemoveEventWatch(ClipboardEventWatch, NULL); - - return TEST_COMPLETED; -} - -/* ================= Test References ================== */ - -static const SDLTest_TestCaseReference clipboardTest1 = { - clipboard_testClipboardDataFunctions, "clipboard_testClipboardDataFunctions", "End-to-end test of SDL_xyzClipboardData functions", TEST_ENABLED -}; - -static const SDLTest_TestCaseReference clipboardTest2 = { - clipboard_testClipboardTextFunctions, "clipboard_testClipboardTextFunctions", "End-to-end test of SDL_xyzClipboardText functions", TEST_ENABLED -}; - -static const SDLTest_TestCaseReference clipboardTest3 = { - clipboard_testPrimarySelectionTextFunctions, "clipboard_testPrimarySelectionTextFunctions", "End-to-end test of SDL_xyzPrimarySelectionText functions", TEST_ENABLED -}; - -/* Sequence of Clipboard test cases */ -static const SDLTest_TestCaseReference *clipboardTests[] = { - &clipboardTest1, &clipboardTest2, &clipboardTest3, NULL -}; - -/* Clipboard test suite (global) */ -SDLTest_TestSuiteReference clipboardTestSuite = { - "Clipboard", - NULL, - clipboardTests, - NULL -}; -- cgit v1.2.3