svn commit: r281464 - in user/ngie/more-tests: etc/mtree tests/sys/kern tests/sys/kern/execve tests/sys/kern/execve/tests tools/regression/execve

Garrett Cooper ngie at FreeBSD.org
Sun Apr 12 12:29:40 UTC 2015


Author: ngie
Date: Sun Apr 12 12:29:34 2015
New Revision: 281464
URL: https://svnweb.freebsd.org/changeset/base/281464

Log:
  Integrate tools/regression/execve into the FreeBSD test suite as tests/sys/kern/execve

Added:
  user/ngie/more-tests/tests/sys/kern/execve/
     - copied from r281446, user/ngie/more-tests/tools/regression/execve/
  user/ngie/more-tests/tests/sys/kern/execve/bad_interp_len
     - copied unchanged from r281446, user/ngie/more-tests/tools/regression/execve/tests/badinterplen
  user/ngie/more-tests/tests/sys/kern/execve/devnullscript
     - copied unchanged from r281446, user/ngie/more-tests/tools/regression/execve/tests/devnullscript
  user/ngie/more-tests/tests/sys/kern/execve/execve_helper.c
     - copied, changed from r281446, user/ngie/more-tests/tools/regression/execve/doexec.c
  user/ngie/more-tests/tests/sys/kern/execve/execve_test.sh
     - copied, changed from r281446, user/ngie/more-tests/tools/regression/execve/execve.t
  user/ngie/more-tests/tests/sys/kern/execve/good_aout.c
     - copied, changed from r281446, user/ngie/more-tests/tools/regression/execve/tests/goodaout.c
  user/ngie/more-tests/tests/sys/kern/execve/good_script
     - copied, changed from r281446, user/ngie/more-tests/tools/regression/execve/tests/goodscript
  user/ngie/more-tests/tests/sys/kern/execve/non_exist_shell
     - copied unchanged from r281446, user/ngie/more-tests/tools/regression/execve/tests/nonexistshell
  user/ngie/more-tests/tests/sys/kern/execve/scriptarg
     - copied unchanged from r281446, user/ngie/more-tests/tools/regression/execve/tests/scriptarg
  user/ngie/more-tests/tests/sys/kern/execve/scriptarg-nospace
     - copied unchanged from r281446, user/ngie/more-tests/tools/regression/execve/tests/scriptarg-nospace
Deleted:
  user/ngie/more-tests/tests/sys/kern/execve/doexec.c
  user/ngie/more-tests/tests/sys/kern/execve/execve.t
  user/ngie/more-tests/tests/sys/kern/execve/tests/
  user/ngie/more-tests/tools/regression/execve/
Modified:
  user/ngie/more-tests/etc/mtree/BSD.tests.dist
  user/ngie/more-tests/tests/sys/kern/Makefile
  user/ngie/more-tests/tests/sys/kern/execve/Makefile

Modified: user/ngie/more-tests/etc/mtree/BSD.tests.dist
==============================================================================
--- user/ngie/more-tests/etc/mtree/BSD.tests.dist	Sun Apr 12 11:23:59 2015	(r281463)
+++ user/ngie/more-tests/etc/mtree/BSD.tests.dist	Sun Apr 12 12:29:34 2015	(r281464)
@@ -359,6 +359,8 @@
         file
         ..
         kern
+            execve
+            ..
         ..
         kqueue
         ..

Modified: user/ngie/more-tests/tests/sys/kern/Makefile
==============================================================================
--- user/ngie/more-tests/tests/sys/kern/Makefile	Sun Apr 12 11:23:59 2015	(r281463)
+++ user/ngie/more-tests/tests/sys/kern/Makefile	Sun Apr 12 12:29:34 2015	(r281464)
@@ -10,4 +10,6 @@ LDADD.unix_seqpacket_test+=		-lpthread
 
 WARNS?=	5
 
+TESTS_SUBDIRS+=	execve
+
 .include <bsd.test.mk>

Modified: user/ngie/more-tests/tests/sys/kern/execve/Makefile
==============================================================================
--- user/ngie/more-tests/tools/regression/execve/Makefile	Sun Apr 12 01:14:43 2015	(r281446)
+++ user/ngie/more-tests/tests/sys/kern/execve/Makefile	Sun Apr 12 12:29:34 2015	(r281464)
@@ -1,70 +1,37 @@
-# $FreeBSD$
+TESTSDIR=	${TESTSBASE}/sys/kern/execve
 
