test/testautomation_video.c
author Andreas Schiffler <aschiffler@ferzkopp.net>
Thu, 28 Feb 2013 09:11:04 -0800
changeset 6936 76d9c31e823d
parent 6921 9a29af9de577
child 6956 afdc35fa58e9
permissions -rw-r--r--
Add additional input validation to SDL_GetWindowDisplayMode; add tests to video suite
aschiffler@6800
     1
/**
aschiffler@6800
     2
 * Video test suite
aschiffler@6800
     3
 */
aschiffler@6800
     4
aschiffler@6800
     5
#include <stdio.h>
aschiffler@6800
     6
aschiffler@6800
     7
#include "SDL.h"
aschiffler@6800
     8
#include "SDL_test.h"
aschiffler@6800
     9
aschiffler@6921
    10
/* Private helpers */
aschiffler@6921
    11
aschiffler@6921
    12
/* 
aschiffler@6921
    13
 * Create a test window
aschiffler@6921
    14
 */
aschiffler@6921
    15
SDL_Window *_createVideoSuiteTestWindow(const char *title)
aschiffler@6921
    16
{
aschiffler@6921
    17
  SDL_Window* window;
aschiffler@6921
    18
  int x, y, w, h;
aschiffler@6921
    19
  SDL_WindowFlags flags;
aschiffler@6921
    20
aschiffler@6921
    21
  /* Standard window */
aschiffler@6921
    22
  x = SDLTest_RandomIntegerInRange(1, 100);
aschiffler@6921
    23
  y = SDLTest_RandomIntegerInRange(1, 100);
aschiffler@6921
    24
  w = SDLTest_RandomIntegerInRange(320, 1024);
aschiffler@6921
    25
  h = SDLTest_RandomIntegerInRange(320, 768);
aschiffler@6921
    26
  flags = SDL_WINDOW_SHOWN;
aschiffler@6921
    27
  
aschiffler@6921
    28
  window = SDL_CreateWindow(title, x, y, w, h, flags);
aschiffler@6921
    29
  SDLTest_AssertPass("Call to SDL_CreateWindow('Title',%d,%d,%d,%d,%d)", x, y, w, h, flags);
aschiffler@6921
    30
  SDLTest_AssertCheck(window != NULL, "Validate that returned window struct is not NULL");
aschiffler@6921
    31
aschiffler@6921
    32
  return window;
aschiffler@6921
    33
}
aschiffler@6921
    34
aschiffler@6921
    35
/*
aschiffler@6921
    36
 * Destroy test window  
aschiffler@6921
    37
 */
aschiffler@6921
    38
void _destroyVideoSuiteTestWindow(SDL_Window *window)
aschiffler@6921
    39
{
aschiffler@6921
    40
  if (window != NULL) {  
aschiffler@6921
    41
     SDL_DestroyWindow(window);
aschiffler@6921
    42
     window = NULL;
aschiffler@6921
    43
     SDLTest_AssertPass("Call to SDL_DestroyWindow");
aschiffler@6921
    44
  }
aschiffler@6921
    45
}
aschiffler@6921
    46
aschiffler@6800
    47
/* Test case functions */
aschiffler@6800
    48
aschiffler@6800
    49
/**
aschiffler@6800
    50
 * @brief Enable and disable screensaver while checking state
aschiffler@6800
    51
 */
aschiffler@6800
    52
int
aschiffler@6800
    53
video_enableDisableScreensaver(void *arg)
aschiffler@6800
    54
{
aschiffler@6800
    55
	SDL_bool initialResult;
aschiffler@6800
    56
	SDL_bool result;
aschiffler@6800
    57
aschiffler@6800
    58
	/* Get current state and proceed according to current state */
aschiffler@6800
    59
	initialResult = SDL_IsScreenSaverEnabled();
aschiffler@6800
    60
	SDLTest_AssertPass("Call to SDL_IsScreenSaverEnabled()");	
aschiffler@6800
    61
	if (initialResult == SDL_TRUE) {
aschiffler@6800
    62
	
aschiffler@6800
    63
	  /* Currently enabled: disable first, then enable again */
aschiffler@6800
    64
	  
aschiffler@6800
    65
	  /* Disable screensaver and check */	
aschiffler@6800
    66
	  SDL_DisableScreenSaver();
aschiffler@6800
    67
	  SDLTest_AssertPass("Call to SDL_DisableScreenSaver()");	
aschiffler@6800
    68
	  result = SDL_IsScreenSaverEnabled();
aschiffler@6800
    69
	  SDLTest_AssertPass("Call to SDL_IsScreenSaverEnabled()");
aschiffler@6800
    70
	  SDLTest_AssertCheck(result == SDL_FALSE, "Verify result from SDL_IsScreenSaverEnabled, expected: %i, got: %i", SDL_FALSE, result);
aschiffler@6800
    71
	
aschiffler@6800
    72
	  /* Enable screensaver and check */	
aschiffler@6800
    73
	  SDL_EnableScreenSaver();
aschiffler@6800
    74
	  SDLTest_AssertPass("Call to SDL_EnableScreenSaver()");
aschiffler@6800
    75
	  result = SDL_IsScreenSaverEnabled();
aschiffler@6800
    76
	  SDLTest_AssertPass("Call to SDL_IsScreenSaverEnabled()");
aschiffler@6800
    77
	  SDLTest_AssertCheck(result == SDL_TRUE, "Verify result from SDL_IsScreenSaverEnabled, expected: %i, got: %i", SDL_TRUE, result);
aschiffler@6800
    78
aschiffler@6800
    79
	} else {
aschiffler@6800
    80
aschiffler@6800
    81
	  /* Currently disabled: enable first, then disable again */
aschiffler@6800
    82
	  
aschiffler@6800
    83
	  /* Enable screensaver and check */	
aschiffler@6800
    84
	  SDL_EnableScreenSaver();
aschiffler@6800
    85
	  SDLTest_AssertPass("Call to SDL_EnableScreenSaver()");
aschiffler@6800
    86
	  result = SDL_IsScreenSaverEnabled();
aschiffler@6800
    87
	  SDLTest_AssertPass("Call to SDL_IsScreenSaverEnabled()");
aschiffler@6800
    88
	  SDLTest_AssertCheck(result == SDL_TRUE, "Verify result from SDL_IsScreenSaverEnabled, expected: %i, got: %i", SDL_TRUE, result);
aschiffler@6800
    89
aschiffler@6800
    90
	  /* Disable screensaver and check */	
aschiffler@6800
    91
	  SDL_DisableScreenSaver();
aschiffler@6800
    92
	  SDLTest_AssertPass("Call to SDL_DisableScreenSaver()");	
aschiffler@6800
    93
	  result = SDL_IsScreenSaverEnabled();
aschiffler@6800
    94
	  SDLTest_AssertPass("Call to SDL_IsScreenSaverEnabled()");
aschiffler@6800
    95
	  SDLTest_AssertCheck(result == SDL_FALSE, "Verify result from SDL_IsScreenSaverEnabled, expected: %i, got: %i", SDL_FALSE, result);	
aschiffler@6800
    96
	}	
aschiffler@6800
    97
	
aschiffler@6800
    98
	return TEST_COMPLETED;
aschiffler@6800
    99
}
aschiffler@6800
   100
