PERFORCE change 122751 for review

Zhouyi ZHOU zhouzhouyi at FreeBSD.org
Tue Jul 3 07:50:41 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=122751

Change 122751 by zhouzhouyi at zhouzhouyi_mactest on 2007/07/03 07:50:04

	adjustment for better handling of configuration file and unmatched case 
	warning

Affected files ...

.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.c#6 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#4 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/open/00.t#3 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/signal/01.t#2 edit

Differences ...

==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.c#6 (text+ko) ====

@@ -227,7 +227,7 @@
 usage(void)
 {
 
-	fprintf(stderr, "usage: mactest -m label_string syscall args ...\n");
+	fprintf(stderr, "usage: mactest -m label_string -f macconf_file syscall args ...\n");
 	exit(1);
 }
 
@@ -607,19 +607,23 @@
 	struct syscall_desc *scall;
 	unsigned int n,nread;
 	const char *label_string = NULL;
+	const char *macconf_file = NULL;
 	int pid,pid1;
 	int error;
 	int mactestpipefd, logfd;
 	char buf[2048];
 	int ch;
+	int notgood = 0;
 
 
-
-	while ((ch = getopt(argc, argv, "m:")) != -1) {
+	while ((ch = getopt(argc, argv, "m:f:")) != -1) {
 		switch(ch) {
 		case 'm':
 			label_string = optarg;
 			break;
+		case 'f':
+			macconf_file = optarg;
+			break;
 		default:
 			usage();
 		}
@@ -632,8 +636,12 @@
 		usage();
 	}
 	
+	if (macconf_file == NULL){
+		fprintf(stderr, "must supply macconf_file\n");
+		usage();
+	}
+	
 
-
 	if (mac_is_present(NULL) == 1) {
 	        mac_t label;
 
@@ -688,7 +696,7 @@
 		yyparse();
 		fclose(inputfile);
 		record_from_log = mactestlog_record_chain;
-		if ((inputfile = fopen("mactest.conf", "r")) == NULL){
+		if ((inputfile = fopen(macconf_file, "r")) == NULL){
 			fprintf(stderr, "mactest.conf do not exists!\n");
 			exit(1);
 		}
@@ -729,7 +737,8 @@
 			if (iterator)			
 				record_from_conf = record_from_conf->next;
 			else{
-				fprintf(stderr, "missing ...\n");
+				notgood = 1;
+				fprintf(stderr, "\n missing ...\n");
 				struct modes_or_flags *iterator1, *tmp1;
 				struct labelstrings *iterator2, *tmp2;
 		
@@ -766,12 +775,14 @@
 					}
 					fprintf(stderr, "\n");
 				}
-				exit(1);
+				record_from_conf = record_from_conf->next;
 			}	
 		}
 	}		
-	
-	exit(0);
+	if (notgood)
+		exit(1);
+	else
+		exit(0);
 }
 
 static const char *

==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#4 (text+ko) ====

@@ -39,19 +39,21 @@
 }
 
 