-PROG=	doexec
-MAN=
-
-RP=	./${PROG}
-TD=	${.CURDIR}/tests
-
-TESTSCRIPTS=	nonexistshell devnullscript badinterplen goodscript \
-		scriptarg scriptarg-nospace
-CLEANFILES=	goodaout truncaout sparseaout empty ${TESTSCRIPTS}
-
-all:		${PROG} goodaout ${TESTSCRIPTS}
-
-.for x in ${TESTSCRIPTS}
-${x}: ${TD}/${x}
-	${CP} ${TD}/${x} .
-	chmod +x ${x}
-.endfor
+BINDIR=		${TESTSDIR}
 
-regress:	test-empty test-nonexist test-nonexistshell \
-		test-devnullscript test-badinterplen test-goodscript \
-		test-scriptarg test-scriptarg-nospace test-goodaout \
-		test-truncaout test-sparseaout
-
-test-empty:	${PROG}
-	rm -f empty
-	touch empty
-	chmod +x empty
-	${RP} empty | grep 'Exec format error'
-
-test-nonexist:	${PROG}
-	${RP} ${TD}/nonexistent | grep 'No such file or directory'
-
-test-nonexistshell: ${PROG} nonexistshell
-	${RP} nonexistshell | grep 'No such file or directory'
-
-test-devnullscript: ${PROG} devnullscript
-	${RP} devnullscript | grep 'Permission denied'
+MAN=
 
-test-badinterplen: ${PROG} badinterplen
-	${RP} badinterplen | grep 'No such file or directory'
+ATF_TESTS_SH+=	execve_test
 
-test-goodscript: ${PROG} goodscript
-	${RP} goodscript | grep 'succeeded'
+PROGS+=		good_aout
+PROGS+=		execve_helper
 
-test-scriptarg: ${PROG} scriptarg
-	${RP} scriptarg 2>&1 | grep '+ echo succeeded'
+LDFLAGS.goodaout+=	-static
 
-test-scriptarg-nospace: ${PROG} scriptarg-nospace
-	${RP} scriptarg-nospace 2>&1 | grep '+ echo succeeded'
+CLEANFILES+=	empty
+CLEANFILES+=	sparse_aout
+CLEANFILES+=	trunc_aout
 
-goodaout: ${TD}/goodaout.c
-	${CC} -static -o ${.TARGET} ${TD}/goodaout.c
+SCRIPTS+=	bad_interp_len
+SCRIPTS+=	dev_null_script
+SCRIPTS+=	empty
+SCRIPTS+=	good_script
+SCRIPTS+=	non_exist_shell
+SCRIPTS+=	script_arg
+SCRIPTS+=	script_arg_nospace
+SCRIPTS+=	sparse_aout
+SCRIPTS+=	trunc_aout
 
-test-goodaout: ${PROG} goodaout
-	${RP} goodaout | grep 'succeeded'
+empty:
+	@touch $@
 
-test-truncaout: ${PROG} goodaout
-	truncate -s 16 truncaout
-	chmod a+x truncaout
-	${RP} truncaout | grep 'Exec format error'
+sparse_aout:
+	@truncate -s 20480 $@
 
-test-sparseaout: ${PROG}
-	/bin/rm -rf sparseaout
-	truncate -s 20480 sparseaout
-	chmod a+x sparseaout
-	${RP} sparseaout | grep 'Exec format error'
+trunc_aout:
+	@truncate -s 16 $@
 
-.include <bsd.prog.mk>
+.include <bsd.test.mk>

Copied: user/ngie/more-tests/tests/sys/kern/execve/bad_interp_len (from r281446, user/ngie/more-tests/tools/regression/execve/tests/badinterplen)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ngie/more-tests/tests/sys/kern/execve/bad_interp_len	Sun Apr 12 12:29:34 2015	(r281464, copy of r281446, user/ngie/more-tests/tools/regression/execve/tests/badinterplen)
@@ -0,0 +1,4 @@
+#! 456789012345678 0123456789012345 789012345678 012345678901234 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 12345678
 90 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
+# $FreeBSD$
+
+echo succeeded

