From owner-svn-src-user@FreeBSD.ORG Sun Apr 12 12:29:40 2015 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 295CEB5E; Sun, 12 Apr 2015 12:29:40 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 127A9B6F; Sun, 12 Apr 2015 12:29:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3CCTdwD068414; Sun, 12 Apr 2015 12:29:39 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3CCTZUg068396; Sun, 12 Apr 2015 12:29:35 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201504121229.t3CCTZUg068396@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 12 Apr 2015 12:29:35 +0000 (UTC) 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 X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Apr 2015 12:29:40 -0000 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 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 +.include 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 #include #include #include -#include #include int -main(argc, argv) - int argc; - char *argv[]; +main(int argc, char **argv) { + if (argc != 2) { fprintf(stderr, "usage: %s \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 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