From: Mike F. <va...@us...> - 2007-03-19 02:17:16
|
Update of /cvsroot/ltp/ltp/testcases/kernel/syscalls/ipc/semop In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv20483 Modified Files: semop01.c Log Message: cleanup code Index: semop01.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/ipc/semop/semop01.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** semop01.c 18 Nov 2002 19:55:00 -0000 1.3 --- semop01.c 17 Mar 2007 02:48:33 -0000 1.4 *************** *** 54,58 **** * 17/01/02 - Modified. Manoj Iyer, IBM Austin. TX. ma...@au... * 4th argument to semctl() system call was modified according ! * to man pages. * In my opinion The test should not even have compiled but * it was working due to some mysterious reason. --- 54,58 ---- * 17/01/02 - Modified. Manoj Iyer, IBM Austin. TX. ma...@au... * 4th argument to semctl() system call was modified according ! * to man pages. * In my opinion The test should not even have compiled but * it was working due to some mysterious reason. *************** *** 64,68 **** #include "ipcsem.h" ! #define NSEMS 4 /* the number of primitive semaphores to test */ char *TCID = "semop01"; --- 64,68 ---- #include "ipcsem.h" ! #define NSEMS 4 /* the number of primitive semaphores to test */ char *TCID = "semop01"; *************** *** 70,94 **** extern int Tst_count; ! int sem_id_1 = -1; /* a semaphore set with read & alter permissions */ ! struct sembuf sops[PSEMS]; /* an array of sembuf structures */ - int main(int ac, char **av) { ! union semun get_arr; ! int lc; /* loop counter */ ! char *msg; /* message returned from parse_opts */ int i; int fail = 0; ! get_arr.array = malloc(sizeof(unsigned short int) * PSEMS); /* parse standard options */ ! if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); } ! setup(); /* global setup */ /* The following loop checks looping state if -i option given */ --- 70,92 ---- extern int Tst_count; ! int sem_id_1 = -1; /* a semaphore set with read & alter permissions */ struct sembuf sops[PSEMS]; /* an array of sembuf structures */ int main(int ac, char **av) { ! union semun get_arr; ! int lc; /* loop counter */ ! char *msg; /* message returned from parse_opts */ int i; int fail = 0; ! get_arr.array = malloc(sizeof(unsigned short int) * PSEMS); /* parse standard options */ ! if ((msg = parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *)NULL) { tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); } ! setup(); /* global setup */ /* The following loop checks looping state if -i option given */ *************** *** 103,111 **** TEST(semop(sem_id_1, sops, NSEMS)); ! if (TEST_RETURN == -1) { ! tst_resm(TFAIL, "%s call failed - errno = %d " ! ": %s", TCID, TEST_ERRNO, ! strerror(TEST_ERRNO)); } else { if (STD_FUNCTIONAL_TEST) { --- 101,108 ---- TEST(semop(sem_id_1, sops, NSEMS)); ! if (TEST_RETURN == -1) { ! tst_resm(TFAIL, "%s call failed - errno = %d : %s", ! TCID, TEST_ERRNO, strerror(TEST_ERRNO)); } else { if (STD_FUNCTIONAL_TEST) { *************** *** 113,135 **** /* get the values and make sure they */ /* are the same as what was set */ ! if (semctl(sem_id_1, 0, GETALL, get_arr) == ! -1) { ! tst_brkm(TBROK, cleanup, "semctl() " ! "failed in functional test"); } ! for (i=0; i<NSEMS; i++) { ! if (get_arr.array[i] != i*i) { fail = 1; } } ! if (fail) { ! tst_resm(TFAIL, "semaphore values" ! " are not expected"); ! } else { ! tst_resm(TPASS, "semaphore values" ! " are correct"); ! } ! } else { tst_resm(TPASS, "call succeeded"); --- 110,127 ---- /* get the values and make sure they */ /* are the same as what was set */ ! if (semctl(sem_id_1, 0, GETALL, get_arr) == -1) { ! tst_brkm(TBROK, cleanup, "semctl() failed in functional test"); } ! for (i = 0; i < NSEMS; i++) { ! if (get_arr.array[i] != i * i) { fail = 1; } } ! if (fail) ! tst_resm(TFAIL, "semaphore values are wrong"); ! else ! tst_resm(TPASS, "semaphore values are correct"); ! } else { tst_resm(TPASS, "call succeeded"); *************** *** 137,147 **** } - /* * clean up things in case we are looping */ get_arr.val = 0; ! for (i=0; i<NSEMS; i++) { ! if(semctl(sem_id_1, i, SETVAL, get_arr) == -1) { tst_brkm(TBROK, cleanup, "semctl failed"); } --- 129,138 ---- } /* * clean up things in case we are looping */ get_arr.val = 0; ! for (i = 0; i < NSEMS; i++) { ! if (semctl(sem_id_1, i, SETVAL, get_arr) == -1) { tst_brkm(TBROK, cleanup, "semctl failed"); } *************** *** 151,156 **** cleanup(); ! /*NOTREACHED*/ ! return(0); } --- 142,146 ---- cleanup(); ! /*NOTREACHED*/ return (0); } *************** *** 158,163 **** * setup() - performs all the ONE TIME setup for this test. */ ! void ! setup(void) { int i; --- 148,152 ---- * setup() - performs all the ONE TIME setup for this test. */ ! void setup(void) { int i; *************** *** 180,192 **** /* create a semaphore set with read and alter permissions */ ! if ((sem_id_1 = ! semget(semkey, PSEMS, IPC_CREAT | IPC_EXCL | SEM_RA)) == -1) { tst_brkm(TBROK, cleanup, "couldn't create semaphore in setup"); ! } ! /* set up some values for the first four primitive semaphores */ ! for (i=0; i<NSEMS; i++){ sops[i].sem_num = i; ! sops[i].sem_op = i*i; /* 0, 1, 4, 9, */ sops[i].sem_flg = SEM_UNDO; } --- 169,180 ---- /* create a semaphore set with read and alter permissions */ ! sem_id_1 = semget(semkey, PSEMS, IPC_CREAT | IPC_EXCL | SEM_RA); ! if (sem_id_1 == -1) tst_brkm(TBROK, cleanup, "couldn't create semaphore in setup"); ! /* set up some values for the first four primitive semaphores */ ! for (i = 0; i < NSEMS; i++) { sops[i].sem_num = i; ! sops[i].sem_op = i * i; /* 0, 1, 4, 9, */ sops[i].sem_flg = SEM_UNDO; } *************** *** 197,202 **** * or premature exit. */ ! void ! cleanup(void) { /* if it exists, remove the semaphore resouce */ --- 185,189 ---- * or premature exit. */ ! void cleanup(void) { /* if it exists, remove the semaphore resouce */ *************** *** 215,217 **** tst_exit(); } - --- 202,203 ---- |