Mercurial > sdl-ios-xcode
annotate test/testloadso.c @ 4451:033c455bbe99
Refactored automated rwops tests so read and write directories can be more easily customized.
The refactored tests were written in recognition that Mac and iPhone current working directories are usually not going to work. Resource directories are in bundles and write directories are restricted to certain areas. In theory, other platforms may have this problem too, hence the refactoring.
Also updated the Xcode iPhone project to use 3.2 as the Base SDK, but 3.1 as the Deployment SDK (for iPhone/iPad compatibility.)
author | Eric Wing <ewing . public |-at-| gmail . com> |
---|---|
date | Sun, 09 May 2010 06:58:30 -0700 |
parents | 9de326b3099c |
children |
rev | line source |
---|---|
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
1 |
3338 | 2 /* Test program to test dynamic loading with the loadso subsystem. |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
3 */ |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
4 |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
5 #include <stdio.h> |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
6 #include <stdlib.h> |
3338 | 7 #include <string.h> |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
8 |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
9 #include "SDL.h" |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
10 |
2120 | 11 typedef int (*fntype) (const char *); |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
12 |
2120 | 13 int |
14 main(int argc, char *argv[]) | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
15 { |
2120 | 16 int retval = 0; |
17 int hello = 0; | |
18 const char *libname = NULL; | |
19 const char *symname = NULL; | |
20 void *lib = NULL; | |
21 fntype fn = NULL; | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
22 |
2120 | 23 if (argc != 3) { |
24 const char *app = argv[0]; | |
25 fprintf(stderr, "USAGE: %s <library> <functionname>\n", app); | |
26 fprintf(stderr, " %s --hello <lib with puts()>\n", app); | |
27 return 1; | |
28 } | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
29 |
2120 | 30 /* Initialize SDL */ |
31 if (SDL_Init(0) < 0) { | |
32 fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); | |
33 return 2; | |
34 } | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
35 |
2120 | 36 if (strcmp(argv[1], "--hello") == 0) { |
37 hello = 1; | |
38 libname = argv[2]; | |
39 symname = "puts"; | |
40 } else { | |
41 libname = argv[1]; | |
42 symname = argv[2]; | |
43 } | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
44 |
2120 | 45 lib = SDL_LoadObject(libname); |
46 if (lib == NULL) { | |
47 fprintf(stderr, "SDL_LoadObject('%s') failed: %s\n", | |
48 libname, SDL_GetError()); | |
49 retval = 3; | |
50 } else { | |
51 fn = (fntype) SDL_LoadFunction(lib, symname); | |
52 if (fn == NULL) { | |
53 fprintf(stderr, "SDL_LoadFunction('%s') failed: %s\n", | |
54 symname, SDL_GetError()); | |
55 retval = 4; | |
56 } else { | |
57 printf("Found %s in %s at %p\n", symname, libname, fn); | |
58 if (hello) { | |
59 printf("Calling function...\n"); | |
60 fflush(stdout); | |
61 fn(" HELLO, WORLD!\n"); | |
62 printf("...apparently, we survived. :)\n"); | |
63 printf("Unloading library...\n"); | |
64 fflush(stdout); | |
65 } | |
66 } | |
67 SDL_UnloadObject(lib); | |
68 } | |
69 SDL_Quit(); | |
70 return (0); | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
71 } |