Date: Tue, 25 Dec 2007 07:16:27 GMT From: Zhouyi ZHOU <zhouzhouyi@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 131570 for review Message-ID: <200712250716.lBP7GRY2045689@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=131570 Change 131570 by zhouzhouyi@zhouzhouyi_mactest on 2007/12/25 07:16:26 Test case for Mandatory Access Control of Ipv6 Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/macconf.c#3 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tcpconnect6.c#2 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#24 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/netinet6/00.t#1 add Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/macconf.c#3 (text+ko) ==== @@ -116,21 +116,25 @@ struct mactestlog_record *record_from_log, *record_from_conf; - if ((inputfile = fopen("/var/log/mactest", "r")) < 0) { - fprintf(stderr, "/var/log/mactest do not exists!\n"); + + if ((inputfile = fopen(macconf_file, "r")) == NULL) { + fprintf(stderr, "mactest.conf do not exists!\n"); exit(1); } + mactestlog_record_chain = 0; yyparse(); fclose(inputfile); - record_from_log = mactestlog_record_chain; - if ((inputfile = fopen(macconf_file, "r")) == NULL) { - fprintf(stderr, "mactest.conf do not exists!\n"); + record_from_conf = mactestlog_record_chain; + + if ((inputfile = fopen("/var/log/mactest", "r")) < 0) { + fprintf(stderr, "/var/log/mactest do not exists!\n"); exit(1); } mactestlog_record_chain = 0; yyparse(); fclose(inputfile); - record_from_conf = mactestlog_record_chain; + record_from_log = mactestlog_record_chain; + /* See if record_from_conf is contained in record_from_log */ /* pid == -1 means matching the running pid */ ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tcpconnect6.c#2 (text+ko) ==== @@ -48,9 +48,8 @@ #include <setjmp.h> #define MAXALARM (60 * 60) -key_t semkey, semkey1; +key_t semkey; int semid = -1; -int semid1 = -1; int keepaccept=1; u_long alarmtimeout = 0; int logfd; @@ -84,23 +83,20 @@ struct sockaddr_in6 server; char *dummy; int count = 0; - struct sembuf s, s1; - int semid, semid1; + struct sembuf s; + int semid; pid_t pid; struct sigaction si_sa; if ((semid = semget(semkey, 1, 0)) == -1) err(1, "waiter: semget"); - if ((semid1 = semget(semkey1, 1, 0)) == -1) - err(1, "waiter: semget"); - listen_sock = socket(AF_INET6, SOCK_STREAM, 0); if (listen_sock == -1) errx(-1, "socket: %s", strerror(errno)); + bzero (&server, sizeof(server)); -// bzero (&sin6, sizeof (sin6)); server.sin6_family = AF_INET6; bzero(server.sin6_addr.s6_addr,16); server.sin6_port = htons(port); @@ -111,27 +107,7 @@ if (listen(listen_sock, -1) == -1) errx(-1, "listen: %s", strerror(errno)); - if ((pid = fork()) == 0) { - /*Release the semaphore to let server go*/ - for (;;) { - int i; - i = semctl(semid, 0, GETNCNT); - if (i == -1) - err(1, "semctl GETNCNT"); - if (i == 1) - break; - } - s.sem_num = 0; - s.sem_op = 1; - s.sem_flg = SEM_UNDO; - if (semop(semid, &s, 1) == -1) - err(1, "waiter: semop +1"); - - exit(0); - } - - sigemptyset(&si_sa.sa_mask); si_sa.sa_flags = 0; @@ -144,26 +120,20 @@ } - s.sem_num = 0; - s.sem_op = -1; - s.sem_flg = SEM_UNDO; - - if (semop(semid, &s, 1) == -1) - err(1, "sever: semop -1"); /*Release the semaphore to let client go */ for (;;) { int i; - i = semctl(semid1, 0, GETNCNT); + i = semctl(semid, 0, GETNCNT); if (i == -1) err(1, "semctl GETNCNT"); if (i == 1) break; } - s1.sem_num = 0; - s1.sem_op = 1; - s1.sem_flg = SEM_UNDO; - if (semop(semid1, &s1, 1) == -1) + s.sem_num = 0; + s.sem_op = 1; + s.sem_flg = SEM_UNDO; + if (semop(semid, &s, 1) == -1) err(1, "waiter: semop +1"); while (keepaccept) { @@ -174,10 +144,7 @@ break; } - if (waitpid(pid, 0, 0) == -1){ - fprintf(stderr, "no bpf intercept"); - exit(1); - } + exit(0); } @@ -190,20 +157,10 @@ struct sockaddr_in6 server; struct hostent *hp; char buf[1024]; - struct sigaction si_sa; - count = 3; - sigemptyset(&si_sa.sa_mask); - si_sa.sa_flags = 0; + count = 1; - alarm((int)alarmtimeout); - - if (alarmtimeout > 0) { - si_sa.sa_handler = stopclient; - if (sigaction(SIGALRM, &si_sa, 0) == -1) - err(EX_OSERR, "sigaction SIGALRM"); - } for (i = 0; i < count; i++) { @@ -284,33 +241,17 @@ semkey = ftok(argv[0], 4160); - semkey1 = ftok(strcat(strdup(argv[0]),"hello4"), 4160); + if ((semid = semget(semkey, 1, IPC_CREAT | 0640)) == -1) err(1, "semget"); - if ((semid1 = semget(semkey1, 1, IPC_CREAT | 0640)) == -1) - err(1, "semget"); - - sun.val = 1; if (semctl(semid, 0, SETVAL, sun) == -1) err(1, "semctl SETVAL to 1"); - sun1.val = 1; - if (semctl(semid1, 0, SETVAL, sun1) == -1) - err(1, "semctl SETVAL to 1"); - - - s1.sem_num = 0; - s1.sem_op = -1; - s1.sem_flg = SEM_UNDO; - - if (semop(semid1, &s1, 1) == -1) - err(1, "waiter: semop -1"); - s.sem_num = 0; s.sem_op = -1; s.sem_flg = SEM_UNDO; @@ -328,25 +269,26 @@ tcpconnect_server(port); - s1.sem_num = 0; - s1.sem_op = -1; - s1.sem_flg = SEM_UNDO; + s.sem_num = 0; + s.sem_op = -1; + s.sem_flg = SEM_UNDO; - if (semop(semid1, &s1, 1) == -1) + if (semop(semid, &s, 1) == -1) err(1, "waiter: semop -1"); - - if(setjmp(place) == 0) - tcpconnect_client(port); + + usleep(500); + + tcpconnect_client(port); if (waitpid(pid, 0, 0) == -1) fprintf(stderr, "server error\n"); + close(logfd); if (semctl(semid, 0, IPC_RMID) == -1) warn("semctl IPC_RMID"); - if (semctl(semid1, 0, IPC_RMID) == -1) - warn("semctl IPC_RMID"); + machookmatch(macconf_file, getpid()); exit(0); } ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#24 (text+ko) ==== @@ -26,6 +26,7 @@ msgtest="${maindir}/msgtest" mmaptest="${maindir}/mmaptest" tcpconnect="${maindir}/tcpconnect" +tcpconnect6="${maindir}/tcpconnect6" ptrace="${maindir}/ptrace" posix_sem="${maindir}/posix_sem"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200712250716.lBP7GRY2045689>