aschiffler@6891
   101
/**
aschiffler@6891
   102
 * @brief Tests the functionality of the SDL_CreateWindow function using different positions
aschiffler@6891
   103
 */
aschiffler@6891
   104
int
aschiffler@6891
   105
video_createWindowVariousPositions(void *arg)
aschiffler@6891
   106
{
aschiffler@6891
   107
  SDL_Window* window;
aschiffler@6891
   108
  const char* title = "video_createWindowVariousPositions Test Window";
aschiffler@6891
   109
  int x, y, w, h;
aschiffler@6891
   110
  int xVariation, yVariation;
aschiffler@6891
   111
  
aschiffler@6891
   112
  for (xVariation = 0; xVariation < 6; xVariation++) {
aschiffler@6891
   113
   for (yVariation = 0; yVariation < 6; yVariation++) {
aschiffler@6891
   114
    switch(xVariation) {
aschiffler@6891
   115
     case 0:
aschiffler@6891
   116
      /* Zero X Position */  
aschiffler@6891
   117
      x = 0;
aschiffler@6891
   118
      break;
aschiffler@6891
   119
     case 1:
aschiffler@6891
   120
      /* Random X position inside screen */  
aschiffler@6891
   121
      x = SDLTest_RandomIntegerInRange(1, 100);
aschiffler@6891
   122
      break;
aschiffler@6891
   123
     case 2:
aschiffler@6891
   124
      /* Random X position outside screen (positive) */  
aschiffler@6891
   125
      x = SDLTest_RandomIntegerInRange(10000, 11000);
aschiffler@6891
   126
      break;
aschiffler@6891
   127
     case 3:
aschiffler@6891
   128
      /* Random X position outside screen (negative) */  
aschiffler@6891
   129
      x = SDLTest_RandomIntegerInRange(-1000, -100);
aschiffler@6891
   130
      break;
aschiffler@6891
   131
     case 4:
aschiffler@6891
   132
      /* Centered X position */  
aschiffler@6891
   133
      x = SDL_WINDOWPOS_CENTERED;
aschiffler@6891
   134
      break;
aschiffler@6891
   135
     case 5:
aschiffler@6891
   136
      /* Undefined X position */  
aschiffler@6891
   137
      x = SDL_WINDOWPOS_UNDEFINED;
aschiffler@6891
   138
      break;
aschiffler@6891
   139
    }
aschiffler@6891
   140
aschiffler@6891
   141
    switch(yVariation) {
aschiffler@6891
   142
     case 0:
aschiffler@6891
   143
      /* Zero X Position */  
aschiffler@6891
   144
      y = 0;
aschiffler@6891
   145
      break;
aschiffler@6891
   146
     case 1:
aschiffler@6891
   147
      /* Random X position inside screen */  
aschiffler@6891
   148
      y = SDLTest_RandomIntegerInRange(1, 100);
aschiffler@6891
   149
      break;
aschiffler@6891
   150
     case 2:
aschiffler@6891
   151
      /* Random X position outside screen (positive) */  
aschiffler@6891
   152
      y = SDLTest_RandomIntegerInRange(10000, 11000);
aschiffler@6891
   153
      break;
aschiffler@6891
   154
     case 3:
aschiffler@6891
   155
      /* Random Y position outside screen (negative) */  
aschiffler@6891
   156
      y = SDLTest_RandomIntegerInRange(-1000, -100);
aschiffler@6891
   157
      break;
aschiffler@6891
   158
     case 4:
aschiffler@6891
   159
      /* Centered Y position */  
aschiffler@6891
   160
      y = SDL_WINDOWPOS_CENTERED;
aschiffler@6891
   161
      break;
aschiffler@6891
   162
     case 5:
aschiffler@6891
   163
      /* Undefined Y position */  
aschiffler@6891
   164
      y = SDL_WINDOWPOS_UNDEFINED;
aschiffler@6891
   165
      break;
aschiffler@6891
   166
    }
aschiffler@6891
   167
     
aschiffler@6891
   168
    w = SDLTest_RandomIntegerInRange(32, 96);
aschiffler@6891
   169
    h = SDLTest_RandomIntegerInRange(32, 96);
aschiffler@6891
   170
    window = SDL_CreateWindow(title, x, y, w, h, SDL_WINDOW_SHOWN);
aschiffler@6891
   171
    SDLTest_AssertPass("Call to SDL_CreateWindow('Title',%d,%d,%d,%d,SHOWN)", x, y, w, h);
aschiffler@6891
   172
    SDLTest_AssertCheck(window != NULL, "Validate that returned window struct is not NULL");
aschiffler@6921
   173
aschiffler@6921
   174
    /* Clean up */    
aschiffler@6921
   175
    _destroyVideoSuiteTestWindow(window);
aschiffler@6891
   176
   }
aschiffler@6891
   177
  } 
aschiffler@6891
   178
aschiffler@6891
   179
  return TEST_COMPLETED;
aschiffler@6891
   180
}
aschiffler@6891
   181
aschiffler@6891
   182
/**
aschiffler@6891
   183
 * @brief Tests the functionality of the SDL_CreateWindow function using different sizes
aschiffler@6891
   184
 */
aschiffler@6891
   185
int
aschiffler@6891
   186
