int main(int argc, char **argv) { int i; int n; NodePtr node; JobPtr job; ListPtr list; char *saveFile; if (argc < 2) { fprintf(stderr, "Usage: %s <list size> [<checkpoint file>] \n",argv[0]); exit(1); } n = atoi(argv[1]); saveFile = NULL; if (argc == 3) { saveFile = argv[2]; } list = createList(); for (i=0; i<n; i++) { job = createJob(i, "cmd args"); node = createNode(job); addAtFront(list, node); } if (!saveFile) printList(list); printList(list); if (saveFile) { printf("checkpointing to file %s\n", saveFile); checkpointList(list, saveFile); } exit(0); }
void runRandomTests(struct parameters *state, ListPtr list) { int i; int start; int test; NodePtr node; JobPtr job; long int num; srand(state->seed); start=0; if (state->restart) { start = state->done+1; srand(state->randomNum); } for (i=start; i<state->count; i++) { num = rand(); test = num % NUM_TESTS; if ((i > 0) && ((i % CHECKPOINT_COUNT) == 0)) { fprintf(stderr, "checkpointing list, count = %d\n", i); state->done = i-1; state->randomNum = num; checkpointList(list, state->saveFile); checkpointTestSuite(state, stateFile); } switch (test) { case 0: if (DEBUG > 1) fprintf(stderr,"addAtFront\n"); state->n++; job = createJob(state->n, "some info"); node = createNode(job); addAtFront(list, node); break; case 1: if (DEBUG > 1) fprintf(stderr,"addAtRear\n"); state->n++; job = createJob(state->n, "some info"); node = createNode(job); addAtRear(list, node); break; case 2: if (DEBUG > 1) fprintf(stderr,"removeFront\n"); node = removeFront(list); break; case 3: if (DEBUG > 1) fprintf(stderr,"removeRear\n"); node = removeRear(list); break; case 4: if (DEBUG > 1) fprintf(stderr,"removeNode\n"); node = removeNode(list, search(list, i)); break; case 5: if (DEBUG > 1) fprintf(stderr,"reverseList\n"); reverseList(list); default: break; } } }