PERFORCE change 122848 for review
Zhouyi ZHOU
zhouzhouyi at FreeBSD.org
Wed Jul 4 11:09:36 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=122848
Change 122848 by zhouzhouyi at zhouzhouyi_mactest on 2007/07/04 11:08:58
Add new test cases, especially the mac command test cases
Affected files ...
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.c#7 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#5 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/open/00.t#4 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/open/01.t#1 add
Differences ...
==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.c#7 (text+ko) ====
@@ -62,6 +62,8 @@
enum action {
ACTION_KILL,
+ ACTION_SETFMAC,
+ ACTION_GETFMAC,
ACTION_OPEN,
ACTION_CREATE,
ACTION_UNLINK,
@@ -104,6 +106,8 @@
static struct syscall_desc syscalls[] = {
{ "kill", ACTION_KILL, { TYPE_NUMBER, TYPE_NUMBER, TYPE_NONE } },
+ { "setfmac", ACTION_SETFMAC, { TYPE_STRING, TYPE_STRING, TYPE_NONE }},
+ { "getfmac", ACTION_GETFMAC, { TYPE_STRING, TYPE_NONE }},
{ "open", ACTION_OPEN, { TYPE_STRING, TYPE_STRING, TYPE_NUMBER | TYPE_OPTIONAL, TYPE_NONE } },
{ "create", ACTION_CREATE, { TYPE_STRING, TYPE_NUMBER, TYPE_NONE } },
{ "unlink", ACTION_UNLINK, { TYPE_STRING, TYPE_NONE } },
@@ -415,7 +419,22 @@
switch (scall->sd_action) {
case ACTION_KILL:
rval = kill(NUM(0),NUM(1));
- break;
+ break;
+ case ACTION_SETFMAC:
+ {
+ char shcmd[1024];
+ sprintf(shcmd, "setfmac %s %s", STR(0), STR(1));
+ rval = system(shcmd);
+ break;
+ }
+ case ACTION_GETFMAC:
+ {
+ char shcmd[1024];
+ int i = 0;
+ i = sprintf(shcmd, "getfmac %s", STR(0));
+ rval = system(shcmd);
+ return (i);
+ }
case ACTION_OPEN:
flags = str2flags(open_flags, STR(1));
if (flags & O_CREAT) {
@@ -709,14 +728,17 @@
/* See if record_from_conf is contained in record_from_log */
/* pid == -1 means matching the running pid */
pid = getpid();
+
while (record_from_conf) {
struct mactestlog_record * iterator = record_from_log;
while (iterator) {
- if (!(((record_from_conf->pid == -1)&& iterator->pid == pid)||
- record_from_conf->pid == iterator->pid)){
+ if (!((record_from_conf->pid == -1&& iterator->pid == pid)||
+ record_from_conf->pid == iterator->pid||
+ record_from_conf->pid == -2/*matching any pid*/)){
iterator = iterator->next;
continue;
}
+
if (strcmp(record_from_conf->machookname, iterator->machookname))
{
iterator = iterator->next;
@@ -741,7 +763,6 @@
fprintf(stderr, "\n missing ...\n");
struct modes_or_flags *iterator1, *tmp1;
struct labelstrings *iterator2, *tmp2;
-
fprintf(stderr, "pid = %d ", record_from_conf->pid);
fprintf(stderr, "hookname: %s\n", record_from_conf->machookname);
@@ -751,7 +772,7 @@
tmp1 = iterator1;
iterator1 = iterator1->next;
}
- fprintf(stderr, " with modes or flags:");
+ fprintf(stderr, " with modes or flags#");
while (tmp1) {
fprintf(stderr, " %s", tmp1->modflagname);
tmp1 = tmp1->prev;
==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#5 (text+ko) ====
@@ -56,6 +56,24 @@
rm ${tmp_file}
}
+mactestexpect1()
+{
+ e="${1}"
+ shift
+ ${mactest} $* 2>${tmp_file} 1>>${tmp_file}
+ r=`cat ${tmp_file}`
+ echo "${r}" | grep ${e} >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ echo "ok ${ntest}"
+ else
+ echo ${r}
+ echo "not ok ${ntest}"
+ fi
+ ntest=`expr $ntest + 1`
+ rm ${tmp_file}
+}
+
+
maccmdexpect()
{
==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/open/00.t#4 (text+ko) ====
@@ -1,12 +1,12 @@
#!/bin/sh
-# $FreeBSD: src/tools/regression/fstest/tests/open/00.t,v 1.2 2007/01/25 20:50:02 pjd Exp $
-
+# $FreeBSD: src/tools/regression/mactest/tests/open/00.t,v 1.2 2007/01/25 20:50:02 pjd Exp $
+# test of open related system calls
desc="open opens (and eventually creates) a file"
dir=`dirname $0`
. ${dir}/../misc.sh
-echo "1..4"
+echo "1..7"
n0=`namegen`
n1=`namegen`
@@ -77,6 +77,19 @@
mactestexpect regular,0755 -m "mls/high" -f ${mactest_conf} lstat ${n0} type,mode
+
+#############################################################
+#case setflags:
+ echo -n "pid = -1 mac_test_check_vnode_lookup with cr_label and dvplabel:" > ${mactest_conf}
+ echo "biba/high(low-high),mls/low(low-high) biba/high,mls/8" >> ${mactest_conf}
+
+ echo -n "pid = -1 mac_test_check_vnode_setflags with cr_label and vplabel:" > ${mactest_conf}
+ echo "biba/high(low-high),mls/low(low-high) biba/high,mls/9" >> ${mactest_conf}
+ mactestexpect 0 -f ${mactest_conf} chflags ${n0} SF_IMMUTABLE
+ mactestexpect 0 -f ${mactest_conf} chflags ${n0} none
+
+
+
#############################################################
#case unlink:
#This case will show complex of access control for mls directory structure
@@ -90,9 +103,20 @@
echo "pid = -1 mac_test_destroy_vnode_label" >> ${mactest_conf}
mactestexpect 0 -m "mls/6" -f ${mactest_conf} unlink ${n0}
- cd ..
+
+
+#############################################################
+#case chown:
+ echo -n "pid = -1 mac_test_check_vnode_lookup:" > ${mactest_conf}
+ echo "biba/high(low-high),mls/5(low-high) biba/high,mls/8" >> ${mactest_conf}
+
+ echo -n "pid = -1 mac_test_check_vnode_setowner with cr_label and vplabel:" >> ${mactest_conf}
+ echo "biba/high(low-high),mls/5(low-high) biba/high,mls/8" >> ${mactest_conf}
+
+ mactestexpect 0 -m "mls/5" -f ${mactest_conf} chown . 65535 65535
#cleanup:
+ cd ..
rm -fr ${n1}
fi
More information about the p4-projects
mailing list