PERFORCE change 131570 for review
Zhouyi ZHOU
zhouzhouyi at FreeBSD.org
Mon Dec 24 23:16:28 PST 2007
http://perforce.freebsd.org/chv.cgi?CH=131570
Change 131570 by zhouzhouyi at 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"
More information about the p4-projects
mailing list