video_createWindowVariousSizes(void *arg)
aschiffler@6891
   187
{
aschiffler@6891
   188
  SDL_Window* window;
aschiffler@6891
   189
  const char* title = "video_createWindowVariousSizes Test Window";
aschiffler@6891
   190
  int x, y, w, h;
aschiffler@6891
   191
  int wVariation, hVariation;
aschiffler@6891
   192
  
aschiffler@6891
   193
  x = SDLTest_RandomIntegerInRange(1, 100);
aschiffler@6891
   194
  y = SDLTest_RandomIntegerInRange(1, 100);
aschiffler@6891
   195
  for (wVariation = 0; wVariation < 3; wVariation++) {
aschiffler@6891
   196
   for (hVariation = 0; hVariation < 3; hVariation++) {
aschiffler@6891
   197
    switch(wVariation) {
aschiffler@6891
   198
     case 0:
aschiffler@6891
   199
      /* Width of 1 */  
aschiffler@6891
   200
      w = 1;
aschiffler@6891
   201
      break;
aschiffler@6891
   202
     case 1:
aschiffler@6891
   203
      /* Random "normal" width */  
aschiffler@6891
   204
      w = SDLTest_RandomIntegerInRange(320, 1920);
aschiffler@6891
   205
      break;
aschiffler@6891
   206
     case 2:
aschiffler@6891
   207
      /* Random "large" width */  
aschiffler@6891
   208
      w = SDLTest_RandomIntegerInRange(2048, 4095);
aschiffler@6891
   209
      break;
aschiffler@6891
   210
    }
aschiffler@6891
   211
aschiffler@6891
   212
    switch(hVariation) {
aschiffler@6891
   213
     case 0:
aschiffler@6891
   214
      /* Height of 1 */  
aschiffler@6891
   215
      h = 1;
aschiffler@6891
   216
      break;
aschiffler@6891
   217
     case 1:
aschiffler@6891
   218
      /* Random "normal" height */  
aschiffler@6891
   219
      h = SDLTest_RandomIntegerInRange(320, 1080);
aschiffler@6891
   220
      break;
aschiffler@6891
   221
     case 2:
aschiffler@6891
   222
      /* Random "large" height */  
aschiffler@6891
   223
      h = SDLTest_RandomIntegerInRange(2048, 4095);
aschiffler@6891
   224
      break;
aschiffler@6891
   225
     }
aschiffler@6891
   226
     
aschiffler@6891
   227
    window = SDL_CreateWindow(title, x, y, w, h, SDL_WINDOW_SHOWN);
aschiffler@6891
   228
    SDLTest_AssertPass("Call to SDL_CreateWindow('Title',%d,%d,%d,%d,SHOWN)", x, y, w, h);
aschiffler@6891
   229
    SDLTest_AssertCheck(window != NULL, "Validate that returned window struct is not NULL");
aschiffler@6921
   230
aschiffler@6921
   231
    /* Clean up */    
aschiffler@6921
   232
    _destroyVideoSuiteTestWindow(window);
aschiffler@6891
   233
   }
aschiffler@6891
   234
  }  
aschiffler@6891
   235
aschiffler@6891
   236
  return TEST_COMPLETED;
aschiffler@6891
   237
}
aschiffler@6891
   238
aschiffler@6891
   239
/**
aschiffler@6891
   240
 * @brief Tests the functionality of the SDL_CreateWindow function using different flags
aschiffler@6891
   241
 */
aschiffler@6891
   242
int
aschiffler@6891
   243
video_createWindowVariousFlags(void *arg)
aschiffler@6891
   244
{
aschiffler@6891
   245
  SDL_Window* window;
aschiffler@6891
   246
  const char* title = "video_createWindowVariousFlags Test Window";
aschiffler@6891
   247
  int x, y, w, h;
aschiffler@6891
   248
  int fVariation;
aschiffler@6891
   249
  SDL_WindowFlags flags;
aschiffler@6891
   250
  
aschiffler@6891
   251
  /* Standard window */
aschiffler@6891
   252
  x = SDLTest_RandomIntegerInRange(1, 100);
aschiffler@6891
   253
  y = SDLTest_RandomIntegerInRange(1, 100);
aschiffler@6891
   254
  w = SDLTest_RandomIntegerInRange(320, 1024);
aschiffler@6891
   255
  h = SDLTest_RandomIntegerInRange(320, 768);
aschiffler@6891
   256
aschiffler@6891
   257
  for (fVariation = 0; fVariation < 13; fVariation++) {
aschiffler@6891
   258
    switch(fVariation) {
aschiffler@6891
   259
     case 0:
aschiffler@6891
   260
      flags = SDL_WINDOW_FULLSCREEN;
aschiffler@6891
   261
      /* Skip - blanks screen; comment out next line to run test */
aschiffler@6891
   262
      continue;   
aschiffler@6891
   263
      break;
aschiffler@6891
   264
     case 1:
aschiffler@6891
   265
      flags = SDL_WINDOW_FULLSCREEN_DESKTOP;
aschiffler@6891
   266
      /* Skip - blanks screen; comment out next line to run test */
aschiffler@6891
   267
      continue;  
aschiffler@6891
   268
      break;
aschiffler@6891
   269
     case 2:
aschiffler@6891
   270
      flags = SDL_WINDOW_OPENGL;
aschiffler@6891
   271
      break;  
aschiffler@6891
   272
     case 3:
aschiffler@6891
   273
      flags = SDL_WINDOW_SHOWN;
aschiffler@6891
   274
      break;   
aschiffler@6891
   275
     case 4:    
aschiffler@6891
   276
      flags = SDL_WINDOW_HIDDEN;
aschiffler@6891
   277
      break;     
aschiffler@6891
   278
     case 5:
aschiffler@6891
   279
      flags = SDL_WINDOW_BORDERLESS;
aschiffler@6891
   280
      break;       
aschiffler@6891
   281
     case 6:
aschiffler@6891
   282
      flags = SDL_WINDOW_RESIZABLE;
aschiffler@6891
   283
      break;         
aschiffler@6891
   284
     case 7:
aschiffler@6891
   285
      flags = SDL_WINDOW_MINIMIZED;
aschiffler@6891
   286
      break;           
aschiffler@6891
   287
     case 8:
aschiffler@6891
   288
      flags = SDL_WINDOW_MAXIMIZED;
aschiffler@6891
   289
      break;
aschiffler@6891
   290
     case 9: 
aschiffler@6891
   291
      flags = SDL_WINDOW_INPUT_GRABBED;
aschiffler@6891
   292
      break;
aschiffler@6891
   293
     case 10:              
aschiffler@6891
   294
      flags = SDL_WINDOW_INPUT_FOCUS;
aschiffler@6891
   295
      break;                 
aschiffler@6891
   296
     case 11:                      
aschiffler@6891
   297
      flags = SDL_WINDOW_MOUSE_FOCUS;
aschiffler@6891
   298
      break;
aschiffler@6891
   299
     case 12: 
aschiffler@6891
   300
      flags = SDL_WINDOW_FOREIGN;
aschiffler@6891
   301
      break;
aschiffler@6891
   302
    }
aschiffler@6891
   303
       
aschiffler@6891
   304
    window = SDL_CreateWindow(title, x, y, w, h, flags);
aschiffler@6891
   305
    SDLTest_AssertPass("Call to SDL_CreateWindow('Title',%d,%d,%d,%d,%d)", x, y, w, h, flags);
aschiffler@6891
   306
    SDLTest_AssertCheck(window != NULL, "Validate that returned window struct is not NULL");
aschiffler@6921
   307
aschiffler@6921
   308
aschiffler@6921
   309
    /* Clean up */    
aschiffler@6921
   310
    _destroyVideoSuiteTestWindow(window);  
aschiffler@6891
   311
  }
aschiffler@6891
   312
aschiffler@6891
   313
  return TEST_COMPLETED;
aschiffler@6891
   314
}
aschiffler@6891
   315