Copied: user/ngie/more-tests/tests/sys/kern/execve/devnullscript (from r281446, user/ngie/more-tests/tools/regression/execve/tests/devnullscript)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ngie/more-tests/tests/sys/kern/execve/devnullscript	Sun Apr 12 12:29:34 2015	(r281464, copy of r281446, user/ngie/more-tests/tools/regression/execve/tests/devnullscript)
@@ -0,0 +1,4 @@
+#! /dev/null
+# $FreeBSD$
+
+echo succeeded

Copied and modified: user/ngie/more-tests/tests/sys/kern/execve/execve_helper.c (from r281446, user/ngie/more-tests/tools/regression/execve/doexec.c)
==============================================================================
--- user/ngie/more-tests/tools/regression/execve/doexec.c	Sun Apr 12 01:14:43 2015	(r281446, copy source)
+++ user/ngie/more-tests/tests/sys/kern/execve/execve_helper.c	Sun Apr 12 12:29:34 2015	(r281464)
@@ -34,25 +34,21 @@
  * $FreeBSD$
  */
 
+#include <err.h>
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
 #include <unistd.h>
 
 int
-main(argc, argv)
-	int argc;
-	char *argv[];
+main(int argc, char **argv)
 {
+
 	if (argc != 2) {
 		fprintf(stderr, "usage: %s <progname>\n", argv[0]);
 		exit(2);
 	}
 
-	unsetenv("LANG");	/* we compare C error strings */
-	if (execve(argv[1], &argv[1], NULL) == -1) {
-		printf("%s\n", strerror(errno));
-		exit(1);
-	}
+	execve(argv[1], &argv[1], NULL);
+	err(1, "");
 }

Copied and modified: user/ngie/more-tests/tests/sys/kern/execve/execve_test.sh (from r281446, user/ngie/more-tests/tools/regression/execve/execve.t)
==============================================================================
--- user/ngie/more-tests/tools/regression/execve/execve.t	Sun Apr 12 01:14:43 2015	(r281446, copy source)
+++ user/ngie/more-tests/tests/sys/kern/execve/execve_test.sh	Sun Apr 12 12:29:34 2015	(r281464)
@@ -1,27 +1,115 @@
-#!/bin/sh
-# $FreeBSD$
 
-cd `dirname $0`
-cmd="./`basename $0 .t`"
+bad_interp_len_head()
+{
+	atf_set "descr" "Bad interpreter length"
+}
+bad_interp_len_body()
+{
+	atf_check -s exit:1 -e 'match:No such file or directory' -o empty \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper bad_interp_len"
+}
+
+empty_head()
+{
+	atf_set "descr" "Empty file"
+}
+empty_body()
+{
+	atf_check -s exit:1 -e 'match:Exec format error' -o empty \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper empty"
+}
+
+good_aout_head()
+{
+	atf_set "descr" "Good a.out"
+}
+good_aout_body()
+{
+	atf_check -s exit:0 -e empty -o 'match:succeeded' \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper ./good_aout"
+}
+
+good_script_head()
+{
+	atf_set "descr" "Good script"
+}
+good_script_body()
+{
+	atf_check -s exit:0 -e empty -o 'match:succeeded' \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper good_script"
+}
+
+non_exist_head()
+{
+	atf_set "descr" "Non-existent file"
+}
+non_exist_body()
+{
+	atf_check -s exit:1 -e 'match:No such file or directory' -o empty \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper non_exist"
+}
+
+non_exist_shell_head()
+{
+	atf_set "descr" "Non-existent shell"
+}
+non_exist_shell_body()
+{
+	atf_check -s exit:1 -e 'match:No such file or directory' -o empty \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper non_exist_shell"
+}
+
+script_arg_head()
+{
+	atf_set "descr" "-x in the shebang"
+}
+script_arg_body()
+{
+	atf_check -s exit:0 -e 'match:\+ echo succeeded' -o 'match:succeeded' \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper script_arg"
+}
+
+script_arg_nospace_head()
+{
+	atf_set "descr" '-x in the shebang; no space between #! and /bin/sh'
+}
+script_arg_nospace_body()
+{
+	atf_check -s exit:0 -e 'match:\+ echo succeeded' -o 'match:succeeded' \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper script_arg_nospace"
+}
+
+sparse_aout_head()
+{
+	atf_set "descr" 'Sparse file'
+}
+sparse_aout_body()
+{
+	atf_check -s exit:1 -e 'match:Exec format error' -o empty \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper sparse_aout"
+}
+
+trunc_aout_head()
+{
+	atf_set "descr" 'Truncated file'
+}
+trunc_aout_body()
+{
+	atf_check -s exit:1 -e 'match:Exec format error' -o empty \
+	    -x "cd $(atf_get_srcdir) && ./execve_helper trunc_aout"
+}
+
+atf_init_test_cases()
+{
+	atf_add_test_case bad_interp_len
+	atf_add_test_case empty
+	atf_add_test_case good_aout
+	atf_add_test_case good_script
+	atf_add_test_case non_exist
+	atf_add_test_case non_exist_shell
+	atf_add_test_case script_arg
+	atf_add_test_case script_arg_nospace
+	atf_add_test_case sparse_aout
+	atf_add_test_case trunc_aout
 
-make >/dev/null 2>&1
-
-tests="test-empty test-nonexist test-nonexistshell \
-	test-devnullscript test-badinterplen test-goodscript \
-	test-scriptarg test-scriptarg-nospace test-goodaout \
-	test-truncaout test-sparseaout"
-
-n=0
-
-echo "1..11"
-
-for atest in ${tests}
-do
-	n=`expr ${n} + 1`
-	if make ${atest}
-	then
-		echo "ok ${n} - ${atest}"
-	else
-		echo "not ok ${n} - ${atest}"
-	fi
-done
+}

