[Tizen] Support Autoconf 2.71
[platform/upstream/SDL.git] / test / testautomation_hints.c
1 /**
2  * Hints test suite
3  */
4
5 #include <stdio.h>
6
7 #include "SDL.h"
8 #include "SDL_test.h"
9
10
11 const int _numHintsEnum = 25;
12 char* _HintsEnum[] =
13   {
14     SDL_HINT_ACCELEROMETER_AS_JOYSTICK,
15     SDL_HINT_FRAMEBUFFER_ACCELERATION,
16     SDL_HINT_GAMECONTROLLERCONFIG,
17     SDL_HINT_GRAB_KEYBOARD,
18     SDL_HINT_IDLE_TIMER_DISABLED,
19     SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS,
20     SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK,
21     SDL_HINT_MOUSE_RELATIVE_MODE_WARP,
22     SDL_HINT_ORIENTATIONS,
23     SDL_HINT_RENDER_DIRECT3D_THREADSAFE,
24     SDL_HINT_RENDER_DRIVER,
25     SDL_HINT_RENDER_OPENGL_SHADERS,
26     SDL_HINT_RENDER_SCALE_QUALITY,
27     SDL_HINT_RENDER_VSYNC,
28     SDL_HINT_TIMER_RESOLUTION,
29     SDL_HINT_VIDEO_ALLOW_SCREENSAVER,
30     SDL_HINT_VIDEO_HIGHDPI_DISABLED,
31     SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES,
32     SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS,
33     SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT,
34     SDL_HINT_VIDEO_WIN_D3DCOMPILER,
35     SDL_HINT_VIDEO_X11_XINERAMA,
36     SDL_HINT_VIDEO_X11_XRANDR,
37     SDL_HINT_VIDEO_X11_XVIDMODE,
38     SDL_HINT_XINPUT_ENABLED,
39   };
40 char* _HintsVerbose[] =
41   {
42     "SDL_HINT_ACCELEROMETER_AS_JOYSTICK",
43     "SDL_HINT_FRAMEBUFFER_ACCELERATION",
44     "SDL_HINT_GAMECONTROLLERCONFIG",
45     "SDL_HINT_GRAB_KEYBOARD",
46     "SDL_HINT_IDLE_TIMER_DISABLED",
47     "SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS",
48     "SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK",
49     "SDL_HINT_MOUSE_RELATIVE_MODE_WARP",
50     "SDL_HINT_ORIENTATIONS",
51     "SDL_HINT_RENDER_DIRECT3D_THREADSAFE",
52     "SDL_HINT_RENDER_DRIVER",
53     "SDL_HINT_RENDER_OPENGL_SHADERS",
54     "SDL_HINT_RENDER_SCALE_QUALITY",
55     "SDL_HINT_RENDER_VSYNC",
56     "SDL_HINT_TIMER_RESOLUTION",
57     "SDL_HINT_VIDEO_ALLOW_SCREENSAVER",
58     "SDL_HINT_VIDEO_HIGHDPI_DISABLED",
59     "SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES",
60     "SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS",
61     "SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT",
62     "SDL_HINT_VIDEO_WIN_D3DCOMPILER",
63     "SDL_HINT_VIDEO_X11_XINERAMA",
64     "SDL_HINT_VIDEO_X11_XRANDR",
65     "SDL_HINT_VIDEO_X11_XVIDMODE",
66     "SDL_HINT_XINPUT_ENABLED"
67   };
68
69
70 /* Test case functions */
71
72 /**
73  * @brief Call to SDL_GetHint
74  */
75 int
76 hints_getHint(void *arg)
77 {
78   char *result1;
79   char *result2;
80   int i;
81
82   for (i=0; i<_numHintsEnum; i++) {
83     result1 = (char *)SDL_GetHint((char*)_HintsEnum[i]);
84     SDLTest_AssertPass("Call to SDL_GetHint(%s) - using define definition", (char*)_HintsEnum[i]);
85     result2 = (char *)SDL_GetHint((char *)_HintsVerbose[i]);
86     SDLTest_AssertPass("Call to SDL_GetHint(%s) - using string definition", (char*)_HintsVerbose[i]);
87
88
89     SDLTest_AssertCheck(
90       (result1 == NULL && result2 == NULL) || (SDL_strcmp(result1, result2) == 0),
91       "Verify returned values are equal; got: result1='%s' result2='%s",
92       (result1 == NULL) ? "null" : result1,
93       (result2 == NULL) ? "null" : result2);
94   }
95
96   return TEST_COMPLETED;
97 }
98
99 /**
100  * @brief Call to SDL_SetHint
101  */
102 int
103 hints_setHint(void *arg)
104 {
105   char *originalValue;
106   char *value;
107   char *testValue;
108   SDL_bool result;
109   int i, j;
110
111   /* Create random values to set */                    
112   value = SDLTest_RandomAsciiStringOfSize(10);
113     
114   for (i=0; i<_numHintsEnum; i++) {
115     /* Capture current value */
116     originalValue = (char *)SDL_GetHint((char*)_HintsEnum[i]);
117     SDLTest_AssertPass("Call to SDL_GetHint(%s)", (char*)_HintsEnum[i]);
118     
119     /* Set value (twice) */
120     for (j=1; j<=2; j++) {
121       result = SDL_SetHint((char*)_HintsEnum[i], value);
122       SDLTest_AssertPass("Call to SDL_SetHint(%s, %s) (iteration %i)", (char*)_HintsEnum[i], value, j);
123       SDLTest_AssertCheck(
124         result == SDL_TRUE || result == SDL_FALSE, 
125         "Verify valid result was returned, got: %i",
126         (int)result);
127       testValue = (char *)SDL_GetHint((char*)_HintsEnum[i]);
128       SDLTest_AssertPass("Call to SDL_GetHint(%s) - using string definition", (char*)_HintsVerbose[i]);
129       SDLTest_AssertCheck(
130         (SDL_strcmp(value, testValue) == 0),
131         "Verify returned value equals set value; got: testValue='%s' value='%s",
132         (testValue == NULL) ? "null" : testValue,
133         value);
134     }
135       
136     /* Reset original value */
137     result = SDL_SetHint((char*)_HintsEnum[i], originalValue);
138     SDLTest_AssertPass("Call to SDL_SetHint(%s, originalValue)", (char*)_HintsEnum[i]);
139     SDLTest_AssertCheck(
140       result == SDL_TRUE || result == SDL_FALSE, 
141       "Verify valid result was returned, got: %i",
142       (int)result);
143   }
144   
145   SDL_free(value);
146   
147   return TEST_COMPLETED;
148 }
149
150 /* ================= Test References ================== */
151
152 /* Hints test cases */
153 static const SDLTest_TestCaseReference hintsTest1 =
154         { (SDLTest_TestCaseFp)hints_getHint, "hints_getHint", "Call to SDL_GetHint", TEST_ENABLED };
155
156 static const SDLTest_TestCaseReference hintsTest2 =
157         { (SDLTest_TestCaseFp)hints_setHint, "hints_setHint", "Call to SDL_SetHint", TEST_DISABLED };
158
159 /* Sequence of Hints test cases */
160 static const SDLTest_TestCaseReference *hintsTests[] =  {
161     &hintsTest1, &hintsTest2, NULL
162 };
163
164 /* Hints test suite (global) */
165 SDLTest_TestSuiteReference hintsTestSuite = {
166     "Hints",
167     NULL,
168     hintsTests,
169     NULL
170 };