Date: Sun, 12 Apr 2015 12:29:35 +0000 (UTC) From: Garrett Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: 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 Message-ID: <201504121229.t3CCTZUg068396@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504121229.t3CCTZUg068396>