aschiffler@6921
   316
aschiffler@6891
   317
/**
aschiffler@6891
   318
 * @brief Tests the functionality of the SDL_GetWindowFlags function
aschiffler@6891
   319
 */
aschiffler@6891
   320
int
aschiffler@6891
   321
video_getWindowFlags(void *arg)
aschiffler@6891
   322
{
aschiffler@6891
   323
  SDL_Window* window;
aschiffler@6891
   324
  const char* title = "video_getWindowFlags Test Window";
aschiffler@6891
   325
  SDL_WindowFlags flags;
aschiffler@6891
   326
  Uint32 actualFlags;
aschiffler@6891
   327
  
aschiffler@6921
   328
  /* Reliable flag set always set in test window */
aschiffler@6891
   329
  flags = SDL_WINDOW_SHOWN;
aschiffler@6891
   330
  
aschiffler@6921
   331
  /* Call against new test window */ 
aschiffler@6921
   332
  window = _createVideoSuiteTestWindow(title);
aschiffler@6891
   333
  if (window != NULL) {
aschiffler@6891
   334
      actualFlags = SDL_GetWindowFlags(window);
aschiffler@6891
   335
      SDLTest_AssertPass("Call to SDL_GetWindowFlags");
aschiffler@6891
   336
      SDLTest_AssertCheck((flags & actualFlags) == flags, "Verify returned value has flags %d set, got: %d", flags, actualFlags);
aschiffler@6891
   337
  }
aschiffler@6891
   338
aschiffler@6921
   339
  /* Clean up */    
aschiffler@6921
   340
  _destroyVideoSuiteTestWindow(window);
aschiffler@6921
   341
  
aschiffler@6921
   342
  return TEST_COMPLETED;
aschiffler@6921
   343
}
aschiffler@6921
   344
aschiffler@6921
   345
/**
aschiffler@6921
   346
 * @brief Tests the functionality of the SDL_GetNumDisplayModes function
aschiffler@6921
   347
 */
aschiffler@6921
   348
int
aschiffler@6921
   349
video_getNumDisplayModes(void *arg)
aschiffler@6921
   350
{
aschiffler@6921
   351
  int result;
aschiffler@6921
   352
  int displayNum;
aschiffler@6921
   353
  int i;
aschiffler@6921
   354
aschiffler@6921
   355
  /* Get number of displays */
aschiffler@6921
   356
  displayNum = SDL_GetNumVideoDisplays();
aschiffler@6921
   357
  SDLTest_AssertPass("Call to SDL_GetNumVideoDisplays");
aschiffler@6921
   358
aschiffler@6921
   359
  /* Make call for each display */  
aschiffler@6921
   360
  for (i=0; i<displayNum; i++) {
aschiffler@6921
   361
    result = SDL_GetNumDisplayModes(i);
aschiffler@6921
   362
    SDLTest_AssertPass("Call to SDL_GetNumDisplayModes(%d)", i);
aschiffler@6921
   363
    SDLTest_AssertCheck(result >= 1, "Validate returned value from function; expected: >=1; got: %d", result);
aschiffler@6921
   364
  }
aschiffler@6921
   365
aschiffler@6921
   366
  return TEST_COMPLETED;
aschiffler@6921
   367
}
aschiffler@6921
   368
aschiffler@6921
   369
/**
aschiffler@6921
   370
 * @brief Tests negative call to SDL_GetNumDisplayModes function
aschiffler@6921
   371
 */
aschiffler@6921
   372
int
aschiffler@6921
   373
video_getNumDisplayModesNegative(void *arg)
aschiffler@6921
   374
{
aschiffler@6921
   375
  int result;
aschiffler@6921
   376
  int displayNum;
aschiffler@6921
   377
  int displayIndex;
aschiffler@6921
   378
aschiffler@6921
   379
  /* Get number of displays */
aschiffler@6921
   380
  displayNum = SDL_GetNumVideoDisplays();
aschiffler@6921
   381
  SDLTest_AssertPass("Call to SDL_GetNumVideoDisplays");
aschiffler@6921
   382
aschiffler@6921
   383
  /* Invalid boundary values */
aschiffler@6921
   384
  displayIndex =  SDLTest_RandomSint32BoundaryValue(0, displayNum, SDL_FALSE);
aschiffler@6921
   385
  result = SDL_GetNumDisplayModes(displayIndex);
aschiffler@6921
   386
  SDLTest_AssertPass("Call to SDL_GetNumDisplayModes(%d=out-of-bounds/boundary)", displayIndex);
aschiffler@6921
   387
  SDLTest_AssertCheck(result < 0, "Validate returned value from function; expected: <0; got: %d", result);  
aschiffler@6921
   388
  
aschiffler@6921
   389
  /* Large (out-of-bounds) display index */
aschiffler@6921
   390
  displayIndex = SDLTest_RandomIntegerInRange(-2000, -1000);
aschiffler@6921
   391
  result = SDL_GetNumDisplayModes(displayIndex);
aschiffler@6921
   392
  SDLTest_AssertPass("Call to SDL_GetNumDisplayModes(%d=out-of-bounds/large negative)", displayIndex);
aschiffler@6921
   393
  SDLTest_AssertCheck(result < 0, "Validate returned value from function; expected: <0; got: %d", result);  
aschiffler@6921
   394
aschiffler@6921
   395
  displayIndex = SDLTest_RandomIntegerInRange(1000, 2000);
aschiffler@6921
   396
  result = SDL_GetNumDisplayModes(displayIndex);
aschiffler@6921
   397
  SDLTest_AssertPass("Call to SDL_GetNumDisplayModes(%d=out-of-bounds/large positive)", displayIndex);
aschiffler@6921
   398
  SDLTest_AssertCheck(result < 0, "Validate returned value from function; expected: <0; got: %d", result);  
aschiffler@6921
   399
aschiffler@6921
   400
  return TEST_COMPLETED;
aschiffler@6921
   401
}
aschiffler@6921
   402
aschiffler@6921
   403
/**
aschiffler@6921
   404
 * @brief Tests the functionality of the SDL_GetClosestDisplayMode function against current resolution
aschiffler@6921
   405
 */
aschiffler@6921
   406
int
aschiffler@6921
   407
