Home | History | Annotate | Download | only in tests
      1 
      2 #include <stdio.h>
      3 #include <stdlib.h>
      4 
      5 /* The original test driver machinery. */
      6 #define N_TEST_TRANSACTIONS 500
      7 #define N_TEST_ARR 2000
      8 
      9 #define M_TEST_MALLOC 1000
     10 
     11 void* test_arr[N_TEST_ARR];
     12 
     13 int main ( int argc, char** argv )
     14 {
     15    int i, j, k, nbytes;
     16    unsigned char* chp;
     17 
     18    for (i = 0; i < N_TEST_ARR; i++)
     19       test_arr[i] = NULL;
     20 
     21    for (i = 0; i < N_TEST_TRANSACTIONS; i++) {
     22       j = random() % N_TEST_ARR;
     23       if (test_arr[j]) {
     24          free(test_arr[j]);
     25          test_arr[j] = NULL;
     26       } else {
     27          nbytes = 1 + random() % M_TEST_MALLOC;
     28          if (random()%64 == 32)
     29             nbytes *= 17;
     30          test_arr[j] = malloc( nbytes );
     31          chp = test_arr[j];
     32          for (k = 1; k < nbytes; k++)
     33             chp[k] = (unsigned char)(k + 99);
     34       }
     35    }
     36 
     37    for (i = 0; test_arr[i] == NULL; i++) ;
     38    free(test_arr[i]);
     39    ((char*)test_arr[i])[0] = 0;
     40 
     41    for (i = 0; i < N_TEST_ARR; i++) {
     42       if (test_arr[i]) {
     43          free(test_arr[i]);
     44          test_arr[i] = NULL;
     45       }
     46    }
     47 
     48    return 0;
     49 }
     50