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