| |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| /* The original test driver machinery. */ |
| #define N_TEST_TRANSACTIONS 500 |
| #define N_TEST_ARR 2000 |
| |
| #define M_TEST_MALLOC 1000 |
| |
| void* test_arr[N_TEST_ARR]; |
| |
| int main ( int argc, char** argv ) |
| { |
| int i, j, k, nbytes; |
| unsigned char* chp; |
| |
| for (i = 0; i < N_TEST_ARR; i++) |
| test_arr[i] = NULL; |
| |
| for (i = 0; i < N_TEST_TRANSACTIONS; i++) { |
| j = random() % N_TEST_ARR; |
| if (test_arr[j]) { |
| free(test_arr[j]); |
| test_arr[j] = NULL; |
| } else { |
| nbytes = 1 + random() % M_TEST_MALLOC; |
| if (random()%64 == 32) |
| nbytes *= 17; |
| test_arr[j] = malloc( nbytes ); |
| chp = test_arr[j]; |
| for (k = 1; k < nbytes; k++) |
| chp[k] = (unsigned char)(k + 99); |
| } |
| } |
| |
| for (i = 0; test_arr[i] == NULL; i++) ; |
| free(test_arr[i]); |
| ((char*)test_arr[i])[0] = 0; |
| |
| for (i = 0; i < N_TEST_ARR; i++) { |
| if (test_arr[i]) { |
| free(test_arr[i]); |
| test_arr[i] = NULL; |
| } |
| } |
| |
| return 0; |
| } |