video_getClosestDisplayModeCurrentResolution(void *arg)
aschiffler@6921
   408
{
aschiffler@6921
   409
  int result;
aschiffler@6921
   410
  SDL_DisplayMode current; 
aschiffler@6921
   411
  SDL_DisplayMode target; 
aschiffler@6921
   412
  SDL_DisplayMode closest;
aschiffler@6921
   413
  SDL_DisplayMode* dResult;
aschiffler@6921
   414
  int displayNum;
aschiffler@6921
   415
  int i;
aschiffler@6921
   416
  int variation;
aschiffler@6921
   417
aschiffler@6921
   418
  /* Get number of displays */
aschiffler@6921
   419
  displayNum = SDL_GetNumVideoDisplays();
aschiffler@6921
   420
  SDLTest_AssertPass("Call to SDL_GetNumVideoDisplays");
aschiffler@6921
   421
aschiffler@6921
   422
  /* Make calls for each display */  
aschiffler@6921
   423
  for (i=0; i<displayNum; i++) {
aschiffler@6921
   424
    SDLTest_Log("Testing against display: %d", i);
aschiffler@6921
   425
  
aschiffler@6921
   426
    /* Get first display mode to get a sane resolution; this should always work */
aschiffler@6921
   427
    result = SDL_GetDisplayMode(i, 0, &current);
aschiffler@6921
   428
    SDLTest_AssertPass("Call to SDL_GetDisplayMode");
aschiffler@6921
   429
    SDLTest_AssertCheck(result == 0, "Verify return value, expected: 0, got: %d", result);
aschiffler@6921
   430
    if (result != 0) {
aschiffler@6921
   431
      return TEST_ABORTED;
aschiffler@6921
   432
    }
aschiffler@6921
   433
       
aschiffler@6921
   434
    /* Set the desired resolution equals to current resolution */
aschiffler@6921
   435
    target.w = current.w;
aschiffler@6921
   436
    target.h = current.h;    
aschiffler@6921
   437
    for (variation = 0; variation < 8; variation ++) {
aschiffler@6921
   438
      /* Vary constraints on other query parameters */
aschiffler@6921
   439
      target.format = (variation & 1) ? current.format : 0;
aschiffler@6921
   440
      target.refresh_rate = (variation & 2) ? current.refresh_rate : 0;
aschiffler@6921
   441
      target.driverdata = (variation & 4) ? current.driverdata : 0;
aschiffler@6921
   442
          
aschiffler@6921
   443
      /* Make call */
aschiffler@6921
   444
      dResult = SDL_GetClosestDisplayMode(i, &target, &closest);
aschiffler@6921
   445
      SDLTest_AssertPass("Call to SDL_GetClosestDisplayMode(target=current/variation%d)", variation);
aschiffler@6921
   446
      SDLTest_AssertCheck(dResult != NULL, "Verify returned value is not NULL");
aschiffler@6921
   447
    
aschiffler@6921
   448
      /* Check that one gets the current resolution back again */
aschiffler@6921
   449
      SDLTest_AssertCheck(closest.w == current.w, "Verify returned width matches current width; expected: %d, got: %d", current.w, closest.w);
aschiffler@6921
   450
      SDLTest_AssertCheck(closest.h == current.h, "Verify returned height matches current height; expected: %d, got: %d", current.h, closest.h);
aschiffler@6921
   451
      SDLTest_AssertCheck(closest.w == dResult->w, "Verify return value matches assigned value; expected: %d, got: %d", closest.w, dResult->w);
aschiffler@6921
   452
      SDLTest_AssertCheck(closest.h == dResult->h, "Verify return value matches assigned value; expected: %d, got: %d", closest.h, dResult->h);
aschiffler@6921
   453
    }
aschiffler@6921
   454
  }
aschiffler@6921
   455
aschiffler@6921
   456
  return TEST_COMPLETED;
aschiffler@6921
   457
}
aschiffler@6921
   458
aschiffler@6921
   459
/**
aschiffler@6921
   460
 * @brief Tests the functionality of the SDL_GetClosestDisplayMode function against random resolution
aschiffler@6921
   461
 */
aschiffler@6921
   462
int
aschiffler@6921
   463
video_getClosestDisplayModeRandomResolution(void *arg)
aschiffler@6921
   464
{
aschiffler@6921
   465
  SDL_DisplayMode target; 
aschiffler@6921
   466
  SDL_DisplayMode closest;
aschiffler@6921
   467
  SDL_DisplayMode* dResult;
aschiffler@6921
   468
  int displayNum;
aschiffler@6921
   469
  int i;
aschiffler@6921
   470
  int variation;
aschiffler@6921
   471
aschiffler@6921
   472
  /* Get number of displays */
aschiffler@6921
   473
  displayNum = SDL_GetNumVideoDisplays();
aschiffler@6921
   474
  SDLTest_AssertPass("Call to SDL_GetNumVideoDisplays");
aschiffler@6921
   475
aschiffler@6921
   476
  /* Make calls for each display */  
aschiffler@6921
   477
  for (i=0; i<displayNum; i++) {
aschiffler@6921
   478
    SDLTest_Log("Testing against display: %d", i);
aschiffler@6921
   479
         
aschiffler@6921
   480
    for (variation = 0; variation < 16; variation ++) {
aschiffler@6921
   481
    
aschiffler@6921
   482
      /* Set random constraints */
aschiffler@6921
   483
      target.w = (variation & 1) ? SDLTest_RandomIntegerInRange(1, 4096) : 0;
aschiffler@6921
   484
      target.h = (variation & 2) ? SDLTest_RandomIntegerInRange(1, 4096) : 0;    
aschiffler@6921
   485
      target.format = (variation & 4) ? SDLTest_RandomIntegerInRange(1, 10) : 0;
aschiffler@6921
   486
      target.refresh_rate = (variation & 8) ? SDLTest_RandomIntegerInRange(25, 120) : 0;
aschiffler@6921
   487
      target.driverdata = 0;
aschiffler@6921
   488
          
aschiffler@6921
   489
      /* Make call; may or may not find anything, so don't validate any further */
aschiffler@6921
   490
      dResult = SDL_GetClosestDisplayMode(i, &target, &closest);
aschiffler@6921
   491
      SDLTest_AssertPass("Call to SDL_GetClosestDisplayMode(target=random/variation%d)", variation);      
aschiffler@6921
   492
    }
aschiffler@6921
   493
  }
aschiffler@6921
   494
aschiffler@6921
   495
  return TEST_COMPLETED;
aschiffler@6921
   496
}
aschiffler@6921
   497
aschiffler@6921
   498
/**
aschiffler@6921
   499
 * @brief Tests call to SDL_GetWindowBrightness
aschiffler@6936
   500
 *
aschiffler@6936
   501
* @sa http://wiki.libsdl.org/moin.fcg/SDL_GetWindowBrightness
aschiffler@6921
   502
 */
aschiffler@6921
   503
int
aschiffler@6921
   504
