Changes in tests/alloc2.cfa [1988572:ea561c9]
- File:
-
- 1 edited
-
tests/alloc2.cfa (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/alloc2.cfa
r1988572 rea561c9 11 11 typedef struct S1 T1; 12 12 13 void test_base( void * ip, size_t size, size_t align ) {13 void test_base( void * ip, size_t size, size_t align) { 14 14 tests_total += 1; 15 // printf( "DEBUG: starting test %d\n", tests_total);16 bool passed = (malloc_size( ip ) == size) && (malloc_usable_size( ip ) >= size) && (malloc_alignment( ip) == align) && ((uintptr_t)ip % align == 0);17 if ( ! passed) {18 printf( "failed test %3d: %4zu %4zu but got %4zu ( %3zu ) %4zu\n", tests_total, size, align, malloc_size( ip ), malloc_usable_size( ip ), malloc_alignment( ip ));15 // printf("DEBUG: starting test %d\n", tests_total); 16 bool passed = (malloc_size(ip) == size) && (malloc_usable_size(ip) >= size) && (malloc_alignment(ip) == align) && ((uintptr_t)ip % align == 0); 17 if (!passed) { 18 printf("failed test %3d: %4zu %4zu but got %4zu ( %3zu ) %4zu\n", tests_total, size, align, malloc_size(ip), malloc_usable_size(ip), malloc_alignment(ip)); 19 19 tests_failed += 1; 20 } // if21 // printf( "DEBUG: done test %d\n", tests_total);20 } 21 // printf("DEBUG: done test %d\n", tests_total); 22 22 } 23 23 24 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) { 25 25 tests_total += 1; 26 // printf( "DEBUG: starting test %d\n", tests_total);26 // printf("DEBUG: starting test %d\n", tests_total); 27 27 bool passed = true; 28 28 char * ip = (char *) ip_; 29 for ( i; start ~ end) passed = passed && (ip[i] == fill);30 if ( ! passed) {31 printf( "failed test %3d: fill C\n", tests_total);29 for (i; start ~ end) passed = passed && (ip[i] == fill); 30 if (!passed) { 31 printf("failed test %3d: fill C\n", tests_total); 32 32 tests_failed += 1; 33 } // if34 // printf( "DEBUG: done test %d\n", tests_total);33 } 34 // printf("DEBUG: done test %d\n", tests_total); 35 35 } 36 36 37 void test_fill( void * ip_, size_t start, size_t end, int fill ) {37 void test_fill( void * ip_, size_t start, size_t end, int fill) { 38 38 tests_total += 1; 39 // printf( "DEBUG: starting test %d\n", tests_total);39 // printf("DEBUG: starting test %d\n", tests_total); 40 40 bool passed = true; 41 int * ip = (int *) ip_;42 for (i; start ~ end ) passed = passed && (ip[i] == fill);43 if ( ! passed) {44 printf( "failed test %3d: fill int\n", tests_total);41 int * ip = (int *) ip_; 42 for (i; start ~ end) passed = passed && (ip[i] == fill); 43 if (!passed) { 44 printf("failed test %3d: fill int\n", tests_total); 45 45 tests_failed += 1; 46 } // if47 // printf( "DEBUG: done test %d\n", tests_total);46 } 47 // printf("DEBUG: done test %d\n", tests_total); 48 48 } 49 49 50 void test_fill( void * ip_, size_t start, size_t end, int * fill ) {50 void test_fill( void * ip_, size_t start, size_t end, int * fill) { 51 51 tests_total += 1; 52 // printf( "DEBUG: starting test %d\n", tests_total);53 bool passed = memcmp((void*)((uintptr_t )ip_ + start ), (void*)fill, end ) == 0;54 if ( ! passed) {55 printf( "failed test %3d: fill int A\n", tests_total);52 // printf("DEBUG: starting test %d\n", tests_total); 53 bool passed = (memcmp((void*)((uintptr_t)ip_ + start), (void*)fill, end) == 0); 54 if (!passed) { 55 printf("failed test %3d: fill int A\n", tests_total); 56 56 tests_failed += 1; 57 } // if58 // printf( "DEBUG: done test %d\n", tests_total);57 } 58 // printf("DEBUG: done test %d\n", tests_total); 59 59 } 60 60 61 void test_fill( void * ip_, size_t start, size_t end, T1 fill ) {61 void test_fill( void * ip_, size_t start, size_t end, T1 fill) { 62 62 tests_total += 1; 63 // printf( "DEBUG: starting test %d\n", tests_total);63 // printf("DEBUG: starting test %d\n", tests_total); 64 64 bool passed = true; 65 65 T1 * ip = (T1 *) ip_; 66 for ( i; start ~ end ) passed = passed && (ip[i].data == fill.data);67 if ( ! passed) {68 printf( "failed test %3d: fill T1\n", tests_total);66 for (i; start ~ end) passed = passed && (ip[i].data == fill.data); 67 if (!passed) { 68 printf("failed test %3d: fill T1\n", tests_total); 69 69 tests_failed += 1; 70 } // if71 // printf( "DEBUG: done test %d\n", tests_total);70 } 71 // printf("DEBUG: done test %d\n", tests_total); 72 72 } 73 73 74 void test_fill( void * ip_, size_t start, size_t end, T1 * fill ) {74 void test_fill( void * ip_, size_t start, size_t end, T1 * fill) { 75 75 tests_total += 1; 76 // printf( "DEBUG: starting test %d\n", tests_total);77 bool passed = memcmp( (void*)((uintptr_t )ip_ + start ), (void*)fill, end ) == 0;78 if ( ! passed) {79 printf( "failed test %3d: fill T1 A\n", tests_total);76 // printf("DEBUG: starting test %d\n", tests_total); 77 bool passed = (memcmp((void*)((uintptr_t)ip_ + start), (void*)fill, end) == 0); 78 if (!passed) { 79 printf("failed test %3d: fill T1 A\n", tests_total); 80 80 tests_failed += 1; 81 } // if82 // printf( "DEBUG: done test %d\n", tests_total);81 } 82 // printf("DEBUG: done test %d\n", tests_total); 83 83 } 84 84 85 void test_use( int * ip, size_t dim ) {85 void test_use( int * ip, size_t dim) { 86 86 tests_total += 1; 87 // printf( "DEBUG: starting test %d\n", tests_total);87 // printf("DEBUG: starting test %d\n", tests_total); 88 88 bool passed = true; 89 for ( i; 0 ~ dim) ip[i] = 0xdeadbeef;90 for ( i; 0 ~ dim) passed = passed && (ip[i] == 0xdeadbeef);91 if ( ! passed) {92 printf( "failed test %3d: use int\n", tests_total);89 for (i; 0 ~ dim) ip[i] = 0xdeadbeef; 90 for (i; 0 ~ dim) passed = passed && (ip[i] == 0xdeadbeef); 91 if (!passed) { 92 printf("failed test %3d: use int\n", tests_total); 93 93 tests_failed += 1; 94 } // if95 // printf( "DEBUG: done test %d\n", tests_total);94 } 95 // printf("DEBUG: done test %d\n", tests_total); 96 96 } 97 97 98 void test_use( T1 * ip, size_t dim ) {98 void test_use( T1 * ip, size_t dim) { 99 99 tests_total += 1; 100 // printf( "DEBUG: starting test %d\n", tests_total);100 // printf("DEBUG: starting test %d\n", tests_total); 101 101 bool passed = true; 102 for ( i; 0 ~ dim) ip[i].data = 0xdeadbeef;103 for ( i; 0 ~ dim) passed = passed && (ip[i].data == 0xdeadbeef);104 if ( ! passed) {105 printf( "failed test %3d: use T1\n", tests_total);102 for (i; 0 ~ dim) ip[i].data = 0xdeadbeef; 103 for (i; 0 ~ dim) passed = passed && (ip[i].data == 0xdeadbeef); 104 if (!passed) { 105 printf("failed test %3d: use T1\n", tests_total); 106 106 tests_failed += 1; 107 } // if108 // printf( "DEBUG: done test %d\n", tests_total);107 } 108 // printf("DEBUG: done test %d\n", tests_total); 109 109 } 110 110 111 111 int main( void ) { 112 enum { dim = 8, align = 64, libAlign = libAlign() };113 112 size_t elemSize = sizeof(int); 113 size_t dim = 8; 114 114 size_t size = dim * elemSize; 115 116 int FillT = 9; 117 char FillC = 'a'; 118 int * FillA = calloc( dim / 4 ); 119 T1 FillT1 = { FillT }; 120 T1 * FillT1A = (T1 *)(void *) malloc( (dim / 4) * sizeof(T1) ); 121 for ( i; 0 ~ (dim / 4) ) FillT1A[i] = FillT1; 122 123 int * ip; 124 int * op; 125 double * dp; 126 T1 * t1p; 127 T1 * t1op; 115 size_t align = 64; 116 const size_t libAlign = libAlign(); 117 118 int FillT = 9; 119 char FillC = 'a'; 120 int * FillA = calloc(dim / 4); 121 T1 FillT1 = { FillT }; 122 T1 * FillT1A = (T1 *)(void *) malloc( (dim / 4) * sizeof(T1) ); 123 for (i; 0 ~ (dim / 4) ) FillT1A[i] = FillT1; 124 125 int * ip; 126 int * op; 127 double * dp; 128 T1 * t1p; 129 T1 * t1op; 128 130 129 131 // testing alloc … … 134 136 135 137 ip = alloc(); 136 test_base( ip, elemSize, libAlign);137 test_use( ip, elemSize / elemSize);138 free( ip);138 test_base(ip, elemSize, libAlign); 139 test_use(ip, elemSize / elemSize); 140 free(ip); 139 141 140 142 ip = alloc( dim ); 141 test_base( ip, size, libAlign);142 test_use( ip, size / elemSize);143 free( ip);143 test_base(ip, size, libAlign); 144 test_use(ip, size / elemSize); 145 free(ip); 144 146 145 147 ip = alloc( 0 ); 146 test_base( ip, 0, libAlign);147 free( ip);148 test_base(ip, 0, libAlign); 149 free(ip); 148 150 149 151 dp = alloc( dim ); 150 152 ip = alloc( dp`resize ); 151 test_base( ip, elemSize, libAlign);152 test_use( ip, elemSize / elemSize);153 free( ip);154 155 ip = alloc( ((double *)0p)`resize );156 test_base( ip, elemSize, libAlign);157 test_use( ip, elemSize / elemSize);158 free( ip);153 test_base(ip, elemSize, libAlign); 154 test_use(ip, elemSize / elemSize); 155 free(ip); 156 157 ip = alloc( ((double*)0p)`resize ); 158 test_base(ip, elemSize, libAlign); 159 test_use(ip, elemSize / elemSize); 160 free(ip); 159 161 160 162 dp = alloc( dim ); 161 163 ip = alloc( dim, dp`resize ); 162 test_base( ip, size, libAlign);163 test_use( ip, size / elemSize);164 free( ip);164 test_base(ip, size, libAlign); 165 test_use(ip, size / elemSize); 166 free(ip); 165 167 166 168 dp = alloc( dim ); 167 169 ip = alloc( 0, dp`resize ); 168 test_base( ip, 0, libAlign);169 free( ip);170 171 ip = alloc( dim, 0p`resize );172 test_base( ip, size, libAlign);173 test_use( ip, size / elemSize);174 free( ip);175 176 ip = alloc( 0, 0p`resize );177 test_base( ip, 0, libAlign);178 free( ip);179 180 op = alloc( dim, 0xdeadbeefN`fill );170 test_base(ip, 0, libAlign); 171 free(ip); 172 173 ip = alloc( dim, ((double*)0p)`resize ); 174 test_base(ip, size, libAlign); 175 test_use(ip, size / elemSize); 176 free(ip); 177 178 ip = alloc( 0, ((double*)0p)`resize ); 179 test_base(ip, 0, libAlign); 180 free(ip); 181 182 op = alloc( dim, ((int)0xdeadbeef)`fill ); 181 183 ip = alloc( dim, op`realloc ); 182 test_base( ip, size, libAlign);183 test_fill( ip, 0, dim, 0xdeadbeefN);184 test_use( ip, size / elemSize);185 free( ip);186 187 op = alloc( dim, 0xdeadbeefN`fill );184 test_base(ip, size, libAlign); 185 test_fill(ip, 0, dim, (int)0xdeadbeef); 186 test_use(ip, size / elemSize); 187 free(ip); 188 189 op = alloc( dim, ((int)0xdeadbeef)`fill ); 188 190 ip = alloc( 0, op`realloc ); 189 test_base( ip, 0, libAlign);190 free( ip);191 192 ip = alloc( dim, 0p`realloc );193 test_base( ip, size, libAlign);194 test_use( ip, size / elemSize);195 free( ip);196 197 ip = alloc( 0, 0p`realloc );198 test_base( ip, 0, libAlign);199 free( ip);200 201 op = alloc( dim, 0xdeadbeefN`fill );191 test_base(ip, 0, libAlign); 192 free(ip); 193 194 ip = alloc( dim, ((int*)0p)`realloc ); 195 test_base(ip, size, libAlign); 196 test_use(ip, size / elemSize); 197 free(ip); 198 199 ip = alloc( 0, ((int*)0p)`realloc ); 200 test_base(ip, 0, libAlign); 201 free(ip); 202 203 op = alloc( dim, ((int)0xdeadbeef)`fill ); 202 204 ip = alloc( dim, op`resize ); 203 test_base( ip, size, libAlign);204 test_use( ip, size / elemSize);205 free( ip);205 test_base(ip, size, libAlign); 206 test_use(ip, size / elemSize); 207 free(ip); 206 208 207 209 ip = alloc( FillC`fill ); 208 test_base( ip, elemSize, libAlign);209 test_fill( ip, 0, elemSize, FillC);210 test_use( ip, elemSize / elemSize);211 free( ip);210 test_base(ip, elemSize, libAlign); 211 test_fill(ip, 0, elemSize, FillC); 212 test_use(ip, elemSize / elemSize); 213 free(ip); 212 214 213 215 ip = alloc( FillT`fill ); 214 test_base( ip, elemSize, libAlign);215 test_fill( ip, 0, 1, FillT);216 test_use( ip, elemSize / elemSize);217 free( ip);216 test_base(ip, elemSize, libAlign); 217 test_fill(ip, 0, 1, FillT); 218 test_use(ip, elemSize / elemSize); 219 free(ip); 218 220 219 221 ip = alloc( dim, FillC`fill ); 220 test_base( ip, size, libAlign);221 test_fill( ip, 0, size, FillC);222 test_use( ip, size / elemSize);223 free( ip);222 test_base(ip, size, libAlign); 223 test_fill(ip, 0, size, FillC); 224 test_use(ip, size / elemSize); 225 free(ip); 224 226 225 227 ip = alloc( 0, FillC`fill ); 226 test_base( ip, 0, libAlign);227 free( ip);228 test_base(ip, 0, libAlign); 229 free(ip); 228 230 229 231 ip = alloc( dim, FillT`fill ); 230 test_base( ip, size, libAlign);231 test_fill( ip, 0, dim, FillT);232 test_use( ip, size / elemSize);233 free( ip);232 test_base(ip, size, libAlign); 233 test_fill(ip, 0, dim, FillT); 234 test_use(ip, size / elemSize); 235 free(ip); 234 236 235 237 ip = alloc( 0, FillT`fill ); 236 test_base( ip, 0, libAlign);237 free( ip);238 test_base(ip, 0, libAlign); 239 free(ip); 238 240 239 241 ip = alloc( dim, [FillA, dim/4]`fill ); 240 test_base( ip, size, libAlign);241 test_fill( ip, 0, size/4, FillA);242 test_use( ip, size / elemSize);243 free( ip);242 test_base(ip, size, libAlign); 243 test_fill(ip, 0, size/4, FillA); 244 test_use(ip, size / elemSize); 245 free(ip); 244 246 245 247 ip = alloc( 0, [FillA, dim/4]`fill ); 246 test_base( ip, 0, libAlign);247 free( ip);248 249 op = alloc( dim, 0xdeadbeefN`fill );248 test_base(ip, 0, libAlign); 249 free(ip); 250 251 op = alloc( dim, ((int)0xdeadbeef)`fill ); 250 252 ip = alloc( dim, op`realloc, FillC`fill ); 251 test_base( ip, size, libAlign);252 test_fill( ip, 0, dim, 0xdeadbeefN);253 test_use( ip, size / elemSize);254 free( ip);255 256 op = alloc( dim, 0xdeadbeefN`fill );253 test_base(ip, size, libAlign); 254 test_fill(ip, 0, dim, (int)0xdeadbeef); 255 test_use(ip, size / elemSize); 256 free(ip); 257 258 op = alloc( dim, ((int)0xdeadbeef)`fill ); 257 259 ip = alloc( dim / 4, op`realloc, FillC`fill ); 258 test_base( ip, size / 4, libAlign);259 test_fill( ip, 0, dim / 4, 0xdeadbeefN);260 test_use( ip, size / 4 / elemSize);261 free( ip);262 263 op = alloc( dim, 0xdeadbeefN`fill );260 test_base(ip, size / 4, libAlign); 261 test_fill(ip, 0, dim / 4, (int)0xdeadbeef); 262 test_use(ip, size / 4 / elemSize); 263 free(ip); 264 265 op = alloc( dim, ((int)0xdeadbeef)`fill ); 264 266 ip = alloc( dim * 4, op`realloc, FillC`fill ); 265 test_base( ip, size * 4, libAlign);266 test_fill( ip, 0, dim, 0xdeadbeefN);267 test_fill( ip, size, size * 4, FillC);268 test_use( ip, size * 4 / elemSize);269 free( ip);270 271 op = alloc( dim, 0xdeadbeefN`fill );267 test_base(ip, size * 4, libAlign); 268 test_fill(ip, 0, dim, (int)0xdeadbeef); 269 test_fill(ip, size, size * 4, FillC); 270 test_use(ip, size * 4 / elemSize); 271 free(ip); 272 273 op = alloc( dim, ((int)0xdeadbeef)`fill ); 272 274 ip = alloc( 0, op`realloc, FillC`fill ); 273 test_base( ip, 0, libAlign);274 free( ip);275 276 ip = alloc( dim, 0p`realloc, FillC`fill );277 test_base( ip, size, libAlign);278 test_fill( ip, 0, size, FillC);279 test_use( ip, size / elemSize);280 free( ip);281 282 ip = alloc( 0, 0p`realloc, FillC`fill );283 test_base( ip, 0, libAlign);284 free( ip);285 286 op = alloc( dim, 0xdeadbeefN`fill );275 test_base(ip, 0, libAlign); 276 free(ip); 277 278 ip = alloc( dim, ((int*)0p)`realloc, FillC`fill ); 279 test_base(ip, size, libAlign); 280 test_fill(ip, 0, size, FillC); 281 test_use(ip, size / elemSize); 282 free(ip); 283 284 ip = alloc( 0, ((int*)0p)`realloc, FillC`fill ); 285 test_base(ip, 0, libAlign); 286 free(ip); 287 288 op = alloc( dim, ((int)0xdeadbeef)`fill ); 287 289 ip = alloc( dim, op`realloc, FillT`fill ); 288 test_base( ip, size, libAlign);289 test_fill( ip, 0, dim, 0xdeadbeefN);290 test_use( ip, size / elemSize);291 free( ip);292 293 op = alloc( dim, 0xdeadbeefN`fill );290 test_base(ip, size, libAlign); 291 test_fill(ip, 0, dim, (int)0xdeadbeef); 292 test_use(ip, size / elemSize); 293 free(ip); 294 295 op = alloc( dim, ((int)0xdeadbeef)`fill ); 294 296 ip = alloc( dim / 4, op`realloc, FillT`fill ); 295 test_base( ip, size / 4, libAlign);296 test_fill( ip, 0, dim / 4, 0xdeadbeefN);297 test_use( ip, size / 4 / elemSize);298 free( ip);299 300 op = alloc( dim, 0xdeadbeefN`fill );297 test_base(ip, size / 4, libAlign); 298 test_fill(ip, 0, dim / 4, (int)0xdeadbeef); 299 test_use(ip, size / 4 / elemSize); 300 free(ip); 301 302 op = alloc( dim, ((int)0xdeadbeef)`fill ); 301 303 ip = alloc( dim * 4, op`realloc, FillT`fill ); 302 test_base( ip, size * 4, libAlign);303 test_fill( ip, 0, dim, 0xdeadbeefN);304 test_fill( ip, dim, dim * 4, FillT);305 test_use( ip, size * 4 / elemSize);306 free( ip);307 308 op = alloc( dim, 0xdeadbeefN`fill );304 test_base(ip, size * 4, libAlign); 305 test_fill(ip, 0, dim, (int)0xdeadbeef); 306 test_fill(ip, dim, dim * 4, FillT); 307 test_use(ip, size * 4 / elemSize); 308 free(ip); 309 310 op = alloc( dim, ((int)0xdeadbeef)`fill ); 309 311 ip = alloc( 0, op`realloc, FillT`fill ); 310 test_base( ip, 0, libAlign);311 free( ip);312 313 ip = alloc( dim, 0p`realloc, FillT`fill );314 test_base( ip, size, libAlign);315 test_fill( ip, 0, dim, FillT);316 test_use( ip, size / elemSize);317 free( ip);318 319 ip = alloc( 0, 0p`realloc, FillT`fill );320 test_base( ip, 0, libAlign);321 free( ip);312 test_base(ip, 0, libAlign); 313 free(ip); 314 315 ip = alloc( dim, ((int*)0p)`realloc, FillT`fill ); 316 test_base(ip, size, libAlign); 317 test_fill(ip, 0, dim, FillT); 318 test_use(ip, size / elemSize); 319 free(ip); 320 321 ip = alloc( 0, ((int*)0p)`realloc, FillT`fill ); 322 test_base(ip, 0, libAlign); 323 free(ip); 322 324 323 325 ip = alloc( align`align ); 324 test_base( ip, elemSize, align);325 test_use( ip, elemSize / elemSize);326 free( ip);326 test_base(ip, elemSize, align); 327 test_use(ip, elemSize / elemSize); 328 free(ip); 327 329 328 330 ip = alloc( dim, align`align ); 329 test_base( ip, size, align);330 test_use( ip, size / elemSize);331 free( ip);331 test_base(ip, size, align); 332 test_use(ip, size / elemSize); 333 free(ip); 332 334 333 335 ip = alloc( 0, align`align ); 334 test_base( ip, 0, libAlign);335 free( ip);336 337 op = alloc( dim, 0xdeadbeefN`fill );336 test_base(ip, 0, libAlign); 337 free(ip); 338 339 op = alloc( dim, ((int)0xdeadbeef)`fill ); 338 340 ip = alloc( op`realloc, align`align ); 339 test_base( ip, elemSize, align);340 test_fill( ip, 0, 1, 0xdeadbeefN);341 test_use( ip, elemSize / elemSize);342 free( ip);343 344 ip = alloc( 0p`realloc, align`align );345 test_base( ip, elemSize, align);346 test_use( ip, elemSize / elemSize);347 free( ip);341 test_base(ip, elemSize, align); 342 test_fill(ip, 0, 1, (int)0xdeadbeef); 343 test_use(ip, elemSize / elemSize); 344 free(ip); 345 346 ip = alloc( ((int*)0p)`realloc, align`align ); 347 test_base(ip, elemSize, align); 348 test_use(ip, elemSize / elemSize); 349 free(ip); 348 350 349 351 dp = alloc( dim ); 350 352 ip = alloc( dp`resize, align`align ); 351 test_base( ip, elemSize, align);352 test_use( ip, elemSize / elemSize);353 free( ip);354 355 ip = alloc( 0p`resize, align`align );356 test_base( ip, elemSize, align);357 test_use( ip, elemSize / elemSize);358 free( ip);359 360 op = alloc( dim, 0xdeadbeefN`fill);353 test_base(ip, elemSize, align); 354 test_use(ip, elemSize / elemSize); 355 free(ip); 356 357 ip = alloc( ((double*)0p)`resize, align`align ); 358 test_base(ip, elemSize, align); 359 test_use(ip, elemSize / elemSize); 360 free(ip); 361 362 op = alloc( dim, ((int)0xdeadbeef)`fill); 361 363 ip = alloc( dim, op`realloc, align`align ); 362 test_base( ip, size, align);363 test_fill( ip, 0, dim, 0xdeadbeefN);364 test_use( ip, size / elemSize);365 free( ip);366 367 op = alloc( dim, 0xdeadbeefN`fill );364 test_base(ip, size, align); 365 test_fill(ip, 0, dim, (int)0xdeadbeef); 366 test_use(ip, size / elemSize); 367 free(ip); 368 369 op = alloc( dim, ((int)0xdeadbeef)`fill ); 368 370 ip = alloc( 0, op`realloc, align`align ); 369 test_base( ip, 0, libAlign);370 free( ip);371 372 ip = alloc( dim, 0p`realloc, align`align );373 test_base( ip, size, align);374 test_use( ip, size / elemSize);375 free( ip);376 377 ip = alloc( 0, 0p`realloc, align`align );378 test_base( ip, 0, libAlign);379 free( ip);371 test_base(ip, 0, libAlign); 372 free(ip); 373 374 ip = alloc( dim, ((int*)0p)`realloc, align`align ); 375 test_base(ip, size, align); 376 test_use(ip, size / elemSize); 377 free(ip); 378 379 ip = alloc( 0, ((int*)0p)`realloc, align`align ); 380 test_base(ip, 0, libAlign); 381 free(ip); 380 382 381 383 ip = alloc( align`align, FillC`fill ); 382 test_base( ip, elemSize, align);383 test_fill( ip, 0, elemSize, FillC);384 test_use( ip, elemSize / elemSize);385 free( ip);384 test_base(ip, elemSize, align); 385 test_fill(ip, 0, elemSize, FillC); 386 test_use(ip, elemSize / elemSize); 387 free(ip); 386 388 387 389 ip = alloc( align`align, FillT`fill ); 388 test_base( ip, elemSize, align);389 test_fill( ip, 0, 1, FillT);390 test_use( ip, elemSize / elemSize);391 free( ip);390 test_base(ip, elemSize, align); 391 test_fill(ip, 0, 1, FillT); 392 test_use(ip, elemSize / elemSize); 393 free(ip); 392 394 393 395 ip = alloc( dim, align`align, FillC`fill ); 394 test_base( ip, size, align);395 test_fill( ip, 0, size, FillC);396 test_use( ip, size / elemSize);397 free( ip);396 test_base(ip, size, align); 397 test_fill(ip, 0, size, FillC); 398 test_use(ip, size / elemSize); 399 free(ip); 398 400 399 401 ip = alloc( 0, align`align, FillC`fill ); 400 test_base( ip, 0, libAlign);401 free( ip);402 test_base(ip, 0, libAlign); 403 free(ip); 402 404 403 405 ip = alloc( dim, align`align, FillT`fill ); 404 test_base( ip, size, align);405 test_fill( ip, 0, dim, FillT);406 test_use( ip, size / elemSize);407 free( ip);406 test_base(ip, size, align); 407 test_fill(ip, 0, dim, FillT); 408 test_use(ip, size / elemSize); 409 free(ip); 408 410 409 411 ip = alloc( 0, align`align, FillT`fill ); 410 test_base( ip, 0, libAlign);411 free( ip);412 test_base(ip, 0, libAlign); 413 free(ip); 412 414 413 415 ip = alloc( dim, align`align, [FillA, dim/4]`fill ); 414 test_base( ip, size, align);415 test_fill( ip, 0, size/4, FillA);416 test_use( ip, size / elemSize);417 free( ip);416 test_base(ip, size, align); 417 test_fill(ip, 0, size/4, FillA); 418 test_use(ip, size / elemSize); 419 free(ip); 418 420 419 421 ip = alloc( 0, align`align, [FillA, dim/4]`fill ); 420 test_base( ip, 0, libAlign);421 free( ip);422 423 op = alloc( dim, 0xdeadbeefN`fill );422 test_base(ip, 0, libAlign); 423 free(ip); 424 425 op = alloc( dim, ((int)0xdeadbeef)`fill ); 424 426 ip = alloc( dim, op`realloc, align`align, FillC`fill ); 425 test_base( ip, size, align);426 test_fill( ip, 0, dim, 0xdeadbeefN);427 test_use( ip, size / elemSize);428 free( ip);429 430 op = alloc( dim, 0xdeadbeefN`fill );427 test_base(ip, size, align); 428 test_fill(ip, 0, dim, (int)0xdeadbeef); 429 test_use(ip, size / elemSize); 430 free(ip); 431 432 op = alloc( dim, ((int)0xdeadbeef)`fill ); 431 433 ip = alloc( dim / 4, op`realloc, align`align, FillC`fill ); 432 test_base( ip, size / 4, align);433 test_fill( ip, 0, dim / 4, 0xdeadbeefN);434 test_use( ip, size / 4 / elemSize);435 free( ip);436 437 op = alloc( dim, 0xdeadbeefN`fill );434 test_base(ip, size / 4, align); 435 test_fill(ip, 0, dim / 4, (int)0xdeadbeef); 436 test_use(ip, size / 4 / elemSize); 437 free(ip); 438 439 op = alloc( dim, ((int)0xdeadbeef)`fill ); 438 440 ip = alloc( dim * 4, op`realloc, align`align, FillC`fill ); 439 test_base( ip, size * 4, align);440 test_fill( ip, 0, dim, 0xdeadbeefN);441 test_fill( ip, size, size * 4, FillC);442 test_use( ip, size * 4 / elemSize);443 free( ip);444 445 op = alloc( dim, 0xdeadbeefN`fill );441 test_base(ip, size * 4, align); 442 test_fill(ip, 0, dim, (int)0xdeadbeef); 443 test_fill(ip, size, size * 4, FillC); 444 test_use(ip, size * 4 / elemSize); 445 free(ip); 446 447 op = alloc( dim, ((int)0xdeadbeef)`fill ); 446 448 ip = alloc( 0, op`realloc, align`align, FillC`fill ); 447 test_base( ip, 0, libAlign);448 free( ip);449 450 ip = alloc( dim, 0p`realloc, align`align, FillC`fill );451 test_base( ip, size, align);452 test_fill( ip, 0, size, FillC);453 test_use( ip, size / elemSize);454 free( ip);455 456 ip = alloc( 0, 0p`realloc, align`align, FillC`fill );457 test_base( ip, 0, libAlign);458 free( ip);459 460 op = alloc( dim, 0xdeadbeefN`fill );449 test_base(ip, 0, libAlign); 450 free(ip); 451 452 ip = alloc( dim, ((int*)0p)`realloc, align`align, FillC`fill ); 453 test_base(ip, size, align); 454 test_fill(ip, 0, size, FillC); 455 test_use(ip, size / elemSize); 456 free(ip); 457 458 ip = alloc( 0, ((int*)0p)`realloc, align`align, FillC`fill ); 459 test_base(ip, 0, libAlign); 460 free(ip); 461 462 op = alloc( dim, ((int)0xdeadbeef)`fill ); 461 463 ip = alloc( dim, op`realloc, align`align, FillT`fill ); 462 test_base( ip, size, align);463 test_fill( ip, 0, dim, 0xdeadbeefN);464 test_use( ip, size / elemSize);465 free( ip);466 467 op = alloc( dim, 0xdeadbeefN`fill );464 test_base(ip, size, align); 465 test_fill(ip, 0, dim, (int)0xdeadbeef); 466 test_use(ip, size / elemSize); 467 free(ip); 468 469 op = alloc( dim, ((int)0xdeadbeef)`fill ); 468 470 ip = alloc( dim / 4, op`realloc, align`align, FillT`fill ); 469 test_base( ip, size / 4, align);470 test_fill( ip, 0, dim / 4, 0xdeadbeefN);471 test_use( ip, size / 4 / elemSize);472 free( ip);473 474 op = alloc( dim, 0xdeadbeefN`fill );471 test_base(ip, size / 4, align); 472 test_fill(ip, 0, dim / 4, (int)0xdeadbeef); 473 test_use(ip, size / 4 / elemSize); 474 free(ip); 475 476 op = alloc( dim, ((int)0xdeadbeef)`fill ); 475 477 ip = alloc( dim * 4, op`realloc, align`align, FillT`fill ); 476 test_base( ip, size * 4, align);477 test_fill( ip, 0, dim, 0xdeadbeefN);478 test_fill( ip, dim, dim * 4, FillT);479 test_use( ip, size * 4 / elemSize);480 free( ip);481 482 op = alloc( dim, 0xdeadbeefN`fill );478 test_base(ip, size * 4, align); 479 test_fill(ip, 0, dim, (int)0xdeadbeef); 480 test_fill(ip, dim, dim * 4, FillT); 481 test_use(ip, size * 4 / elemSize); 482 free(ip); 483 484 op = alloc( dim, ((int)0xdeadbeef)`fill ); 483 485 ip = alloc( 0, op`realloc, align`align, FillT`fill ); 484 test_base( ip, 0, libAlign);485 free( ip);486 487 ip = alloc( dim, 0p`realloc, align`align, FillT`fill );488 test_base( ip, size, align);489 test_fill( ip, 0, dim, FillT);490 test_use( ip, size / elemSize);491 free( ip);492 493 ip = alloc( 0, 0p`realloc, align`align, FillT`fill );494 test_base( ip, 0, libAlign);495 free( ip);496 497 if ( tests_failed == 0 ) printf( "PASSED alloc tests\n\n");498 else printf( "failed alloc tests : %d/%d\n\n", tests_failed, tests_total);499 500 // testing alloc ( aligned struct)486 test_base(ip, 0, libAlign); 487 free(ip); 488 489 ip = alloc( dim, ((int*)0p)`realloc, align`align, FillT`fill ); 490 test_base(ip, size, align); 491 test_fill(ip, 0, dim, FillT); 492 test_use(ip, size / elemSize); 493 free(ip); 494 495 ip = alloc( 0, ((int*)0p)`realloc, align`align, FillT`fill ); 496 test_base(ip, 0, libAlign); 497 free(ip); 498 499 if (tests_failed == 0) printf("PASSED alloc tests\n\n"); 500 else printf("failed alloc tests : %d/%d\n\n", tests_failed, tests_total); 501 502 // testing alloc (aligned struct) 501 503 502 504 elemSize = sizeof(T1); … … 507 509 508 510 t1p = alloc(); 509 test_base( t1p, elemSize, tAlign);510 test_use( t1p, elemSize / elemSize);511 free( t1p);511 test_base(t1p, elemSize, tAlign); 512 test_use(t1p, elemSize / elemSize); 513 free(t1p); 512 514 513 515 t1p = alloc( dim ); 514 test_base( t1p, size, tAlign);515 test_use( t1p, size / elemSize);516 free( t1p);516 test_base(t1p, size, tAlign); 517 test_use(t1p, size / elemSize); 518 free(t1p); 517 519 518 520 t1p = alloc( 0 ); 519 test_base( t1p, 0, libAlign);520 free( t1p);521 test_base(t1p, 0, libAlign); 522 free(t1p); 521 523 522 524 dp = alloc( dim ); 523 525 t1p = alloc( dp`resize ); 524 test_base( t1p, elemSize, tAlign);525 test_use( t1p, elemSize / elemSize);526 free( t1p);527 528 t1p = alloc( 0p`resize );529 test_base( t1p, elemSize, tAlign);530 test_use( t1p, elemSize / elemSize);531 free( t1p);526 test_base(t1p, elemSize, tAlign); 527 test_use(t1p, elemSize / elemSize); 528 free(t1p); 529 530 t1p = alloc( ((double*)0p)`resize ); 531 test_base(t1p, elemSize, tAlign); 532 test_use(t1p, elemSize / elemSize); 533 free(t1p); 532 534 533 535 dp = alloc( dim ); 534 536 t1p = alloc( dim, dp`resize ); 535 test_base( t1p, size, tAlign);536 test_use( t1p, size / elemSize);537 free( t1p);537 test_base(t1p, size, tAlign); 538 test_use(t1p, size / elemSize); 539 free(t1p); 538 540 539 541 dp = alloc( dim ); 540 542 t1p = alloc( 0, dp`resize ); 541 test_base( t1p, 0, libAlign);542 free( t1p);543 544 t1p = alloc( dim, 0p`resize );545 test_base( t1p, size, tAlign);546 test_use( t1p, size / elemSize);547 free( t1p);548 549 t1p = alloc( 0, 0p`resize );550 test_base( t1p, 0, libAlign);551 free( t1p);543 test_base(t1p, 0, libAlign); 544 free(t1p); 545 546 t1p = alloc( dim, ((double*)0p)`resize ); 547 test_base(t1p, size, tAlign); 548 test_use(t1p, size / elemSize); 549 free(t1p); 550 551 t1p = alloc( 0, ((double*)0p)`resize ); 552 test_base(t1p, 0, libAlign); 553 free(t1p); 552 554 553 555 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 554 556 t1p = alloc( dim, t1op`realloc ); 555 test_base( t1p, size, tAlign);556 test_fill( t1p, 0, dim, (T1){0xdeadbeef});557 test_use( t1p, size / elemSize);558 free( t1p);557 test_base(t1p, size, tAlign); 558 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 559 test_use(t1p, size / elemSize); 560 free(t1p); 559 561 560 562 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 561 563 t1p = alloc( 0, t1op`realloc ); 562 test_base( t1p, 0, libAlign);563 free( t1p);564 565 t1p = alloc( dim, 0p`realloc );566 test_base( t1p, size, tAlign);567 test_use( t1p, size / elemSize);568 free( t1p);569 570 t1p = alloc( 0, 0p`realloc );571 test_base( t1p, 0, libAlign);572 free( t1p);564 test_base(t1p, 0, libAlign); 565 free(t1p); 566 567 t1p = alloc( dim, ((T1*)0p)`realloc ); 568 test_base(t1p, size, tAlign); 569 test_use(t1p, size / elemSize); 570 free(t1p); 571 572 t1p = alloc( 0, ((T1*)0p)`realloc ); 573 test_base(t1p, 0, libAlign); 574 free(t1p); 573 575 574 576 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 575 577 t1p = alloc( dim, t1op`resize ); 576 test_base( t1p, size, tAlign);577 test_use( t1p, size / elemSize);578 free( t1p);578 test_base(t1p, size, tAlign); 579 test_use(t1p, size / elemSize); 580 free(t1p); 579 581 580 582 t1p = alloc( FillC`fill ); 581 test_base( t1p, elemSize, tAlign);582 test_fill( t1p, 0, elemSize, FillC);583 test_use( t1p, elemSize / elemSize);584 free( t1p);583 test_base(t1p, elemSize, tAlign); 584 test_fill(t1p, 0, elemSize, FillC); 585 test_use(t1p, elemSize / elemSize); 586 free(t1p); 585 587 586 588 t1p = alloc( FillT1`fill ); 587 test_base( t1p, elemSize, tAlign);588 test_fill( t1p, 0, 1, FillT1);589 test_use( t1p, elemSize / elemSize);590 free( t1p);589 test_base(t1p, elemSize, tAlign); 590 test_fill(t1p, 0, 1, FillT1); 591 test_use(t1p, elemSize / elemSize); 592 free(t1p); 591 593 592 594 t1p = alloc( dim, FillC`fill ); 593 test_base( t1p, size, tAlign);594 test_fill( t1p, 0, size, FillC);595 test_use( t1p, size / elemSize);596 free( t1p);595 test_base(t1p, size, tAlign); 596 test_fill(t1p, 0, size, FillC); 597 test_use(t1p, size / elemSize); 598 free(t1p); 597 599 598 600 t1p = alloc( 0, FillC`fill ); 599 test_base( t1p, 0, libAlign);600 free( t1p);601 test_base(t1p, 0, libAlign); 602 free(t1p); 601 603 602 604 t1p = alloc( dim, FillT1`fill ); 603 test_base( t1p, size, tAlign);604 test_fill( t1p, 0, dim, FillT1);605 test_use( t1p, size / elemSize);606 free( t1p);605 test_base(t1p, size, tAlign); 606 test_fill(t1p, 0, dim, FillT1); 607 test_use(t1p, size / elemSize); 608 free(t1p); 607 609 608 610 t1p = alloc( 0, FillT1`fill ); 609 test_base( t1p, 0, libAlign);610 free( t1p);611 test_base(t1p, 0, libAlign); 612 free(t1p); 611 613 612 614 t1p = alloc( dim, [FillT1A, dim / 4]`fill ); 613 test_base( t1p, size, tAlign);614 test_fill( t1p, 0, size/4, FillT1A);615 test_use( t1p, size / elemSize);616 free( t1p);615 test_base(t1p, size, tAlign); 616 test_fill(t1p, 0, size/4, FillT1A); 617 test_use(t1p, size / elemSize); 618 free(t1p); 617 619 618 620 t1p = alloc( 0, [FillT1A, dim / 4]`fill ); 619 test_base( t1p, 0, libAlign);620 free( t1p);621 test_base(t1p, 0, libAlign); 622 free(t1p); 621 623 622 624 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 623 625 t1p = alloc( dim, t1op`realloc, FillC`fill ); 624 test_base( t1p, size, tAlign);625 test_fill( t1p, 0, dim, (T1){0xdeadbeef});626 test_use( t1p, size / elemSize);627 free( t1p);626 test_base(t1p, size, tAlign); 627 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 628 test_use(t1p, size / elemSize); 629 free(t1p); 628 630 629 631 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 630 632 t1p = alloc( dim / 4, t1op`realloc, FillC`fill ); 631 test_base( t1p, size / 4, tAlign);632 test_fill( t1p, 0, dim / 4, (T1){0xdeadbeef});633 test_use( t1p, size / 4 / elemSize);634 free( t1p);633 test_base(t1p, size / 4, tAlign); 634 test_fill(t1p, 0, dim / 4, (T1){0xdeadbeef}); 635 test_use(t1p, size / 4 / elemSize); 636 free(t1p); 635 637 636 638 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 637 639 t1p = alloc( dim * 4, t1op`realloc, FillC`fill ); 638 test_base( t1p, size * 4, tAlign);639 test_fill( t1p, 0, dim, (T1){0xdeadbeef});640 test_fill( t1p, size, size * 4, FillC);641 test_use( t1p, size * 4 / elemSize);642 free( t1p);640 test_base(t1p, size * 4, tAlign); 641 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 642 test_fill(t1p, size, size * 4, FillC); 643 test_use(t1p, size * 4 / elemSize); 644 free(t1p); 643 645 644 646 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 645 647 t1p = alloc( 0, t1op`realloc, FillC`fill ); 646 test_base( t1p, 0, libAlign);647 free( t1p);648 649 t1p = alloc( dim, 0p`realloc, FillC`fill );650 test_base( t1p, size, tAlign);651 test_fill( t1p, 0, size, FillC);652 test_use( t1p, size / elemSize);653 free( t1p);654 655 t1p = alloc( 0, 0p`realloc, FillC`fill );656 test_base( t1p, 0, libAlign);657 free( t1p);648 test_base(t1p, 0, libAlign); 649 free(t1p); 650 651 t1p = alloc( dim, ((T1*)0p)`realloc, FillC`fill ); 652 test_base(t1p, size, tAlign); 653 test_fill(t1p, 0, size, FillC); 654 test_use(t1p, size / elemSize); 655 free(t1p); 656 657 t1p = alloc( 0, ((T1*)0p)`realloc, FillC`fill ); 658 test_base(t1p, 0, libAlign); 659 free(t1p); 658 660 659 661 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 660 662 t1p = alloc( dim, t1op`realloc, FillT1`fill ); 661 test_base( t1p, size, tAlign);662 test_fill( t1p, 0, dim, (T1){0xdeadbeef});663 test_use( t1p, size / elemSize);664 free( t1p);663 test_base(t1p, size, tAlign); 664 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 665 test_use(t1p, size / elemSize); 666 free(t1p); 665 667 666 668 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 667 669 t1p = alloc( dim / 4, t1op`realloc, FillT1`fill ); 668 test_base( t1p, size / 4, tAlign);669 test_fill( t1p, 0, dim / 4, (T1){0xdeadbeef});670 test_use( t1p, size / 4 / elemSize);671 free( t1p);670 test_base(t1p, size / 4, tAlign); 671 test_fill(t1p, 0, dim / 4, (T1){0xdeadbeef}); 672 test_use(t1p, size / 4 / elemSize); 673 free(t1p); 672 674 673 675 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 674 676 t1p = alloc( dim * 4, t1op`realloc, FillT1`fill ); 675 test_base( t1p, size * 4, tAlign);676 test_fill( t1p, 0, dim, (T1){0xdeadbeef});677 test_fill( t1p, dim, dim * 4, FillT1);678 test_use( t1p, size * 4 / elemSize);679 free( t1p);677 test_base(t1p, size * 4, tAlign); 678 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 679 test_fill(t1p, dim, dim * 4, FillT1); 680 test_use(t1p, size * 4 / elemSize); 681 free(t1p); 680 682 681 683 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 682 684 t1p = alloc( 0, t1op`realloc, FillT1`fill ); 683 test_base( t1p, 0, libAlign);684 free( t1p);685 686 t1p = alloc( dim, 0p`realloc, FillT1`fill );687 test_base( t1p, size, tAlign);688 test_fill( t1p, 0, dim, FillT1);689 test_use( t1p, size / elemSize);690 free( t1p);691 692 t1p = alloc( 0, 0p`realloc, FillT1`fill );693 test_base( t1p, 0, libAlign);694 free( t1p);685 test_base(t1p, 0, libAlign); 686 free(t1p); 687 688 t1p = alloc( dim, ((T1*)0p)`realloc, FillT1`fill ); 689 test_base(t1p, size, tAlign); 690 test_fill(t1p, 0, dim, FillT1); 691 test_use(t1p, size / elemSize); 692 free(t1p); 693 694 t1p = alloc( 0, ((T1*)0p)`realloc, FillT1`fill ); 695 test_base(t1p, 0, libAlign); 696 free(t1p); 695 697 696 698 t1p = alloc( align`align ); 697 test_base( t1p, elemSize, align);698 test_use( t1p, elemSize / elemSize);699 free( t1p);699 test_base(t1p, elemSize, align); 700 test_use(t1p, elemSize / elemSize); 701 free(t1p); 700 702 701 703 t1p = alloc( dim, align`align ); 702 test_base( t1p, size, align);703 test_use( t1p, size / elemSize);704 free( t1p);704 test_base(t1p, size, align); 705 test_use(t1p, size / elemSize); 706 free(t1p); 705 707 706 708 t1p = alloc( 0, align`align ); 707 test_base( t1p, 0, libAlign);708 free( t1p);709 test_base(t1p, 0, libAlign); 710 free(t1p); 709 711 710 712 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 711 713 t1p = alloc( t1op`realloc, align`align ); 712 test_base( t1p, elemSize, align);713 test_fill( t1p, 0, 1, (T1){0xdeadbeef});714 test_use( t1p, elemSize / elemSize);715 free( t1p);716 717 t1p = alloc( 0p`realloc, align`align );718 test_base( t1p, elemSize, align);719 test_use( t1p, elemSize / elemSize);720 free( t1p);714 test_base(t1p, elemSize, align); 715 test_fill(t1p, 0, 1, (T1){0xdeadbeef}); 716 test_use(t1p, elemSize / elemSize); 717 free(t1p); 718 719 t1p = alloc( ((T1*)0p)`realloc, align`align ); 720 test_base(t1p, elemSize, align); 721 test_use(t1p, elemSize / elemSize); 722 free(t1p); 721 723 722 724 dp = alloc( dim ); 723 725 t1p = alloc( dp`resize, align`align ); 724 test_base( t1p, elemSize, align);725 test_use( t1p, elemSize / elemSize);726 free( t1p);727 728 t1p = alloc( 0p`resize, align`align );729 test_base( t1p, elemSize, align);730 test_use( t1p, elemSize / elemSize);731 free( t1p);726 test_base(t1p, elemSize, align); 727 test_use(t1p, elemSize / elemSize); 728 free(t1p); 729 730 t1p = alloc( ((double*)0p)`resize, align`align ); 731 test_base(t1p, elemSize, align); 732 test_use(t1p, elemSize / elemSize); 733 free(t1p); 732 734 733 735 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 734 736 t1p = alloc( dim, t1op`realloc, align`align ); 735 test_base( t1p, size, align);736 test_fill( t1p, 0, dim, (T1){0xdeadbeef});737 test_use( t1p, size / elemSize);738 free( t1p);737 test_base(t1p, size, align); 738 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 739 test_use(t1p, size / elemSize); 740 free(t1p); 739 741 740 742 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 741 743 t1p = alloc( 0, t1op`realloc, align`align ); 742 test_base( t1p, 0, libAlign);743 free( t1p);744 745 t1p = alloc( dim, 0p`realloc, align`align );746 test_base( t1p, size, align);747 test_use( t1p, size / elemSize);748 free( t1p);749 750 t1p = alloc( 0, 0p`realloc, align`align );751 test_base( t1p, 0, libAlign);752 free( t1p);744 test_base(t1p, 0, libAlign); 745 free(t1p); 746 747 t1p = alloc( dim, ((T1*)0p)`realloc, align`align ); 748 test_base(t1p, size, align); 749 test_use(t1p, size / elemSize); 750 free(t1p); 751 752 t1p = alloc( 0, ((T1*)0p)`realloc, align`align ); 753 test_base(t1p, 0, libAlign); 754 free(t1p); 753 755 754 756 t1p = alloc( align`align, FillC`fill ); 755 test_base( t1p, elemSize, align);756 test_fill( t1p, 0, elemSize, FillC);757 test_use( t1p, elemSize / elemSize);758 free( t1p);757 test_base(t1p, elemSize, align); 758 test_fill(t1p, 0, elemSize, FillC); 759 test_use(t1p, elemSize / elemSize); 760 free(t1p); 759 761 760 762 t1p = alloc( align`align, FillT1`fill ); 761 test_base( t1p, elemSize, align);762 test_fill( t1p, 0, 1, FillT1);763 test_use( t1p, elemSize / elemSize);764 free( t1p);763 test_base(t1p, elemSize, align); 764 test_fill(t1p, 0, 1, FillT1); 765 test_use(t1p, elemSize / elemSize); 766 free(t1p); 765 767 766 768 t1p = alloc( dim, align`align, FillC`fill ); 767 test_base( t1p, size, align);768 test_fill( t1p, 0, size, FillC);769 test_use( t1p, size / elemSize);770 free( t1p);769 test_base(t1p, size, align); 770 test_fill(t1p, 0, size, FillC); 771 test_use(t1p, size / elemSize); 772 free(t1p); 771 773 772 774 t1p = alloc( 0, align`align, FillC`fill ); 773 test_base( t1p, 0, libAlign);774 free( t1p);775 test_base(t1p, 0, libAlign); 776 free(t1p); 775 777 776 778 t1p = alloc( dim, align`align, FillT1`fill ); 777 test_base( t1p, size, align);778 test_fill( t1p, 0, dim, FillT1);779 test_use( t1p, size / elemSize);780 free( t1p);779 test_base(t1p, size, align); 780 test_fill(t1p, 0, dim, FillT1); 781 test_use(t1p, size / elemSize); 782 free(t1p); 781 783 782 784 t1p = alloc( 0, align`align, FillT1`fill ); 783 test_base( t1p, 0, libAlign);784 free( t1p);785 test_base(t1p, 0, libAlign); 786 free(t1p); 785 787 786 788 t1p = alloc( dim, align`align, [FillT1A, dim / 4]`fill ); 787 test_base( t1p, size, align);788 test_fill( t1p, 0, size/4, FillT1A);789 test_use( t1p, size / elemSize);790 free( t1p);789 test_base(t1p, size, align); 790 test_fill(t1p, 0, size/4, FillT1A); 791 test_use(t1p, size / elemSize); 792 free(t1p); 791 793 792 794 t1p = alloc( 0, align`align, [FillT1A, dim / 4]`fill ); 793 test_base( t1p, 0, libAlign);794 free( t1p);795 test_base(t1p, 0, libAlign); 796 free(t1p); 795 797 796 798 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 797 799 t1p = alloc( dim, t1op`realloc, align`align, FillC`fill ); 798 test_base( t1p, size, align);799 test_fill( t1p, 0, dim, (T1){0xdeadbeef});800 test_use( t1p, size / elemSize);801 free( t1p);800 test_base(t1p, size, align); 801 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 802 test_use(t1p, size / elemSize); 803 free(t1p); 802 804 803 805 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 804 806 t1p = alloc( dim / 4, t1op`realloc, align`align, FillC`fill ); 805 test_base( t1p, size / 4, align);806 test_fill( t1p, 0, dim / 4, (T1){0xdeadbeef});807 test_use( t1p, size / 4 / elemSize);808 free( t1p);807 test_base(t1p, size / 4, align); 808 test_fill(t1p, 0, dim / 4, (T1){0xdeadbeef}); 809 test_use(t1p, size / 4 / elemSize); 810 free(t1p); 809 811 810 812 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 811 813 t1p = alloc( dim * 4, t1op`realloc, align`align, FillC`fill ); 812 test_base( t1p, size * 4, align);813 test_fill( t1p, 0, dim, (T1){0xdeadbeef});814 test_fill( t1p, size, size * 4, FillC);815 test_use( t1p, size * 4 / elemSize);816 free( t1p);814 test_base(t1p, size * 4, align); 815 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 816 test_fill(t1p, size, size * 4, FillC); 817 test_use(t1p, size * 4 / elemSize); 818 free(t1p); 817 819 818 820 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 819 821 t1p = alloc( 0, t1op`realloc, align`align, FillC`fill ); 820 test_base( t1p, 0, libAlign);821 free( t1p);822 823 t1p = alloc( dim, 0p`realloc, align`align, FillC`fill );824 test_base( t1p, size, align);825 test_fill( t1p, 0, size, FillC);826 test_use( t1p, size / elemSize);827 free( t1p);828 829 t1p = alloc( 0, 0p`realloc, align`align, FillC`fill );830 test_base( t1p, 0, libAlign);831 free( t1p);832 833 t1op = alloc( dim, ((T1){0xdeadbeef})`fill );822 test_base(t1p, 0, libAlign); 823 free(t1p); 824 825 t1p = alloc( dim, ((T1*)0p)`realloc, align`align, FillC`fill ); 826 test_base(t1p, size, align); 827 test_fill(t1p, 0, size, FillC); 828 test_use(t1p, size / elemSize); 829 free(t1p); 830 831 t1p = alloc( 0, ((T1*)0p)`realloc, align`align, FillC`fill ); 832 test_base(t1p, 0, libAlign); 833 free(t1p); 834 835 t1op = alloc( dim, ((T1){0xdeadbeef})`fill); 834 836 t1p = alloc( dim, t1op`realloc, align`align, FillT1`fill ); 835 test_base( t1p, size, align);836 test_fill( t1p, 0, dim, (T1){0xdeadbeef});837 test_use( t1p, size / elemSize);838 free( t1p);837 test_base(t1p, size, align); 838 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 839 test_use(t1p, size / elemSize); 840 free(t1p); 839 841 840 842 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 841 843 t1p = alloc( dim / 4, t1op`realloc, align`align, FillT1`fill ); 842 test_base( t1p, size / 4, align);843 test_fill( t1p, 0, dim / 4, (T1){0xdeadbeef});844 test_use( t1p, size / 4 / elemSize);845 free( t1p);844 test_base(t1p, size / 4, align); 845 test_fill(t1p, 0, dim / 4, (T1){0xdeadbeef}); 846 test_use(t1p, size / 4 / elemSize); 847 free(t1p); 846 848 847 849 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 848 850 t1p = alloc( dim * 4, t1op`realloc, align`align, FillT1`fill ); 849 test_base( t1p, size * 4, align);850 test_fill( t1p, 0, dim, (T1){0xdeadbeef});851 test_fill( t1p, dim, dim * 4, FillT1);852 test_use( t1p, size * 4 / elemSize);853 free( t1p);851 test_base(t1p, size * 4, align); 852 test_fill(t1p, 0, dim, (T1){0xdeadbeef}); 853 test_fill(t1p, dim, dim * 4, FillT1); 854 test_use(t1p, size * 4 / elemSize); 855 free(t1p); 854 856 855 857 t1op = alloc( dim, ((T1){0xdeadbeef})`fill ); 856 858 t1p = alloc( 0, t1op`realloc, align`align, FillT1`fill ); 857 test_base( t1p, 0, libAlign ); 858 free( t1p ); 859 860 t1p = alloc( dim, 0p`realloc, align`align, FillT1`fill ); 861 test_base( t1p, size, align ); 862 test_fill( t1p, 0, dim, FillT1); 863 test_use( t1p, size / elemSize ); 864 free( t1p ); 865 866 t1p = alloc( 0, 0p`realloc, align`align, FillT1`fill ); 867 test_base( t1p, 0, libAlign ); 868 free( t1p ); 869 870 if ( tests_failed == 0) printf( "PASSED alloc tests (aligned struct)\n\n"); 871 else printf( "failed alloc tests ( aligned struct ) : %d/%d\n\n", tests_failed, tests_total ); 872 873 printf( "(if applicable) alignment error below indicates memory trashing caused by test_use.\n\n"); 874 free( FillA ); 875 free( FillT1A ); 859 test_base(t1p, 0, libAlign); 860 free(t1p); 861 862 t1p = alloc( dim, ((T1*)0p)`realloc, align`align, FillT1`fill ); 863 test_base(t1p, size, align); 864 test_fill(t1p, 0, dim, FillT1); 865 test_use(t1p, size / elemSize); 866 free(t1p); 867 868 t1p = alloc( 0, ((T1*)0p)`realloc, align`align, FillT1`fill ); 869 test_base(t1p, 0, libAlign); 870 free(t1p); 871 872 if (tests_failed == 0) printf("PASSED alloc tests (aligned struct)\n\n"); 873 else printf("failed alloc tests (aligned struct) : %d/%d\n\n", tests_failed, tests_total); 874 875 printf("(if applicable) alignment error below indicates memory trashing caused by test_use.\n\n"); 876 free(FillA); 877 free(FillT1A); 878 return 0; 876 879 } // main
Note:
See TracChangeset
for help on using the changeset viewer.