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