Beispiel #1
0
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);
}
Beispiel #2
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;
        }
    }
}