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