Copied and modified: user/ngie/more-tests/tests/sys/kern/execve/good_aout.c (from r281446, user/ngie/more-tests/tools/regression/execve/tests/goodaout.c)
==============================================================================
--- user/ngie/more-tests/tools/regression/execve/tests/goodaout.c	Sun Apr 12 01:14:43 2015	(r281446, copy source)
+++ user/ngie/more-tests/tests/sys/kern/execve/good_aout.c	Sun Apr 12 12:29:34 2015	(r281464)
@@ -38,9 +38,7 @@
 #include <stdlib.h>
 
 int
-main(argc, argv)
-	int argc;
-	char *argv[];
+main(void)
 {
 	printf("succeeded\n");
 	exit(0);

Copied and modified: user/ngie/more-tests/tests/sys/kern/execve/good_script (from r281446, user/ngie/more-tests/tools/regression/execve/tests/goodscript)
==============================================================================
--- user/ngie/more-tests/tools/regression/execve/tests/goodscript	Sun Apr 12 01:14:43 2015	(r281446, copy source)
+++ user/ngie/more-tests/tests/sys/kern/execve/good_script	Sun Apr 12 12:29:34 2015	(r281464)
@@ -1,4 +1,4 @@
-#! /bin/csh
+#!/bin/sh
 # $FreeBSD$
 
 echo succeeded

Copied: user/ngie/more-tests/tests/sys/kern/execve/non_exist_shell (from r281446, user/ngie/more-tests/tools/regression/execve/tests/nonexistshell)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ngie/more-tests/tests/sys/kern/execve/non_exist_shell	Sun Apr 12 12:29:34 2015	(r281464, copy of r281446, user/ngie/more-tests/tools/regression/execve/tests/nonexistshell)
@@ -0,0 +1,4 @@
+#! /foo/bar/baz
+# $FreeBSD$
+
+echo foo

Copied: user/ngie/more-tests/tests/sys/kern/execve/scriptarg (from r281446, user/ngie/more-tests/tools/regression/execve/tests/scriptarg)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ngie/more-tests/tests/sys/kern/execve/scriptarg	Sun Apr 12 12:29:34 2015	(r281464, copy of r281446, user/ngie/more-tests/tools/regression/execve/tests/scriptarg)
@@ -0,0 +1,4 @@
+#! /bin/sh -x
+# $FreeBSD$
+
+echo succeeded

Copied: user/ngie/more-tests/tests/sys/kern/execve/scriptarg-nospace (from r281446, user/ngie/more-tests/tools/regression/execve/tests/scriptarg-nospace)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ngie/more-tests/tests/sys/kern/execve/scriptarg-nospace	Sun Apr 12 12:29:34 2015	(r281464, copy of r281446, user/ngie/more-tests/tools/regression/execve/tests/scriptarg-nospace)
@@ -0,0 +1,4 @@
+#!/bin/sh -x
+# $FreeBSD$
+
+echo succeeded


More information about the svn-src-user mailing list