video_getWindowBrightness(void *arg)
aschiffler@6921
   505
{
aschiffler@6921
   506
  SDL_Window* window;
aschiffler@6921
   507
  const char* title = "video_getWindowBrightness Test Window";
aschiffler@6921
   508
  float result;
aschiffler@6921
   509
aschiffler@6921
   510
  /* Call against new test window */ 
aschiffler@6921
   511
  window = _createVideoSuiteTestWindow(title);
aschiffler@6921
   512
  if (window != NULL) {
aschiffler@6921
   513
      result = SDL_GetWindowBrightness(window);
aschiffler@6921
   514
      SDLTest_AssertPass("Call to SDL_GetWindowBrightness");
aschiffler@6921
   515
      SDLTest_AssertCheck(result >= 0.0 && result <= 1.0, "Validate range of result value; expected: [0.0, 1.0], got: %f", result);
aschiffler@6921
   516
  }
aschiffler@6921
   517
aschiffler@6921
   518
  /* Clean up */    
aschiffler@6921
   519
  _destroyVideoSuiteTestWindow(window);
aschiffler@6921
   520
  
aschiffler@6891
   521
  return TEST_COMPLETED;
aschiffler@6891
   522
}
aschiffler@6891
   523
aschiffler@6936
   524
/**
aschiffler@6936
   525
 * @brief Tests call to SDL_GetWindowBrightness with invalid input
aschiffler@6936
   526
 *
aschiffler@6936
   527
* @sa http://wiki.libsdl.org/moin.fcg/SDL_GetWindowBrightness
aschiffler@6936
   528
 */
aschiffler@6936
   529
int
aschiffler@6936
   530
video_getWindowBrightnessNegative(void *arg)
aschiffler@6936
   531
{
aschiffler@6936
   532
  const char *invalidWindowError = "Invalid window";
aschiffler@6936
   533
  char *lastError;
aschiffler@6936
   534
  const char* title = "video_getWindowBrightnessNegative Test Window";
aschiffler@6936
   535
  float result;
aschiffler@6936
   536
aschiffler@6936
   537
  /* Call against invalid window */ 
aschiffler@6936
   538
  result = SDL_GetWindowBrightness(NULL);
aschiffler@6936
   539
  SDLTest_AssertPass("Call to SDL_GetWindowBrightness(window=NULL)");
aschiffler@6936
   540
  SDLTest_AssertCheck(result == 1.0, "Validate result value; expected: 1.0, got: %f", result);
aschiffler@6936
   541
  lastError = (char *)SDL_GetError();
aschiffler@6936
   542
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6936
   543
  SDLTest_AssertCheck(lastError != NULL, "Verify error message is not NULL");
aschiffler@6936
   544
  if (lastError != NULL) {
aschiffler@6936
   545
      SDLTest_AssertCheck(SDL_strcmp(lastError, invalidWindowError) == 0,
aschiffler@6936
   546
         "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6936
   547
         invalidWindowError,
aschiffler@6936
   548
         lastError);
aschiffler@6936
   549
  }
aschiffler@6936
   550
aschiffler@6936
   551
  return TEST_COMPLETED;
aschiffler@6936
   552
}
aschiffler@6936
   553
aschiffler@6936
   554
/**
aschiffler@6936
   555
 * @brief Tests call to SDL_GetWindowDisplayMode
aschiffler@6936
   556
 *
aschiffler@6936
   557
 * @sa http://wiki.libsdl.org/moin.fcg/SDL_GetWindowDisplayMode
aschiffler@6936
   558
 */
aschiffler@6936
   559
int
aschiffler@6936
   560
video_getWindowDisplayMode(void *arg)
aschiffler@6936
   561
{
aschiffler@6936
   562
  SDL_Window* window;
aschiffler@6936
   563
  const char* title = "video_getWindowDisplayMode Test Window";
aschiffler@6936
   564
  SDL_DisplayMode mode;
aschiffler@6936
   565
  int result;
aschiffler@6936
   566
aschiffler@6936
   567
  /* Invalidate part of the mode content so we can check values later */
aschiffler@6936
   568
  mode.w = -1;
aschiffler@6936
   569
  mode.h = -1;
aschiffler@6936
   570
  mode.refresh_rate = -1;
aschiffler@6936
   571
aschiffler@6936
   572
  /* Call against new test window */ 
aschiffler@6936
   573
  window = _createVideoSuiteTestWindow(title);
aschiffler@6936
   574
  if (window != NULL) {
aschiffler@6936
   575
      result = SDL_GetWindowDisplayMode(window, &mode);
aschiffler@6936
   576
      SDLTest_AssertPass("Call to SDL_GetWindowDisplayMode");
aschiffler@6936
   577
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   578
      SDLTest_AssertCheck(mode.w > 0, "Validate mode.w content; expected: >0, got: %d", mode.w);
aschiffler@6936
   579
      SDLTest_AssertCheck(mode.h > 0, "Validate mode.h content; expected: >0, got: %d", mode.h);
aschiffler@6936
   580
      SDLTest_AssertCheck(mode.refresh_rate > 0, "Validate mode.refresh_rate content; expected: >0, got: %d", mode.refresh_rate);
aschiffler@6936
   581
  }
aschiffler@6936
   582
aschiffler@6936
   583
  /* Clean up */    
aschiffler@6936
   584
  _destroyVideoSuiteTestWindow(window);
aschiffler@6936
   585
  
aschiffler@6936
   586
  return TEST_COMPLETED;
aschiffler@6936
   587
}
aschiffler@6936
   588
aschiffler@6936
   589
/**
aschiffler@6936
   590
 * @brief Tests call to SDL_GetWindowDisplayMode with invalid input
aschiffler@6936
   591
 *
aschiffler@6936
   592
 * @sa http://wiki.libsdl.org/moin.fcg/SDL_GetWindowDisplayMode
aschiffler@6936
   593
 */
aschiffler@6936
   594
int
aschiffler@6936
   595
