Atlas - testautomation_log.c
Home / ext / SDL / test Lines: 1 | Size: 9211 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)][FILE BEGIN]1/** 2 * Log test suite 3 */ 4#include <SDL3/SDL.h> 5#include <SDL3/SDL_test.h> 6#include "testautomation_suites.h" 7 8static SDL_LogOutputFunction original_function; 9static void *original_userdata; 10 11static void SDLCALL TestLogOutput(void *userdata, int category, SDL_LogPriority priority, const char *message) 12{ 13 int *message_count = (int *)userdata; 14 ++(*message_count); 15} 16 17static void EnableTestLog(int *message_count) 18{ 19 *message_count = 0; 20 SDL_GetLogOutputFunction(&original_function, &original_userdata); 21 SDL_SetLogOutputFunction(TestLogOutput, message_count); 22} 23 24static void DisableTestLog(void) 25{ 26 SDL_SetLogOutputFunction(original_function, original_userdata); 27} 28 29/* Fixture */ 30 31/* Test case functions */ 32 33/** 34 * Check SDL_HINT_LOGGING functionality 35 */ 36static int SDLCALL log_testHint(void *arg) 37{ 38 int count; 39 40 SDL_SetHint(SDL_HINT_LOGGING, NULL); 41 SDLTest_AssertPass("SDL_SetHint(SDL_HINT_LOGGING, NULL)"); 42 { 43 EnableTestLog(&count); 44 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "test"); 45 DisableTestLog(); 46 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, \"test\")"); 47 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 48 49 EnableTestLog(&count); 50 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "test"); 51 DisableTestLog(); 52 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, \"test\")"); 53 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 54 } 55 56 SDL_SetHint(SDL_HINT_LOGGING, "debug"); 57 SDLTest_AssertPass("SDL_SetHint(SDL_HINT_LOGGING, \"debug\")"); 58 { 59 EnableTestLog(&count); 60 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "test"); 61 DisableTestLog(); 62 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, \"test\")"); 63 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 64 65 EnableTestLog(&count); 66 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_VERBOSE, "test"); 67 DisableTestLog(); 68 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_VERBOSE, \"test\")"); 69 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 70 } 71 72 SDL_SetHint(SDL_HINT_LOGGING, "system=debug"); 73 SDLTest_AssertPass("SDL_SetHint(SDL_HINT_LOGGING, \"system=debug\")"); 74 { 75 EnableTestLog(&count); 76 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "test"); 77 DisableTestLog(); 78 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, \"test\")"); 79 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 80 81 EnableTestLog(&count); 82 SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_DEBUG, "test"); 83 DisableTestLog(); 84 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_DEBUG, \"test\")"); 85 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 86 87 EnableTestLog(&count); 88 SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_VERBOSE, "test"); 89 DisableTestLog(); 90 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_VERBOSE, \"test\")"); 91 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 92 } 93 94 SDL_SetHint(SDL_HINT_LOGGING, "app=warn,system=debug,assert=quiet,*=info"); 95 SDLTest_AssertPass("SDL_SetHint(SDL_HINT_LOGGING, \"app=warn,system=debug,assert=quiet,*=info\")"); 96 { 97 EnableTestLog(&count); 98 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN, "test"); 99 DisableTestLog(); 100 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN, \"test\")"); 101 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 102 103 EnableTestLog(&count); 104 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "test"); 105 DisableTestLog(); 106 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, \"test\")"); 107 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 108 109 EnableTestLog(&count); 110 SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_DEBUG, "test"); 111 DisableTestLog(); 112 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_DEBUG, \"test\")"); 113 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 114 115 EnableTestLog(&count); 116 SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_VERBOSE, "test"); 117 DisableTestLog(); 118 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_VERBOSE, \"test\")"); 119 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 120 121 EnableTestLog(&count); 122 SDL_LogMessage(SDL_LOG_CATEGORY_ASSERT, SDL_LOG_PRIORITY_CRITICAL, "test"); 123 DisableTestLog(); 124 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_ASSERT, SDL_LOG_PRIORITY_CRITICAL, \"test\")"); 125 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 126 127 EnableTestLog(&count); 128 SDL_LogMessage(SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_PRIORITY_INFO, "test"); 129 DisableTestLog(); 130 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_PRIORITY_INFO, \"test\")"); 131 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 132 133 EnableTestLog(&count); 134 SDL_LogMessage(SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_PRIORITY_DEBUG, "test"); 135 DisableTestLog(); 136 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_PRIORITY_DEBUG, \"test\")"); 137 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 138 139 } 140 141 SDL_SetHint(SDL_HINT_LOGGING, "0=5,3=3,2=0,*=4"); 142 SDLTest_AssertPass("SDL_SetHint(SDL_HINT_LOGGING, \"0=5,3=3,2=1,*=4\")"); 143 { 144 EnableTestLog(&count); 145 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN, "test"); 146 DisableTestLog(); 147 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN, \"test\")"); 148 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 149 150 EnableTestLog(&count); 151 SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "test"); 152 DisableTestLog(); 153 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, \"test\")"); 154 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 155 156 EnableTestLog(&count); 157 SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_DEBUG, "test"); 158 DisableTestLog(); 159 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_DEBUG, \"test\")"); 160 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 161 162 EnableTestLog(&count); 163 SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_VERBOSE, "test"); 164 DisableTestLog(); 165 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_VERBOSE, \"test\")"); 166 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 167 168 EnableTestLog(&count); 169 SDL_LogMessage(SDL_LOG_CATEGORY_ASSERT, SDL_LOG_PRIORITY_CRITICAL, "test"); 170 DisableTestLog(); 171 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_ASSERT, SDL_LOG_PRIORITY_CRITICAL, \"test\")"); 172 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 173 174 EnableTestLog(&count); 175 SDL_LogMessage(SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_PRIORITY_INFO, "test"); 176 DisableTestLog(); 177 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_PRIORITY_INFO, \"test\")"); 178 SDLTest_AssertCheck(count == 1, "Check result value, expected: 1, got: %d", count); 179 180 EnableTestLog(&count); 181 SDL_LogMessage(SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_PRIORITY_DEBUG, "test"); 182 DisableTestLog(); 183 SDLTest_AssertPass("SDL_LogMessage(SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_PRIORITY_DEBUG, \"test\")"); 184 SDLTest_AssertCheck(count == 0, "Check result value, expected: 0, got: %d", count); 185 186 } 187 188 return TEST_COMPLETED; 189} 190 191/* ================= Test References ================== */ 192 193/* Log test cases */ 194static const SDLTest_TestCaseReference logTestHint = { 195 log_testHint, "log_testHint", "Check SDL_HINT_LOGGING functionality", TEST_ENABLED 196}; 197 198/* Sequence of Log test cases */ 199static const SDLTest_TestCaseReference *logTests[] = { 200 &logTestHint, NULL 201}; 202 203/* Timer test suite (global) */ 204SDLTest_TestSuiteReference logTestSuite = { 205 "Log", 206 NULL, 207 logTests, 208 NULL 209}; 210[FILE END](C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.