Mercurial > sdl-ios-xcode
comparison test/automated/rwops/rwops.c @ 3737:9689eaa6d2e3 gsoc2009_unit_tests
Made rwops tests a bit more complete.
author | Edgar Simo <bobbens@gmail.com> |
---|---|
date | Sun, 02 Aug 2009 09:37:14 +0000 |
parents | d8772964e402 |
children | e451d5d288e9 |
comparison
equal
deleted
inserted
replaced
3736:78f544eded7b | 3737:9689eaa6d2e3 |
---|---|
9 | 9 |
10 #include "SDL.h" | 10 #include "SDL.h" |
11 #include "SDL_at.h" | 11 #include "SDL_at.h" |
12 | 12 |
13 | 13 |
14 #define RWOPS_READ "rwops/read" | |
15 #define RWOPS_WRITE "rwops/write" | |
16 | |
14 static const char hello_world[] = "Hello World!"; | 17 static const char hello_world[] = "Hello World!"; |
18 | |
19 | |
20 /** | |
21 * @brief Makes sure parameters work properly. | |
22 */ | |
23 static void rwops_testParam (void) | |
24 { | |
25 SDL_RWops *rwops; | |
26 | |
27 /* Begin testcase. */ | |
28 SDL_ATbegin( "RWops Parameters" ); | |
29 | |
30 /* These should all fail. */ | |
31 rwops = SDL_RWFromFile(NULL, NULL); | |
32 if (SDL_ATassert( "SDL_RWFromFile(NULL, NULL) worked", rwops == NULL )) | |
33 return; | |
34 rwops = SDL_RWFromFile(NULL, "ab+"); | |
35 if (SDL_ATassert( "SDL_RWFromFile(NULL, \"ab+\") worked", rwops == NULL )) | |
36 return; | |
37 rwops = SDL_RWFromFile(NULL, "sldfkjsldkfj"); | |
38 if (SDL_ATassert( "SDL_RWFromFile(NULL, \"sldfkjsldkfj\") worked", rwops == NULL )) | |
39 return; | |
40 rwops = SDL_RWFromFile("something", ""); | |
41 if (SDL_ATassert( "SDL_RWFromFile(\"something\", \"\") worked", rwops == NULL )) | |
42 return; | |
43 rwops = SDL_RWFromFile("something", NULL); | |
44 if (SDL_ATassert( "SDL_RWFromFile(\"something\", NULL) worked", rwops == NULL )) | |
45 return; | |
46 | |
47 | |
48 /* End testcase. */ | |
49 SDL_ATend(); | |
50 } | |
15 | 51 |
16 | 52 |
17 /** | 53 /** |
18 * @brief Does a generic rwops test. | 54 * @brief Does a generic rwops test. |
19 * | 55 * |
25 static int rwops_testGeneric( SDL_RWops *rw, int write ) | 61 static int rwops_testGeneric( SDL_RWops *rw, int write ) |
26 { | 62 { |
27 char buf[sizeof(hello_world)]; | 63 char buf[sizeof(hello_world)]; |
28 int i; | 64 int i; |
29 | 65 |
66 /* Set to start. */ | |
67 i = SDL_RWseek( rw, 0, RW_SEEK_SET ); | |
68 if (SDL_ATvassert( i == 0, | |
69 "Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d", | |
70 i, 0 )) | |
71 return 1; | |
72 | |
73 /* Test write. */ | |
74 i = SDL_RWwrite( rw, hello_world, sizeof(hello_world)-1, 1 ); | |
30 if (write) { | 75 if (write) { |
31 /* Test write. */ | 76 if (SDL_ATassert( "Writing with SDL_RWwrite (failed to write)", i == 1 )) |
32 i = SDL_RWwrite( rw, hello_world, sizeof(hello_world)-1, 1 ); | |
33 if (SDL_ATassert( "Writing with SDL_RWwrite", i == 1 )) | |
34 return 1; | 77 return 1; |
35 } | 78 } |
79 else { | |
80 if (SDL_ATassert( "Writing with SDL_RWwrite (wrote when shouldn't have)", i <= 0 )) | |
81 return 1; | |
82 } | |
36 | 83 |
37 /* Test seek. */ | 84 /* Test seek. */ |
38 i = SDL_RWseek( rw, 6, RW_SEEK_SET ); | 85 i = SDL_RWseek( rw, 6, RW_SEEK_SET ); |
39 if (SDL_ATassert( "Seeking with SDL_RWseek", i == 6 )) | 86 if (SDL_ATvassert( i == 6, |
40 return 1; | 87 "Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d", |
88 i, 0 )) | |
89 return 1; | |
41 | 90 |
42 /* Test seek. */ | 91 /* Test seek. */ |
43 i = SDL_RWseek( rw, 0, RW_SEEK_SET ); | 92 i = SDL_RWseek( rw, 0, RW_SEEK_SET ); |
44 if (SDL_ATassert( "Seeking with SDL_RWseek", i == 0 )) | 93 if (SDL_ATvassert( i == 0, |
94 "Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d", | |
95 i, 0 )) | |
45 return 1; | 96 return 1; |
46 | 97 |
47 /* Test read. */ | 98 /* Test read. */ |
48 i = SDL_RWread( rw, buf, 1, sizeof(hello_world)-1 ); | 99 i = SDL_RWread( rw, buf, 1, sizeof(hello_world)-1 ); |
49 if (i != sizeof(hello_world)-1) | |
50 printf("%s\n", SDL_GetError()); | |
51 if (SDL_ATassert( "Reading with SDL_RWread", i == sizeof(hello_world)-1 )) | 100 if (SDL_ATassert( "Reading with SDL_RWread", i == sizeof(hello_world)-1 )) |
52 return 1; | 101 return 1; |
53 if (SDL_ATassert( "Memory read does not match memory written", | 102 if (SDL_ATassert( "Memory read does not match memory written", |
54 memcmp( buf, hello_world, sizeof(hello_world)-1 ) == 0 )) | 103 memcmp( buf, hello_world, sizeof(hello_world)-1 ) == 0 )) |
55 return 1; | 104 return 1; |
56 | 105 |
106 /* More seek tests. */ | |
107 i = SDL_RWseek( rw, -4, RW_SEEK_CUR ); | |
108 if (SDL_ATvassert( i == sizeof(hello_world)-5, | |
109 "Seeking with SDL_RWseek (RW_SEEK_CUR): got %d, expected %d", | |
110 i, sizeof(hello_world)-5 )) | |
111 return 1; | |
112 i = SDL_RWseek( rw, -1, RW_SEEK_END ); | |
113 if (SDL_ATvassert( i == sizeof(hello_world)-2, | |
114 "Seeking with SDL_RWseek (RW_SEEK_END): got %d, expected %d", | |
115 i, sizeof(hello_world)-2 )) | |
116 return 1; | |
117 | |
57 return 0; | 118 return 0; |
58 } | 119 } |
59 | 120 |
60 | 121 |
61 /** | 122 /** |
68 | 129 |
69 /* Begin testcase. */ | 130 /* Begin testcase. */ |
70 SDL_ATbegin( "SDL_RWFromMem" ); | 131 SDL_ATbegin( "SDL_RWFromMem" ); |
71 | 132 |
72 /* Open. */ | 133 /* Open. */ |
73 rw = SDL_RWFromMem( mem, sizeof(mem) ); | 134 rw = SDL_RWFromMem( mem, sizeof(hello_world)-1 ); |
74 if (SDL_ATassert( "Opening memory with SDL_RWFromMem", rw != NULL )) | 135 if (SDL_ATassert( "Opening memory with SDL_RWFromMem", rw != NULL )) |
75 return; | 136 return; |
76 | 137 |
77 /* Run generic tests. */ | 138 /* Run generic tests. */ |
78 if (rwops_testGeneric( rw, 1 )) | 139 if (rwops_testGeneric( rw, 1 )) |
96 | 157 |
97 /* Begin testcase. */ | 158 /* Begin testcase. */ |
98 SDL_ATbegin( "SDL_RWFromConstMem" ); | 159 SDL_ATbegin( "SDL_RWFromConstMem" ); |
99 | 160 |
100 /* Open. */ | 161 /* Open. */ |
101 rw = SDL_RWFromConstMem( const_mem, sizeof(const_mem) ); | 162 rw = SDL_RWFromConstMem( const_mem, sizeof(const_mem)-1 ); |
102 if (SDL_ATassert( "Opening memory with SDL_RWFromConstMem", rw != NULL )) | 163 if (SDL_ATassert( "Opening memory with SDL_RWFromConstMem", rw != NULL )) |
103 return; | 164 return; |
104 | 165 |
105 /* Run generic tests. */ | 166 /* Run generic tests. */ |
106 if (rwops_testGeneric( rw, 0 )) | 167 if (rwops_testGeneric( rw, 0 )) |
118 * @brief Tests opening from memory. | 179 * @brief Tests opening from memory. |
119 */ | 180 */ |
120 static void rwops_testFile (void) | 181 static void rwops_testFile (void) |
121 { | 182 { |
122 SDL_RWops *rw; | 183 SDL_RWops *rw; |
123 int i; | |
124 | 184 |
125 /* Begin testcase. */ | 185 /* Begin testcase. */ |
126 SDL_ATbegin( "SDL_RWFromFile" ); | 186 SDL_ATbegin( "SDL_RWFromFile" ); |
127 | 187 |
128 /* Open. */ | 188 /* Read test. */ |
129 rw = SDL_RWFromFile( "rwops/read", "r" ); | 189 rw = SDL_RWFromFile( RWOPS_READ, "r" ); |
130 if (SDL_ATassert( "Opening memory with SDL_RWFromFile", rw != NULL )) | 190 if (SDL_ATassert( "Opening memory with SDL_RWFromFile '"RWOPS_READ"'", rw != NULL )) |
131 return; | 191 return; |
132 | |
133 /* Test writing. */ | |
134 i = SDL_RWwrite( rw, hello_world, sizeof(hello_world), 1 ); | |
135 if (SDL_ATassert( "Writing with SDL_RWwrite", i == 0 )) | |
136 return; | |
137 | |
138 /* Run generic tests. */ | |
139 if (rwops_testGeneric( rw, 0 )) | 192 if (rwops_testGeneric( rw, 0 )) |
140 return; | 193 return; |
141 | 194 SDL_FreeRW( rw ); |
142 /* Close. */ | 195 |
196 /* Write test. */ | |
197 rw = SDL_RWFromFile( RWOPS_WRITE, "w+" ); | |
198 if (SDL_ATassert( "Opening memory with SDL_RWFromFile '"RWOPS_WRITE"'", rw != NULL )) | |
199 return; | |
200 if (rwops_testGeneric( rw, 1 )) | |
201 return; | |
143 SDL_FreeRW( rw ); | 202 SDL_FreeRW( rw ); |
144 | 203 |
145 /* End testcase. */ | 204 /* End testcase. */ |
146 SDL_ATend(); | 205 SDL_ATend(); |
147 } | 206 } |
157 SDL_RWops *rw; | 216 SDL_RWops *rw; |
158 | 217 |
159 /* Begin testcase. */ | 218 /* Begin testcase. */ |
160 SDL_ATbegin( "SDL_RWFromFP" ); | 219 SDL_ATbegin( "SDL_RWFromFP" ); |
161 | 220 |
162 /* Open. */ | 221 /* Run read tests. */ |
163 fp = fopen( "rwops/write", "w+" ); | 222 fp = fopen( RWOPS_READ, "r" ); |
164 if (fp == NULL) { | 223 if (SDL_ATassert( "Failed to open file '"RWOPS_READ"'", fp != NULL)) |
165 SDL_ATprint("Failed to open file rwops/write"); | 224 return; |
166 SDL_ATend(); | |
167 return; | |
168 } | |
169 rw = SDL_RWFromFP( fp, 1 ); | 225 rw = SDL_RWFromFP( fp, 1 ); |
170 if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL )) | 226 if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL )) |
171 return; | 227 return; |
172 | 228 if (rwops_testGeneric( rw, 0 )) |
173 /* Run generic tests. */ | 229 return; |
230 SDL_FreeRW( rw ); | |
231 | |
232 /* Run write tests. */ | |
233 fp = fopen( RWOPS_WRITE, "w+" ); | |
234 if (SDL_ATassert( "Failed to open file '"RWOPS_WRITE"'", fp != NULL)) | |
235 return; | |
236 rw = SDL_RWFromFP( fp, 1 ); | |
237 if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL )) | |
238 return; | |
174 if (rwops_testGeneric( rw, 1 )) | 239 if (rwops_testGeneric( rw, 1 )) |
175 return; | 240 return; |
176 | |
177 /* Close. */ | |
178 SDL_FreeRW( rw ); | 241 SDL_FreeRW( rw ); |
179 | 242 |
180 /* End testcase. */ | 243 /* End testcase. */ |
181 SDL_ATend(); | 244 SDL_ATend(); |
182 #endif /* HAVE_STDIO_H */ | 245 #endif /* HAVE_STDIO_H */ |
191 (void) argc; | 254 (void) argc; |
192 (void) argv; | 255 (void) argv; |
193 | 256 |
194 SDL_ATinit( "SDL_RWops" ); | 257 SDL_ATinit( "SDL_RWops" ); |
195 | 258 |
259 rwops_testParam(); | |
196 rwops_testMem(); | 260 rwops_testMem(); |
197 rwops_testConstMem(); | 261 rwops_testConstMem(); |
198 rwops_testFile(); | 262 rwops_testFile(); |
199 rwops_testFP(); | 263 rwops_testFP(); |
200 | 264 |