video_getWindowDisplayModeNegative(void *arg)
aschiffler@6936
   596
{
aschiffler@6936
   597
  const char *expectedError = "Parameter 'mode' is invalid";
aschiffler@6936
   598
  const char *invalidWindowError = "Invalid window";
aschiffler@6936
   599
  char *lastError;
aschiffler@6936
   600
  SDL_Window* window;
aschiffler@6936
   601
  const char* title = "video_getWindowDisplayModeNegative Test Window";
aschiffler@6936
   602
  SDL_DisplayMode mode;
aschiffler@6936
   603
  int result;
aschiffler@6936
   604
aschiffler@6936
   605
  /* Call against new test window */ 
aschiffler@6936
   606
  window = _createVideoSuiteTestWindow(title);
aschiffler@6936
   607
  if (window != NULL) {
aschiffler@6936
   608
      result = SDL_GetWindowDisplayMode(window, NULL);
aschiffler@6936
   609
      SDLTest_AssertPass("Call to SDL_GetWindowDisplayMode(...,mode=NULL)");
aschiffler@6936
   610
      SDLTest_AssertCheck(result == -1, "Validate result value; expected: -1, got: %d", result);
aschiffler@6936
   611
      lastError = (char *)SDL_GetError();
aschiffler@6936
   612
      SDLTest_AssertPass("SDL_GetError()");
aschiffler@6936
   613
      SDLTest_AssertCheck(lastError != NULL, "Verify error message is not NULL");
aschiffler@6936
   614
      if (lastError != NULL) {
aschiffler@6936
   615
      	SDLTest_AssertCheck(SDL_strcmp(lastError, expectedError) == 0,
aschiffler@6936
   616
             "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6936
   617
             expectedError,
aschiffler@6936
   618
             lastError);
aschiffler@6936
   619
      }
aschiffler@6936
   620
  }
aschiffler@6936
   621
aschiffler@6936
   622
  /* Clean up */    
aschiffler@6936
   623
  _destroyVideoSuiteTestWindow(window);
aschiffler@6936
   624
  
aschiffler@6936
   625
  /* Call against invalid window */
aschiffler@6936
   626
  result = SDL_GetWindowDisplayMode(NULL, &mode);
aschiffler@6936
   627
  SDLTest_AssertPass("Call to SDL_GetWindowDisplayMode(window=NULL,...)");
aschiffler@6936
   628
  SDLTest_AssertCheck(result == -1, "Validate result value; expected: -1, got: %d", result);
aschiffler@6936
   629
  lastError = (char *)SDL_GetError();
aschiffler@6936
   630
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6936
   631
  SDLTest_AssertCheck(lastError != NULL, "Verify error message is not NULL");
aschiffler@6936
   632
  if (lastError != NULL) {
aschiffler@6936
   633
      SDLTest_AssertCheck(SDL_strcmp(lastError, invalidWindowError) == 0,
aschiffler@6936
   634
         "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6936
   635
         invalidWindowError,
aschiffler@6936
   636
         lastError);
aschiffler@6936
   637
  }
aschiffler@6936
   638
  
aschiffler@6936
   639
  return TEST_COMPLETED;
aschiffler@6936
   640
}
aschiffler@6936
   641
aschiffler@6936
   642
/**
aschiffler@6936
   643
 * @brief Tests call to SDL_GetWindowGammaRamp
aschiffler@6936
   644
 *
aschiffler@6936
   645
 * @sa http://wiki.libsdl.org/moin.fcg/SDL_GetWindowGammaRamp
aschiffler@6936
   646
 */
aschiffler@6936
   647
int
aschiffler@6936
   648
video_getWindowGammaRamp(void *arg)
aschiffler@6936
   649
{
aschiffler@6936
   650
  SDL_Window* window;
aschiffler@6936
   651
  const char* title = "video_getWindowGammaRamp Test Window";
aschiffler@6936
   652
  Uint16 red[256];
aschiffler@6936
   653
  Uint16 green[256];
aschiffler@6936
   654
  Uint16 blue[256];
aschiffler@6936
   655
  int result;
aschiffler@6936
   656
aschiffler@6936
   657
  /* Call against new test window */ 
aschiffler@6936
   658
  window = _createVideoSuiteTestWindow(title);
aschiffler@6936
   659
  if (window != NULL) {
aschiffler@6936
   660
      /* Retrieve no channel */
aschiffler@6936
   661
      result = SDL_GetWindowGammaRamp(window, NULL, NULL, NULL);
aschiffler@6936
   662
      SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(all NULL)");
aschiffler@6936
   663
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   664
aschiffler@6936
   665
      /* Retrieve single channel */
aschiffler@6936
   666
      result = SDL_GetWindowGammaRamp(window, red, NULL, NULL);
aschiffler@6936
   667
      SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(r)");
aschiffler@6936
   668
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   669
aschiffler@6936
   670
      result = SDL_GetWindowGammaRamp(window, NULL, green, NULL);
aschiffler@6936
   671
      SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(g)");
aschiffler@6936
   672
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   673
aschiffler@6936
   674
      result = SDL_GetWindowGammaRamp(window, NULL, NULL, blue);
aschiffler@6936
   675
      SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(b)");
aschiffler@6936
   676
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   677
aschiffler@6936
   678
      /* Retrieve two channels */
aschiffler@6936
   679
      result = SDL_GetWindowGammaRamp(window, red, green, NULL);
aschiffler@6936
   680
      SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(r, g)");
aschiffler@6936
   681
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   682
aschiffler@6936
   683
      result = SDL_GetWindowGammaRamp(window, NULL, green, blue);
aschiffler@6936
   684
      SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(g,b)");
aschiffler@6936
   685
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   686
aschiffler@6936
   687
      result = SDL_GetWindowGammaRamp(window, red, NULL, blue);
aschiffler@6936
   688
      SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(r,b)");
aschiffler@6936
   689
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   690
aschiffler@6936
   691
      /* Retrieve all channels */
aschiffler@6936
   692
      result = SDL_GetWindowGammaRamp(window, red, green, blue);
aschiffler@6936
   693
      SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(r,g,b)");
aschiffler@6936
   694
      SDLTest_AssertCheck(result == 0, "Validate result value; expected: 0, got: %d", result);
aschiffler@6936
   695
  }
aschiffler@6936
   696
aschiffler@6936
   697
  /* Clean up */    
aschiffler@6936
   698
  _destroyVideoSuiteTestWindow(window);
aschiffler@6936
   699
  
aschiffler@6936
   700
  return TEST_COMPLETED;
aschiffler@6936
   701
}
aschiffler@6936
   702
aschiffler@6936
   703
/**
aschiffler@6936
   704
 * @brief Tests call to SDL_GetWindowGammaRamp with invalid input
aschiffler@6936
   705
 *
aschiffler@6936
   706
* @sa http://wiki.libsdl.org/moin.fcg/SDL_GetWindowGammaRamp
aschiffler@6936
   707
 */
aschiffler@6936
   708
int
aschiffler@6936
   709
video_getWindowGammaRampNegative(void *arg)
aschiffler@6936
   710
{
aschiffler@6936
   711
  const char *invalidWindowError = "Invalid window";
aschiffler@6936
   712
  char *lastError;
aschiffler@6936
   713
  const char* title = "video_getWindowGammaRampNegative Test Window";
aschiffler@6936
   714
  Uint16 red[256];
aschiffler@6936
   715
  Uint16 green[256];
aschiffler@6936
   716
  Uint16 blue[256];
aschiffler@6936
   717
  int result;
aschiffler@6936
   718
aschiffler@6936
   719
  /* Call against invalid window */ 
aschiffler@6936
   720
  result = SDL_GetWindowGammaRamp(NULL, red, green, blue);
aschiffler@6936
   721
  SDLTest_AssertPass("Call to SDL_GetWindowGammaRamp(window=NULL,r,g,b)");
aschiffler@6936
   722
  SDLTest_AssertCheck(result == -1, "Validate result value; expected: -1, got: %f", result);
aschiffler@6936
   723
  lastError = (char *)SDL_GetError();
aschiffler@6936
   724
  SDLTest_AssertPass("SDL_GetError()");
aschiffler@6936
   725
  SDLTest_AssertCheck(lastError != NULL, "Verify error message is not NULL");
aschiffler@6936
   726
  if (lastError != NULL) {
aschiffler@6936
   727
      SDLTest_AssertCheck(SDL_strcmp(lastError, invalidWindowError) == 0,
aschiffler@6936
   728
         "SDL_GetError(): expected message '%s', was message: '%s'",
aschiffler@6936
   729
         invalidWindowError,
aschiffler@6936
   730
         lastError);
aschiffler@6936
   731
  }
aschiffler@6936
   732
aschiffler@6936
   733
  return TEST_COMPLETED;
aschiffler@6936
   734
}
aschiffler@6936
   735