-mactestnotexpectanyerror()
+mactestexpect()
 {
-
+	e="${1}"
+	shift
 	${mactest} $* 2>${tmp_file} 1>>${tmp_file}
 	r=`cat ${tmp_file}`
-	echo "${r}" | egrep '^''0''$' >/dev/null 2>&1
-	if [ $? -eq 0 ] && [ ${#r} -eq 1 ] ; then
+	echo "${r}" | egrep '^'${e}'$' >/dev/null 2>&1
+	if [ $? -eq 0 ] && [ ${#r} -eq ${#e} ]; then
 		echo "ok ${ntest}"
 	else
 		echo ${r}
 		echo "not ok ${ntest}"
 	fi
 	ntest=`expr $ntest + 1`
+	rm ${tmp_file}
 }
 
 

==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/open/00.t#3 (text+ko) ====

@@ -6,7 +6,7 @@
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-echo "1..2"
+echo "1..4"
 
 n0=`namegen`
 n1=`namegen`
@@ -23,29 +23,76 @@
 
 if [ "${mac_mls_support}" != "" ] && [ "${mac_biba_support}" != "" ] ; then
     dvplabel=`getfmac ".."| sed 's/\(\.\.:\ \)\([a-z\,\/]*\)/\2/`; 
+
+#############################################################
+#case mkdir: 
 #examine the label of its parent directory
-    echo "pid = -1 mac_test_check_vnode_lookup: biba/high(low-high),mls/9(low-high) ${dvplabel}" > ${mactest_conf}
+    echo -n "pid = -1 mac_test_check_vnode_lookup:" > ${mactest_conf}
+    echo "biba/high(low-high),mls/8(low-high) ${dvplabel}" >> ${mactest_conf}
+
 #check the label of its parent directory
-    echo "pid = -1 mac_test_check_vnode_create: biba/high(low-high),mls/9(low-high) ${dvplabel}" >> ${mactest_conf}
+    echo -n "pid = -1 mac_test_check_vnode_create:" >> ${mactest_conf}
+    echo "biba/high(low-high),mls/8(low-high) ${dvplabel}" >> ${mactest_conf}
+
 #init the label of currently created vnode
     echo "pid = -1 mac_test_init_vnode_label" >> ${mactest_conf}
+
 #associate the extattr of newly created vnode
-    echo "pid = -1 mac_test_create_vnode_extattr: biba/high(low-high),mls/9(low-high) * ${dvplabel} biba/high,mls/9" >> ${mactest_conf}
-    mactestnotexpectanyerror  -m "mls/9(low-high)"  mkdir ${n1}  0755
-    rm ${mactest_conf}
+    echo -n "pid = -1 mac_test_create_vnode_extattr:" >> ${mactest_conf}
+    echo "biba/high(low-high),mls/8(low-high) * ${dvplabel} biba/high,mls/8" >> ${mactest_conf}
+    mactestexpect 0  -m "mls/8(low-high)"  -f ${mactest_conf} mkdir ${n1}  0755
+
 
 
+#############################################################
+#case creative open: 
     cd ${n1}
-    echo "pid = -1 mac_test_check_vnode_lookup with cr_label and dvplabel:biba/high(low-high),mls/9(low-high) biba/high,mls/9" > ${mactest_conf}
-    echo "pid = -1 mac_test_check_vnode_create with cr_label and dvplabel:biba/high(low-high),mls/9(low-high) biba/high,mls/9" >> ${mactest_conf}
+    echo -n "pid = -1 mac_test_check_vnode_lookup:" > ${mactest_conf}
+    echo "biba/high(low-high),mls/9(low-high) biba/high,mls/8" >> ${mactest_conf}
+
+    echo -n "pid = -1 mac_test_check_vnode_create:" >> ${mactest_conf}
+    echo "biba/high(low-high),mls/9(low-high) biba/high,mls/8" >> ${mactest_conf}
+
     echo "pid = -1 mac_test_init_vnode_label" >> ${mactest_conf}
-    echo "pid = -1 mac_test_create_vnode_extattr with cr_label mplabel dvplabel and vplabel:biba/high(low-high),mls/9(low-high) biba/high,mls/low biba/high,mls/9 biba/high,mls/9" >> ${mactest_conf}
-    echo "pid = -1 mac_test_check_vnode_open with acc_mode and cr_label and vplabel#VWRITE :biba/high(low-high),mls/9(low-high) biba/high,mls/9" >> ${mactest_conf}
-    mv ${mactest_conf} "mactest.conf"
-    mactestnotexpectanyerror -m "mls/9(low-high)" open ${n0} O_CREAT,O_WRONLY 0755
-    rm "mactest.conf"
+
+    echo -n "pid = -1 mac_test_create_vnode_extattr:" >> ${mactest_conf}
+    echo "biba/high(low-high),mls/9(low-high) biba/high,mls/low biba/high,mls/8 biba/high,mls/9" >> ${mactest_conf}
+
+    echo -n "pid = -1 mac_test_check_vnode_open#VWRITE :" >> ${mactest_conf}
+    echo "biba/high(low-high),mls/9(low-high) biba/high,mls/9" >> ${mactest_conf}
+
+    mactestexpect 0 -m "mls/9(low-high)" -f ${mactest_conf} open ${n0} O_CREAT,O_WRONLY 0755
+
+
+
+#############################################################
+#case lstat:
+#dvplabel is mls/8
+    echo -n "pid = -1 mac_test_check_vnode_lookup with cr_label and dvplabel:" > ${mactest_conf}
+    echo "biba/high(low-high),mls/high(low-high) biba/high,mls/8" >> ${mactest_conf}
+
+#no file label
+    echo -n "pid = -1 mac_test_check_vnode_stat with cred label, file label and vplabel:" >> ${mactest_conf} 
+    echo "biba/high(low-high),mls/high(low-high) NULL biba/high,mls/9" >> ${mactest_conf}
+    mactestexpect regular,0755 -m "mls/high" -f ${mactest_conf} lstat ${n0} type,mode
+
+
+#############################################################
+#case unlink:
+#This case will show complex of access control for mls directory structure
+#dvplabel is mls/8
+    echo -n "pid = -1 mac_test_check_vnode_lookup with cr_label and dvplabel:" > ${mactest_conf}
+    echo "biba/high(low-high),mls/6(low-high) biba/high,mls/8" >> ${mactest_conf}
+
+#the hook for delete
+    echo -n "pid = -1 mac_test_check_vnode_delete with cr_label dvplabel and vplabel:" >> ${mactest_conf}
+    echo "biba/high(low-high),mls/6(low-high) biba/high,mls/8 biba/high,mls/9" >> ${mactest_conf}
 
+    echo "pid = -1 mac_test_destroy_vnode_label" >> ${mactest_conf}
+    mactestexpect 0 -m "mls/6" -f ${mactest_conf} unlink ${n0}
     cd ..
+
+#cleanup:
     rm -fr ${n1}
 fi
 

==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/signal/01.t#2 (text+ko) ====

@@ -7,7 +7,6 @@
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-mactest_conf="mactest.conf"
 
 
 #turn off all the switches
@@ -23,13 +22,12 @@
     maccmdnotexpectanyerror "mls/3(2-7)" ${macproc} -w 100 -f "${pid_file}"
     getmacprocpid
 
-    echo "pid = -1 mac_test_check_proc_signal with cr_label and proc label: biba/high(low-high),mls/9(low-high) biba/high(low-high),mls/3(2-7)" > ${mactest_conf}
+    echo "pid = -1 mac_test_check_proc_signal with cr_label and proc label: biba/high(low-high),mls/9(low-high) mls/3(2-7),biba/high(low-high)" > ${mactest_conf}
 
-    mactestnotexpectanyerror  -m "mls/9"  kill ${pid}  9
+    mactestexpect 0  -m "mls/9" -f ${mactest_conf}  kill ${pid}  9
     
     rm ${mactest_conf}
     rm ${pid_file}
-    rm ${tmp_file}
 fi
 
 


More information about the p4-projects mailing list