Mercurial > sdl-ios-xcode
annotate test/README @ 4447:947201caa46e
Added automated test to Xcode project plus needed changes to SDL_RWFromFile to be OS X bundle aware.
The Mac OS X project has a new target called testsdl which builds the automated test. I looked at using Xcode's native unit test support, but the impedance mismatch between the existing automated test structure and Apple's was more than I could handle.
As such, the testsdl application is a full blown proper OS X application, which means it is a self-contained .app bundle. This immediately revealed some problems from the automated test. The largest problem was the assumption about the current working directory and where to find resources. (I suspect Windows may have a similar problem depending on circumstance.) To open resources, the test was looking in directories relative to the SDL source directory, but this will not work well with self-contained .app bundles and Xcode which can place its built applications almost anywhere. And for real-world situations, this is pretty useless anyway.
So I modified SDL_RWFromFile to do special things on OS X. First, it will look for a file in the .app bundle. If not found, it will fallback and just call fopen as it used to do.
I also had to modify the automated test itself because it had a contrieved test which called fopen directly to do read from an existing FILE pointer. In addition, there was a write test. Since a .app bundle is likely going to be read-only, I added a special case for OS X to write to NSTemporaryDirectory.
I expect these changes should work for both Mac and iPhone OS (which includes iPad).
I will update the iPhone Xcode project next.
Finally, FYI, the X11 automated test seems to be failing. Below is my output.
Pending breakpoint 4 - "-[NSException raise]" resolved
Platform : All tests successful (2)
SDL_RWops : All tests successful (5)
Rect : All tests successful (1)
SDL_Surface : All tests successful (6)
Rendering with cocoa driver : All tests successful (3)
Assert Failed!
Blit output not the same.
Test Case 'Renderer x11'
Test Suite 'Rendering with x11 driver'
Last SDL error ''
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetSurfaceBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetWindowBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetSurfaceBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetWindowBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetSurfaceBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetWindowBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetSurfaceBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetWindowBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetSurfaceBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetWindowBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetSurfaceBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetWindowBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSGetSurfaceBounds
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Sat May 8 00:30:34 iMacAL.local testsdl[71586] <Error>: kCGErrorIllegalArgument: CGSBindSurface: Invalid window 0xa150
Rendering with x11 driver : Failed 1 out of 4 testcases!
Rendering with dummy driver : All tests successful (3)
SDL_Audio : All tests successful (1)
Tests run with SDL 1.3.0 revision 1095906
System is running Mac OS X and is little endian
author | Eric Wing <ewing . public |-at-| gmail . com> |
---|---|
date | Sat, 08 May 2010 00:54:22 -0700 |
parents | 3e3724fb829e |
children | cf7976fd3258 |
rev | line source |
---|---|
0 | 1 |
2 These are test programs for the SDL library: | |
3 | |
2082
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
4 checkkeys Watch the key events to check the keyboard |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
5 graywin Display a gray gradient and center mouse on spacebar |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
6 loopwave Audio test -- loop playing a WAV file |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
7 testalpha Display an alpha faded icon -- paint with mouse |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
8 testaudioinfo Lists audio device capabilities |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
9 testbitmap Test displaying 1-bit bitmaps |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
10 testblitspeed Tests performance of SDL's blitters and converters. |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
11 testcdrom Sample audio CD control program |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
12 testcursor Tests custom mouse cursor |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
13 testdyngl Tests dynamically loading OpenGL library |
0 | 14 testerror Tests multi-threaded error handling |
2082
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
15 testfile Tests RWops layer |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
16 testgamma Tests video device gamma ramp |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
17 testgl A very simple example of using OpenGL with SDL |
3070 | 18 testgl2 An even simpler example using the SDL 1.3 API |
2082
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
19 testhread Hacked up test of multi-threading |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
20 testiconv Tests international string conversion |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
21 testjoystick List joysticks and watch joystick events |
0 | 22 testkeys List the available keyboard keys |
2082
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
23 testloadso Tests the loadable library layer |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
24 testlock Hacked up test of multi-threading and locking |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
25 testmultiaudio Tests using several audio devices |
886
05c551e5bc64
Date: Sat, 24 Apr 2004 15:13:32 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
26 testoverlay Tests the software/hardware overlay functionality. |
05c551e5bc64
Date: Sat, 24 Apr 2004 15:13:32 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
27 testoverlay2 Tests the overlay flickering/scaling during playback. |
2082
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
28 testpalette Tests palette color cycling |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
29 testplatform Tests types, endianness and cpu capabilities |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
30 testsem Tests SDL's semaphore implementation |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
31 testsprite Example of fast sprite movement on the screen |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
32 testsprite2 Improved version of testsprite |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
33 testtimer Test the timer facilities |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
34 testver Check the version and dynamic loading and endianness |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
35 testvidinfo Show the pixel format of the display and perfom the benchmark |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
36 testwin Display a BMP image at various depths |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
37 testwm Test window manager -- title, icon, events |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
38 testwm2 Improved version of testwm |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
39 threadwin Test multi-threaded event handling |
e6cd882e3ac0
Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents:
1039
diff
changeset
|
40 torturethread Simple test for thread creation/destruction |