aschiffler@6800
   736
/* ================= Test References ================== */
aschiffler@6800
   737
aschiffler@6800
   738
/* Video test cases */
aschiffler@6800
   739
static const SDLTest_TestCaseReference videoTest1 =
aschiffler@6800
   740
		{ (SDLTest_TestCaseFp)video_enableDisableScreensaver, "video_enableDisableScreensaver",  "Enable and disable screenaver while checking state", TEST_ENABLED };
aschiffler@6800
   741
aschiffler@6891
   742
static const SDLTest_TestCaseReference videoTest2 =
aschiffler@6891
   743
		{ (SDLTest_TestCaseFp)video_createWindowVariousPositions, "video_createWindowVariousPositions",  "Create windows at various locations", TEST_ENABLED };
aschiffler@6891
   744
aschiffler@6891
   745
static const SDLTest_TestCaseReference videoTest3 =
aschiffler@6891
   746
		{ (SDLTest_TestCaseFp)video_createWindowVariousSizes, "video_createWindowVariousSizes",  "Create windows with various sizes", TEST_ENABLED };
aschiffler@6891
   747
aschiffler@6891
   748
static const SDLTest_TestCaseReference videoTest4 =
aschiffler@6891
   749
		{ (SDLTest_TestCaseFp)video_createWindowVariousFlags, "video_createWindowVariousFlags",  "Create windows using various flags", TEST_ENABLED };
aschiffler@6891
   750
aschiffler@6891
   751
static const SDLTest_TestCaseReference videoTest5 =
aschiffler@6921
   752
		{ (SDLTest_TestCaseFp)video_getWindowFlags, "video_getWindowFlags",  "Get window flags set during SDL_CreateWindow", TEST_ENABLED };
aschiffler@6921
   753
aschiffler@6921
   754
static const SDLTest_TestCaseReference videoTest6 =
aschiffler@6921
   755
		{ (SDLTest_TestCaseFp)video_getNumDisplayModes, "video_getNumDisplayModes",  "Use SDL_GetNumDisplayModes function to get number of display modes", TEST_ENABLED };
aschiffler@6921
   756
aschiffler@6921
   757
static const SDLTest_TestCaseReference videoTest7 =
aschiffler@6921
   758
		{ (SDLTest_TestCaseFp)video_getNumDisplayModesNegative, "video_getNumDisplayModesNegative",  "Negative tests for SDL_GetNumDisplayModes", TEST_ENABLED };
aschiffler@6921
   759
aschiffler@6921
   760
static const SDLTest_TestCaseReference videoTest8 =
aschiffler@6921
   761
		{ (SDLTest_TestCaseFp)video_getClosestDisplayModeCurrentResolution, "video_getClosestDisplayModeCurrentResolution",  "Use function to get closes match to requested display mode for current resolution", TEST_ENABLED };
aschiffler@6921
   762
aschiffler@6921
   763
static const SDLTest_TestCaseReference videoTest9 =
aschiffler@6921
   764
		{ (SDLTest_TestCaseFp)video_getClosestDisplayModeRandomResolution, "video_getClosestDisplayModeRandomResolution",  "Use function to get closes match to requested display mode for random resolution", TEST_ENABLED };
aschiffler@6921
   765
aschiffler@6921
   766
static const SDLTest_TestCaseReference videoTest10 =
aschiffler@6921
   767
		{ (SDLTest_TestCaseFp)video_getWindowBrightness, "video_getWindowBrightness",  "Get window brightness", TEST_ENABLED };
aschiffler@6891
   768
aschiffler@6936
   769
static const SDLTest_TestCaseReference videoTest11 =
aschiffler@6936
   770
		{ (SDLTest_TestCaseFp)video_getWindowBrightnessNegative, "video_getWindowBrightnessNegative",  "Get window brightness with invalid input", TEST_ENABLED };
aschiffler@6936
   771
aschiffler@6936
   772
static const SDLTest_TestCaseReference videoTest12 =
aschiffler@6936
   773
		{ (SDLTest_TestCaseFp)video_getWindowDisplayMode, "video_getWindowDisplayMode",  "Get window display mode", TEST_ENABLED };
aschiffler@6936
   774
aschiffler@6936
   775
static const SDLTest_TestCaseReference videoTest13 =
aschiffler@6936
   776
		{ (SDLTest_TestCaseFp)video_getWindowDisplayModeNegative, "video_getWindowDisplayModeNegative",  "Get window display mode with invalid input", TEST_ENABLED };
aschiffler@6936
   777
aschiffler@6936
   778
static const SDLTest_TestCaseReference videoTest14 =
aschiffler@6936
   779
		{ (SDLTest_TestCaseFp)video_getWindowGammaRamp, "video_getWindowGammaRamp",  "Get window gamma ramp", TEST_ENABLED };
aschiffler@6936
   780
aschiffler@6936
   781
static const SDLTest_TestCaseReference videoTest15 =
aschiffler@6936
   782
		{ (SDLTest_TestCaseFp)video_getWindowGammaRampNegative, "video_getWindowGammaRampNegative",  "Get window gamma ramp against invalid input", TEST_ENABLED };
aschiffler@6936
   783
aschiffler@6800
   784
/* Sequence of Video test cases */
aschiffler@6800
   785
static const SDLTest_TestCaseReference *videoTests[] =  {
aschiffler@6921
   786
	&videoTest1, &videoTest2, &videoTest3, &videoTest4, &videoTest5, &videoTest6, 
aschiffler@6936
   787
	&videoTest7, &videoTest8, &videoTest9, &videoTest10, &videoTest11, &videoTest12, 
aschiffler@6936
   788
	&videoTest13, &videoTest14, &videoTest15, NULL
aschiffler@6800
   789
};
aschiffler@6800
   790
aschiffler@6800
   791
/* Video test suite (global) */
aschiffler@6800
   792
SDLTest_TestSuiteReference videoTestSuite = {
aschiffler@6800
   793
	"Video",
aschiffler@6800
   794
	NULL,
aschiffler@6800
   795
	videoTests,
aschiffler@6800
   796
	NULL
aschiffler@6800
   797
};