summaryrefslogtreecommitdiff
path: root/src/contrib/SDL-3.2.20/test/testautomation_log.c
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-08-30 16:53:58 -0700
committer3gg <3gg@shellblade.net>2025-08-30 16:53:58 -0700
commit6aaedb813fa11ba0679c3051bc2eb28646b9506c (patch)
tree34acbfc9840e02cb4753e6306ea7ce978bf8b58e /src/contrib/SDL-3.2.20/test/testautomation_log.c
parent8f228ade99dd3d4c8da9b78ade1815c9adf85c8f (diff)
Update to SDL3
Diffstat (limited to 'src/contrib/SDL-3.2.20/test/testautomation_log.c')
-rw-r--r--src/contrib/SDL-3.2.20/test/testautomation_log.c209
1 files changed, 209 insertions, 0 deletions
diff --git a/src/contrib/SDL-3.2.20/test/testautomation_log.c b/src/contrib/SDL-3.2.20/test/testautomation_log.c
new file mode 100644
index 0000000..2ab1929
--- /dev/null
+++ b/src/contrib/SDL-3.2.20/test/testautomation_log.c
@@ -0,0 +1,209 @@
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};