Changes in tests/malloc.cfa [116a2ea:10d609a]
- File:
-
- 1 edited
-
tests/malloc.cfa (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/malloc.cfa
r116a2ea r10d609a 1 #include < fstream.hfa> // sout1 #include <assert.h> 2 2 #include <malloc.h> // malloc_usable_size 3 3 #include <stdint.h> // uintptr_t 4 #include <stdlib.h> // posix_memalign 5 #include <fstream.hfa> 4 6 #include <stdlib.hfa> // access C malloc, realloc 5 7 #include <unistd.h> // getpagesize … … 8 10 int tests_failed; 9 11 size_t tAlign = 32; 10 struct S1 { int d ata; } __attribute__((aligned(32)));12 struct S1 { int d1; } __attribute__((aligned(32))); 11 13 typedef struct S1 T1; 12 14 13 void test_base( void * ip, size_t size, size_t align ) {15 void test_base( void * ip, size_t size, size_t align) { 14 16 tests_total += 1; 15 bool passed = (malloc_size( ip ) == size) && (malloc_usable_size( ip ) >= size) && (malloc_alignment( ip) == align) && ((uintptr_t)ip % align == 0);16 if ( ! passed) {17 sout | "base failed test" | tests_total | "ip" | ip | "size" | size | "align" | align | "but got size" | malloc_size( ip ) | "usable" | malloc_usable_size( ip ) | "align" | malloc_alignment( ip);17 bool passed = (malloc_size(ip) == size) && (malloc_usable_size(ip) >= size) && (malloc_alignment(ip) == align) && ((uintptr_t)ip % align == 0); 18 if (!passed) { 19 printf("failed test %2d: %4lu %4lu but got %4lu ( %3lu ) %4lu\n", tests_total, size, align, malloc_size(ip), malloc_usable_size(ip), malloc_alignment(ip)); 18 20 tests_failed += 1; 19 } // if21 } 20 22 } 21 23 22 void test_fill( void * ip_, size_t start, size_t end, char fill ) {24 void test_fill( void * ip_, size_t start, size_t end, char fill) { 23 25 tests_total += 1; 24 26 bool passed = true; 25 27 char * ip = (char *) ip_; 26 for ( i; start ~ end) passed = passed && (ip[i] == fill);27 if ( ! passed) {28 sout | "fill1 failed test" | tests_total | "fill C";28 for (i; start ~ end) passed = passed && (ip[i] == fill); 29 if (!passed) { 30 printf("failed test %2d: fill\n", tests_total); 29 31 tests_failed += 1; 30 } // if32 } 31 33 } 32 34 33 void test_use( void * ip_ ) {35 void test_use( void * ip_) { 34 36 tests_total += 1; 35 37 bool passed = true; 36 38 int * ip = (int *) ip_; 37 size_t size = malloc_size( ip);38 for ( i; 0 ~ size ~ sizeof(int)) ip[i/sizeof(int)] = 0xdeadbeef;39 for ( i; 0 ~ size ~ sizeof(int)) passed = passed && (ip[i /sizeof(int)] == 0xdeadbeef);40 size_t usize = malloc_usable_size( ip);41 for ( i; size ~ usize ~ sizeof(int)) ip[i /sizeof(int)] = -1;42 for ( i; size ~ usize ~ sizeof(int)) passed = passed && (ip[i /sizeof(int)] == -1);43 if ( ! passed) {44 sout | "failed test" | tests_total | "use";39 size_t size = malloc_size(ip); 40 for (i; 0 ~ size ~ sizeof(int)) ip[i/sizeof(int)] = 0xdeadbeef; 41 for (i; 0 ~ size ~ sizeof(int)) passed = passed && (ip[i/sizeof(int)] == 0xdeadbeef); 42 size_t usize = malloc_usable_size(ip); 43 for (i; size ~ usize ~ sizeof(int)) ip[i/sizeof(int)] = -1; 44 for (i; size ~ usize ~ sizeof(int)) passed = passed && (ip[i/sizeof(int)] == -1); 45 if (!passed) { 46 printf("failed test %2d: use\n", tests_total); 45 47 tests_failed += 1; 46 48 } … … 48 50 49 51 int main( void ) { 50 enum { dim = 8, align = 64, libAlign = libAlign() };51 52 size_t elemSize = sizeof(int); 53 size_t dim = 8; 52 54 size_t size = dim * elemSize; 55 size_t align = 64; 56 const size_t libAlign = libAlign(); 53 57 char fill = '\xde'; 54 58 int * ip; 55 59 T1 * tp; 56 60 57 // testing C malloc61 // testing C malloc 58 62 59 63 tests_total = 0; 60 64 tests_failed = 0; 61 65 62 ip = (int *) malloc( size );63 test_base( ip, size, libAlign);64 test_use( ip);65 free( ip);66 67 ip = (int *) malloc( 0 );68 test_base( ip, 0, libAlign);69 test_use( ip);70 free( ip);71 72 ip = (int *) aalloc( dim, elemSize );73 test_base( ip, size, libAlign);74 test_use( ip);75 free( ip);76 77 ip = (int *) aalloc( 0, elemSize );78 test_base( ip, 0, libAlign);79 test_use( ip);80 free( ip);81 82 ip = (int *) aalloc( dim, 0 );83 test_base( ip, 0, libAlign);84 test_use( ip);85 free( ip);86 87 ip = (int *) aalloc( 0, 0 );88 test_base( ip, 0, libAlign);89 test_use( ip);90 free( ip);91 92 ip = (int *) calloc( dim, elemSize );93 test_base( ip, size, libAlign);94 test_fill( ip, 0, size, '\0');95 test_use( ip);96 free( ip);97 98 ip = (int *) calloc( 0, elemSize );99 test_base( ip, 0, libAlign);100 test_fill( ip, 0, 0, '\0');101 test_use( ip);102 free( ip);103 104 ip = (int *) calloc( dim, 0 );105 test_base( ip, 0, libAlign);106 test_fill( ip, 0, 0, '\0');107 test_use( ip);108 free( ip);109 110 ip = (int *) malloc( size );111 ip = (int *) resize(ip, size / 4 );112 test_base( ip, size / 4, libAlign);113 test_use( ip);114 free( ip);115 116 ip = (int *) malloc( size );117 ip = (int *) resize(ip, size * 4 );118 test_base( ip, size * 4, libAlign);119 test_use( ip);120 free( ip);121 122 ip = (int *) malloc( size );123 ip = (int *) resize(ip, 0 );124 test_base( ip, 0, libAlign);125 test_use( ip);126 free( ip);127 128 ip = (int *) resize( NULL, size );129 test_base( ip, size, libAlign);130 test_use( ip);131 free( ip);132 133 ip = (int *) resize( 0p, size );134 test_base( ip, size, libAlign);135 test_use( ip);136 free( ip);137 138 ip = (int *) calloc( dim, elemSize );139 ip = (int *) realloc(ip, size / 4 );140 test_base( ip, size / 4, libAlign);141 test_fill( ip, 0, size / 4, '\0');142 test_use( ip);143 free( ip);144 145 ip = (int *) calloc( dim, elemSize );146 ip = (int *) realloc(ip, size * 4 );147 test_base( ip, size * 4, libAlign);148 test_fill( ip, 0, size * 4, '\0');149 test_use( ip);150 free( ip);151 152 ip = (int *) calloc( dim, elemSize );153 ip = (int *) realloc(ip, 0 );154 test_base( ip, 0, libAlign);155 test_use( ip);156 free( ip);157 158 ip = (int *) realloc( NULL, size );159 test_base( ip, size , libAlign);160 test_use( ip);161 free( ip);162 163 ip = (int *) realloc( 0p, size );164 test_base( ip, size, libAlign);165 test_use( ip);166 free( ip);167 168 ip = (int *) memalign( align, size );169 test_base( ip, size, align);170 test_use( ip);171 free( ip);172 173 ip = (int *) memalign( align, 0 );174 test_base( ip, 0, libAlign);175 test_use( ip);176 free( ip);177 178 ip = (int *) amemalign( align, dim, elemSize );179 test_base( ip, size, align);180 test_use( ip);181 free( ip);182 183 ip = (int *) amemalign( align, 0, elemSize );184 test_base( ip, 0, libAlign);185 test_use( ip);186 free( ip);187 188 ip = (int *) amemalign( align, dim, 0 );189 test_base( ip, 0, libAlign);190 test_use( ip);191 free( ip);192 193 ip = (int *) cmemalign( align, dim, elemSize );194 test_base( ip, size, align);195 test_fill( ip, 0, size, '\0');196 test_use( ip);197 free( ip);198 199 ip = (int *) cmemalign( align, 0, elemSize );200 test_base( ip, 0, libAlign);201 test_use( ip);202 free( ip);203 204 ip = (int *) cmemalign( align, dim, 0 );205 test_base( ip, 0, libAlign);206 test_use( ip);207 free( ip);208 209 ip = (int *) aligned_alloc( align, size );210 test_base( ip, size, align);211 test_use( ip);212 free( ip);213 214 ip = (int *) aligned_alloc( align, 0 );215 test_base( ip, 0, libAlign);216 test_use( ip);217 free( ip);218 219 posix_memalign( (void **) &ip, align, size );220 test_base( ip, size, align);221 test_use( ip);222 free( ip);223 224 posix_memalign( (void **) &ip, align, 0 );225 test_base( ip, 0, libAlign);226 test_use( ip);227 free( ip);228 229 ip = (int *) valloc( size );230 test_base( ip, size, getpagesize());231 test_use( ip);232 free( ip);233 234 ip = (int *) valloc( 0 );235 test_base( ip, 0, libAlign);236 test_use( ip);237 free( ip);238 239 ip = (int *) pvalloc( getpagesize() * 3 / 2 );240 test_base( ip, getpagesize() * 2, getpagesize());241 test_use( ip);242 free( ip);243 244 ip = (int *) pvalloc( 0 );245 test_base( ip, 0, libAlign);246 test_use( ip);247 free( ip);248 249 ip = (int *) malloc( size );250 ip = (int *) resize(ip, libAlign, size / 2 );251 test_base( ip, size / 2, libAlign);252 test_use( ip);253 free( ip);254 255 ip = (int *) aligned_alloc( align, size );256 ip = (int *) resize(ip, align, size / 2 );257 test_base( ip, size / 2, align);258 test_use( ip);259 free( ip);260 261 ip = (int *) malloc( size );262 ip = (int *) resize(ip, align, size / 4 );263 test_base( ip, size / 4, align);264 test_use( ip);265 free( ip);266 267 ip = (int *) malloc( size );268 ip = (int *) resize(ip, align, 0 );269 test_base( ip, 0, libAlign);270 test_use( ip);271 free( ip);272 273 ip = (int *) resize( NULL, align, size );274 test_base( ip, size, align);275 test_use( ip);276 free( ip);277 278 ip = (int *) resize( 0p, align, size );279 test_base( ip, size, align);280 test_use( ip);281 free( ip);282 283 ip = (int *) calloc( dim, elemSize );284 ip = (int *) realloc(ip, libAlign, size / 2 );285 test_base( ip, size / 2, libAlign);286 test_fill( ip, 0, size / 2, '\0');287 test_use( ip);288 free( ip);289 290 ip = (int *) cmemalign( align, dim, elemSize );291 ip = (int *) realloc(ip, align, size / 2 );292 test_base( ip, size / 2, align);293 test_fill( ip, 0, size / 2, '\0');294 test_use( ip);295 free( ip);296 297 ip = (int *) calloc( dim, elemSize );298 ip = (int *) realloc(ip, align, size / 4 );299 test_base( ip, size / 4, align);300 test_fill( ip, 0, size / 4, '\0');301 test_use( ip);302 free( ip);303 304 ip = (int *) calloc( dim, elemSize );305 ip = (int *) realloc( ip, libAlign, size * 4 );306 test_base( ip, size * 4, libAlign);307 test_fill( ip, 0, size * 4, '\0');308 test_use( ip);309 free( ip);310 311 ip = (int *) calloc( dim, elemSize );312 ip = (int *) realloc(ip, align, 0 );313 test_base( ip, 0, libAlign);314 test_use( ip);315 free( ip);316 317 free( 0p ); // sanity check318 free( NULL ); // sanity check319 320 if (tests_failed == 0) sout | "PASSED C malloc tests" | nl | nl;321 else sout | "failed C malloc tests" | tests_failed | tests_total | nl | nl;66 ip = (int *) (void *) malloc( size ); 67 test_base(ip, size, libAlign); 68 test_use(ip); 69 free(ip); 70 71 ip = (int *) (void *) malloc( 0 ); 72 test_base(ip, 0, libAlign); 73 test_use(ip); 74 free(ip); 75 76 ip = (int *) (void *) aalloc( dim, elemSize ); 77 test_base(ip, size, libAlign); 78 test_use(ip); 79 free(ip); 80 81 ip = (int *) (void *) aalloc( 0, elemSize ); 82 test_base(ip, 0, libAlign); 83 test_use(ip); 84 free(ip); 85 86 ip = (int *) (void *) aalloc( dim, 0 ); 87 test_base(ip, 0, libAlign); 88 test_use(ip); 89 free(ip); 90 91 ip = (int *) (void *) aalloc( 0, 0 ); 92 test_base(ip, 0, libAlign); 93 test_use(ip); 94 free(ip); 95 96 ip = (int *) (void *) calloc( dim, elemSize ); 97 test_base(ip, size, libAlign); 98 test_fill(ip, 0, size, '\0'); 99 test_use(ip); 100 free(ip); 101 102 ip = (int *) (void *) calloc( 0, elemSize ); 103 test_base(ip, 0, libAlign); 104 test_fill(ip, 0, 0, '\0'); 105 test_use(ip); 106 free(ip); 107 108 ip = (int *) (void *) calloc( dim, 0 ); 109 test_base(ip, 0, libAlign); 110 test_fill(ip, 0, 0, '\0'); 111 test_use(ip); 112 free(ip); 113 114 ip = (int *) (void *) malloc( size ); 115 ip = (int *) (void *) resize( (void *) ip, size / 4 ); 116 test_base(ip, size / 4, libAlign); 117 test_use(ip); 118 free(ip); 119 120 ip = (int *) (void *) malloc( size ); 121 ip = (int *) (void *) resize( (void *) ip, size * 4 ); 122 test_base(ip, size * 4, libAlign); 123 test_use(ip); 124 free(ip); 125 126 ip = (int *) (void *) malloc( size ); 127 ip = (int *) (void *) resize( (void *) ip, 0 ); 128 test_base(ip, 0, libAlign); 129 test_use(ip); 130 free(ip); 131 132 ip = (int *) (void *) resize( NULL, size ); 133 test_base(ip, size, libAlign); 134 test_use(ip); 135 free(ip); 136 137 ip = (int *) (void *) resize( 0p, size ); 138 test_base(ip, size, libAlign); 139 test_use(ip); 140 free(ip); 141 142 ip = (int *) (void *) calloc( dim, elemSize ); 143 ip = (int *) (void *) realloc( (void *) ip, size / 4 ); 144 test_base(ip, size / 4, libAlign); 145 test_fill(ip, 0, size / 4, '\0'); 146 test_use(ip); 147 free(ip); 148 149 ip = (int *) (void *) calloc( dim, elemSize ); 150 ip = (int *) (void *) realloc( (void *) ip, size * 4 ); 151 test_base(ip, size * 4, libAlign); 152 test_fill(ip, 0, size * 4, '\0'); 153 test_use(ip); 154 free(ip); 155 156 ip = (int *) (void *) calloc( dim, elemSize ); 157 ip = (int *) (void *) realloc( (void *) ip, 0 ); 158 test_base(ip, 0, libAlign); 159 test_use(ip); 160 free(ip); 161 162 ip = (int *) (void *) realloc( NULL, size ); 163 test_base(ip, size , libAlign); 164 test_use(ip); 165 free(ip); 166 167 ip = (int *) (void *) realloc( 0p, size ); 168 test_base(ip, size, libAlign); 169 test_use(ip); 170 free(ip); 171 172 ip = (int *) (void *) memalign( align, size ); 173 test_base(ip, size, align); 174 test_use(ip); 175 free(ip); 176 177 ip = (int *) (void *) memalign( align, 0 ); 178 test_base(ip, 0, libAlign); 179 test_use(ip); 180 free(ip); 181 182 ip = (int *) (void *) amemalign( align, dim, elemSize ); 183 test_base(ip, size, align); 184 test_use(ip); 185 free(ip); 186 187 ip = (int *) (void *) amemalign( align, 0, elemSize ); 188 test_base(ip, 0, libAlign); 189 test_use(ip); 190 free(ip); 191 192 ip = (int *) (void *) amemalign( align, dim, 0 ); 193 test_base(ip, 0, libAlign); 194 test_use(ip); 195 free(ip); 196 197 ip = (int *) (void *) cmemalign( align, dim, elemSize ); 198 test_base(ip, size, align); 199 test_fill(ip, 0, size, '\0'); 200 test_use(ip); 201 free(ip); 202 203 ip = (int *) (void *) cmemalign( align, 0, elemSize ); 204 test_base(ip, 0, libAlign); 205 test_use(ip); 206 free(ip); 207 208 ip = (int *) (void *) cmemalign( align, dim, 0 ); 209 test_base(ip, 0, libAlign); 210 test_use(ip); 211 free(ip); 212 213 ip = (int *) (void *) aligned_alloc( align, size ); 214 test_base(ip, size, align); 215 test_use(ip); 216 free(ip); 217 218 ip = (int *) (void *) aligned_alloc( align, 0 ); 219 test_base(ip, 0, libAlign); 220 test_use(ip); 221 free(ip); 222 223 (int) posix_memalign( (void **) &ip, align, size ); 224 test_base(ip, size, align); 225 test_use(ip); 226 free(ip); 227 228 (int) posix_memalign( (void **) &ip, align, 0 ); 229 test_base(ip, 0, libAlign); 230 test_use(ip); 231 free(ip); 232 233 ip = (int *) (void *) valloc( size ); 234 test_base(ip, size, getpagesize()); 235 test_use(ip); 236 free(ip); 237 238 ip = (int *) (void *) valloc( 0 ); 239 test_base(ip, 0, libAlign); 240 test_use(ip); 241 free(ip); 242 243 ip = (int *) (void *) pvalloc( getpagesize() * 3 / 2 ); 244 test_base(ip, getpagesize() * 2, getpagesize()); 245 test_use(ip); 246 free(ip); 247 248 ip = (int *) (void *) pvalloc( 0 ); 249 test_base(ip, 0, libAlign); 250 test_use(ip); 251 free(ip); 252 253 ip = (int *) (void *) malloc( size ); 254 ip = (int *) (void *) resize( (void *) ip, libAlign, size / 2 ); 255 test_base(ip, size / 2, libAlign); 256 test_use(ip); 257 free(ip); 258 259 ip = (int *) (void *) aligned_alloc( align, size ); 260 ip = (int *) (void *) resize( (void *) ip, align, size / 2 ); 261 test_base(ip, size / 2, align); 262 test_use(ip); 263 free(ip); 264 265 ip = (int *) (void *) malloc( size ); 266 ip = (int *) (void *) resize( (void *) ip, align, size / 4 ); 267 test_base(ip, size / 4, align); 268 test_use(ip); 269 free(ip); 270 271 ip = (int *) (void *) malloc( size ); 272 ip = (int *) (void *) resize( (void *) ip, align, 0 ); 273 test_base(ip, 0, libAlign); 274 test_use(ip); 275 free(ip); 276 277 ip = (int *) (void *) resize( NULL, align, size ); 278 test_base(ip, size, align); 279 test_use(ip); 280 free(ip); 281 282 ip = (int *) (void *) resize( 0p, align, size ); 283 test_base(ip, size, align); 284 test_use(ip); 285 free(ip); 286 287 ip = (int *) (void *) calloc( dim, elemSize ); 288 ip = (int *) (void *) realloc( (void *) ip, libAlign, size / 2 ); 289 test_base(ip, size / 2, libAlign); 290 test_fill(ip, 0, size / 2, '\0'); 291 test_use(ip); 292 free(ip); 293 294 ip = (int *) (void *) cmemalign( align, dim, elemSize ); 295 ip = (int *) (void *) realloc( (void *) ip, align, size / 2 ); 296 test_base(ip, size / 2, align); 297 test_fill(ip, 0, size / 2, '\0'); 298 test_use(ip); 299 free(ip); 300 301 ip = (int *) (void *) calloc( dim, elemSize ); 302 ip = (int *) (void *) realloc( (void *) ip, align, size / 4 ); 303 test_base(ip, size / 4, align); 304 test_fill(ip, 0, size / 4, '\0'); 305 test_use(ip); 306 free(ip); 307 308 ip = (int *) (void *) calloc( dim, elemSize ); 309 ip = (int *) (void *) realloc( (void *) ip, 0, size * 4 ); 310 test_base(ip, size * 4, libAlign); 311 test_fill(ip, 0, size * 4, '\0'); 312 test_use(ip); 313 free(ip); 314 315 ip = (int *) (void *) calloc( dim, elemSize ); 316 ip = (int *) (void *) realloc( (void *) ip, align, 0 ); 317 test_base(ip, 0, libAlign); 318 test_use(ip); 319 free(ip); 320 321 free( 0p ); // sanity check 322 free( NULL ); // sanity check 323 324 if (tests_failed == 0) printf("PASSED C malloc tests\n\n"); 325 else printf("failed C malloc tests : %d/%d\n\n", tests_failed, tests_total); 322 326 323 327 // testing CFA malloc … … 327 331 328 332 ip = malloc(); 329 test_base( ip, elemSize, libAlign);330 test_use( ip);331 free( ip);333 test_base(ip, elemSize, libAlign); 334 test_use(ip); 335 free(ip); 332 336 333 337 ip = aalloc( dim ); 334 test_base( ip, size, libAlign);335 test_use( ip);336 free( ip);338 test_base(ip, size, libAlign); 339 test_use(ip); 340 free(ip); 337 341 338 342 ip = aalloc( 0 ); 339 test_base( ip, 0, libAlign);340 test_use( ip);341 free( ip);343 test_base(ip, 0, libAlign); 344 test_use(ip); 345 free(ip); 342 346 343 347 ip = calloc( dim ); 344 test_base( ip, size, libAlign);345 test_fill( ip, 0, size, '\0');346 test_use( ip);347 free( ip);348 test_base(ip, size, libAlign); 349 test_fill(ip, 0, size, '\0'); 350 test_use(ip); 351 free(ip); 348 352 349 353 ip = calloc( 0 ); 350 test_base( ip, 0, libAlign);351 test_use( ip);352 free( ip);354 test_base(ip, 0, libAlign); 355 test_use(ip); 356 free(ip); 353 357 354 358 ip = aalloc( dim ); 355 359 ip = resize( ip, size / 4 ); 356 test_base( ip, size / 4, libAlign);357 test_use( ip);358 free( ip);360 test_base(ip, size / 4, libAlign); 361 test_use(ip); 362 free(ip); 359 363 360 364 ip = aalloc( dim ); 361 365 ip = resize( ip, size * 4 ); 362 test_base( ip, size * 4, libAlign);363 test_use( ip);364 free( ip);366 test_base(ip, size * 4, libAlign); 367 test_use(ip); 368 free(ip); 365 369 366 370 ip = aalloc( dim ); 367 371 ip = resize( ip, 0 ); 368 test_base( ip, 0, libAlign);369 test_use( ip);370 free( ip);371 372 ip = resize( 0p, size );373 test_base( ip, size, libAlign);374 test_use( ip);375 free( ip);376 377 ip = resize( 0p, size );378 test_base( ip, size, libAlign);379 test_use( ip);380 free( ip);372 test_base(ip, 0, libAlign); 373 test_use(ip); 374 free(ip); 375 376 ip = resize( (int*)0p, size ); 377 test_base(ip, size, libAlign); 378 test_use(ip); 379 free(ip); 380 381 ip = resize( (int*)0p, size ); 382 test_base(ip, size, libAlign); 383 test_use(ip); 384 free(ip); 381 385 382 386 ip = calloc( dim ); 383 387 ip = realloc( ip, size / 4 ); 384 test_base( ip, size / 4, libAlign);385 test_fill( ip, 0, size / 4, '\0');386 test_use( ip);387 free( ip);388 test_base(ip, size / 4, libAlign); 389 test_fill(ip, 0, size / 4, '\0'); 390 test_use(ip); 391 free(ip); 388 392 389 393 ip = calloc( dim ); 390 394 ip = realloc( ip, size * 4 ); 391 test_base( ip, size * 4, libAlign);392 test_fill( ip, 0, size, '\0');393 test_use( ip);394 free( ip);395 test_base(ip, size * 4, libAlign); 396 test_fill(ip, 0, size, '\0'); 397 test_use(ip); 398 free(ip); 395 399 396 400 ip = calloc( dim ); 397 401 ip = realloc( ip, 0 ); 398 test_base( ip, 0, libAlign);399 test_use( ip);400 free( ip);401 402 ip = realloc( 0p, size );403 test_base( ip, size , libAlign);404 test_use( ip);405 free( ip);406 407 ip = realloc( 0p, size );408 test_base( ip, size, libAlign);409 test_use( ip);410 free( ip);402 test_base(ip, 0, libAlign); 403 test_use(ip); 404 free(ip); 405 406 ip = realloc( (int*)0p, size ); 407 test_base(ip, size , libAlign); 408 test_use(ip); 409 free(ip); 410 411 ip = realloc( (int*)0p, size ); 412 test_base(ip, size, libAlign); 413 test_use(ip); 414 free(ip); 411 415 412 416 ip = memalign( align ); 413 test_base( ip, elemSize, align);414 test_use( ip);415 free( ip);417 test_base(ip, elemSize, align); 418 test_use(ip); 419 free(ip); 416 420 417 421 ip = amemalign( align, dim ); 418 test_base( ip, size, align);419 test_use( ip);420 free( ip);422 test_base(ip, size, align); 423 test_use(ip); 424 free(ip); 421 425 422 426 ip = amemalign( align, 0 ); 423 test_base( ip, 0, libAlign);424 test_use( ip);425 free( ip);427 test_base(ip, 0, libAlign); 428 test_use(ip); 429 free(ip); 426 430 427 431 ip = cmemalign( align, dim ); 428 test_base( ip, size, align);429 test_fill( ip, 0, size, '\0');430 test_use( ip);431 free( ip);432 test_base(ip, size, align); 433 test_fill(ip, 0, size, '\0'); 434 test_use(ip); 435 free(ip); 432 436 433 437 ip = cmemalign( align, 0 ); 434 test_base( ip, 0, libAlign);435 test_use( ip);436 free( ip);438 test_base(ip, 0, libAlign); 439 test_use(ip); 440 free(ip); 437 441 438 442 ip = aligned_alloc( align ); 439 test_base( ip, elemSize, align);440 test_use( ip);441 free( ip);442 443 posix_memalign( (int **) &ip, align );444 test_base( ip, elemSize, align);445 test_use( ip);446 free( ip);443 test_base(ip, elemSize, align); 444 test_use(ip); 445 free(ip); 446 447 (int) posix_memalign( (int **) &ip, align ); 448 test_base(ip, elemSize, align); 449 test_use(ip); 450 free(ip); 447 451 448 452 ip = valloc(); 449 test_base( ip, elemSize, getpagesize());450 test_use( ip);451 free( ip);453 test_base(ip, elemSize, getpagesize()); 454 test_use(ip); 455 free(ip); 452 456 453 457 ip = pvalloc(); 454 test_base( ip, getpagesize(), getpagesize());455 test_use( ip);456 free( ip);457 458 if (tests_failed == 0) sout | "PASSED CFA malloc tests" | nl | nl;459 else sout | "failed CFA malloc tests" | tests_failed | tests_total | nl | nl;458 test_base(ip, getpagesize(), getpagesize()); 459 test_use(ip); 460 free(ip); 461 462 if (tests_failed == 0) printf("PASSED CFA malloc tests\n\n"); 463 else printf("failed CFA malloc tests : %d/%d\n\n", tests_failed, tests_total); 460 464 461 465 // testing CFA malloc with aligned struct … … 467 471 468 472 tp = malloc(); 469 test_base( tp, elemSize, tAlign);470 test_use( tp);471 free( tp);473 test_base(tp, elemSize, tAlign ); 474 test_use(tp); 475 free(tp); 472 476 473 477 tp = aalloc( dim ); 474 test_base( tp, size, tAlign);475 test_use( tp);476 free( tp);478 test_base(tp, size, tAlign ); 479 test_use(tp); 480 free(tp); 477 481 478 482 tp = aalloc( 0 ); 479 test_base( tp, 0, libAlign);480 test_use( tp);481 free( tp);483 test_base(tp, 0, libAlign); 484 test_use(tp); 485 free(tp); 482 486 483 487 tp = calloc( dim ); 484 test_base( tp, size, tAlign);485 test_fill( tp, 0, size, '\0');486 test_use( tp);487 free( tp);488 test_base(tp, size, tAlign ); 489 test_fill(tp, 0, size, '\0'); 490 test_use(tp); 491 free(tp); 488 492 489 493 tp = calloc( 0 ); 490 test_base( tp, 0, libAlign);491 test_use( tp);492 free( tp);494 test_base(tp, 0, libAlign); 495 test_use(tp); 496 free(tp); 493 497 494 498 tp = aalloc( dim ); 495 499 tp = resize( tp, size / 4 ); 496 test_base( tp, size / 4, tAlign);497 test_use( tp);498 free( tp);500 test_base(tp, size / 4, tAlign ); 501 test_use(tp); 502 free(tp); 499 503 500 504 tp = malloc(); 501 505 tp = resize( tp, size * 4 ); 502 test_base( tp, size * 4, tAlign);503 test_use( tp);504 free( tp);506 test_base(tp, size * 4, tAlign ); 507 test_use(tp); 508 free(tp); 505 509 506 510 tp = aalloc( dim ); 507 511 tp = resize( tp, 0 ); 508 test_base( tp, 0, libAlign);509 test_use( tp);510 free( tp);512 test_base(tp, 0, libAlign); 513 test_use(tp); 514 free(tp); 511 515 512 516 tp = resize( (T1*)0p, size ); 513 test_base( tp, size, tAlign);514 test_use( tp);515 free( tp);517 test_base(tp, size, tAlign ); 518 test_use(tp); 519 free(tp); 516 520 517 521 tp = resize( (T1*)0p, size ); 518 test_base( tp, size, tAlign);519 test_use( tp);520 free( tp);522 test_base(tp, size, tAlign ); 523 test_use(tp); 524 free(tp); 521 525 522 526 tp = calloc( dim ); 523 527 tp = realloc( tp, size / 4 ); 524 test_base( tp, size / 4, tAlign);525 test_fill( tp, 0, size / 4, '\0');526 test_use( tp);527 free( tp);528 test_base(tp, size / 4, tAlign ); 529 test_fill(tp, 0, size / 4, '\0'); 530 test_use(tp); 531 free(tp); 528 532 529 533 tp = calloc( dim ); 530 534 tp = realloc( tp, size * 4 ); 531 test_base( tp, size * 4, tAlign);532 test_fill( tp, 0, size, '\0');533 test_use( tp);534 free( tp);535 test_base(tp, size * 4, tAlign ); 536 test_fill(tp, 0, size, '\0'); 537 test_use(tp); 538 free(tp); 535 539 536 540 tp = calloc( dim ); 537 541 tp = realloc( tp, 0 ); 538 test_base( tp, 0, libAlign);539 test_use( tp);540 free( tp);542 test_base(tp, 0, libAlign); 543 test_use(tp); 544 free(tp); 541 545 542 546 tp = realloc( (T1*)0p, size ); 543 test_base( tp, size , tAlign);544 test_use( tp);545 free( tp);547 test_base(tp, size , tAlign ); 548 test_use(tp); 549 free(tp); 546 550 547 551 tp = realloc( (T1*)0p, size ); 548 test_base( tp, size, tAlign);549 test_use( tp);550 free( tp);552 test_base(tp, size, tAlign ); 553 test_use(tp); 554 free(tp); 551 555 552 556 tp = memalign( align ); 553 test_base( tp, elemSize, align);554 test_use( tp);555 free( tp);557 test_base(tp, elemSize, align); 558 test_use(tp); 559 free(tp); 556 560 557 561 tp = amemalign( align, dim ); 558 test_base( tp, size, align);559 test_use( tp);560 free( tp);562 test_base(tp, size, align); 563 test_use(tp); 564 free(tp); 561 565 562 566 tp = amemalign( align, 0 ); 563 test_base( tp, 0, libAlign);564 test_use( tp);565 free( tp);567 test_base(tp, 0, libAlign); 568 test_use(tp); 569 free(tp); 566 570 567 571 tp = cmemalign( align, dim ); 568 test_base( tp, size, align);569 test_fill( tp, 0, size, '\0');570 test_use( tp);571 free( tp);572 test_base(tp, size, align); 573 test_fill(tp, 0, size, '\0'); 574 test_use(tp); 575 free(tp); 572 576 573 577 tp = cmemalign( align, 0 ); 574 test_base( tp, 0, libAlign);575 test_use( tp);576 free( tp);578 test_base(tp, 0, libAlign); 579 test_use(tp); 580 free(tp); 577 581 578 582 tp = aligned_alloc( align ); 579 test_base( tp, elemSize, align);580 test_use( tp);581 free( tp);582 583 posix_memalign( (T1 **)&tp, align );584 test_base( tp, elemSize, align);585 test_use( tp);586 free( tp);583 test_base(tp, elemSize, align); 584 test_use(tp); 585 free(tp); 586 587 (int) posix_memalign( (T1 **) &tp, align ); 588 test_base(tp, elemSize, align); 589 test_use(tp); 590 free(tp); 587 591 588 592 tp = valloc(); 589 test_base( tp, elemSize, getpagesize());590 test_use( tp);591 free( tp);593 test_base(tp, elemSize, getpagesize()); 594 test_use(tp); 595 free(tp); 592 596 593 597 tp = pvalloc(); 594 test_base( tp, getpagesize(), getpagesize() ); 595 test_use( tp ); 596 free( tp ); 597 598 if ( tests_failed == 0 ) sout | "PASSED CFA malloc tests (aligned struct)" | nl | nl; 599 else sout | "failed CFA malloc tests (aligned struct)" | tests_failed | tests_total | nl | nl; 598 test_base(tp, getpagesize(), getpagesize()); 599 test_use(tp); 600 free(tp); 601 602 if (tests_failed == 0) printf("PASSED CFA malloc tests (aligned struct)\n\n"); 603 else printf("failed CFA malloc tests (aligned struct) : %d/%d\n\n", tests_failed, tests_total); 604 605 return 0; 600 606 } 601 607
Note:
See TracChangeset
for help on using the changeset viewer.