SDL

Форк
0
/
testautomation_log.c 
209 строк · 9.0 Кб
1
/**
2
 * Log test suite
3
 */
4
#include <SDL3/SDL.h>
5
#include <SDL3/SDL_test.h>
6
#include "testautomation_suites.h"
7

8
static SDL_LogOutputFunction original_function;
9
static void *original_userdata;
10

11
static 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

17
static 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

24
static 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
 */
36
static int 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=4,3=2,2=0,*=3");
142
    SDLTest_AssertPass("SDL_SetHint(SDL_HINT_LOGGING, \"0=4,3=2,2=0,*=3\")");
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 */
194
static const SDLTest_TestCaseReference logTestHint = {
195
    (SDLTest_TestCaseFp)log_testHint, "log_testHint", "Check SDL_HINT_LOGGING functionality", TEST_ENABLED
196
};
197

198
/* Sequence of Log test cases */
199
static const SDLTest_TestCaseReference *logTests[] = {
200
    &logTestHint, NULL
201
};
202

203
/* Timer test suite (global) */
204
SDLTest_TestSuiteReference logTestSuite = {
205
    "Log",
206
    NULL,
207
    logTests,
208
    NULL
209
};
210

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.