add a test to check that the interpreter is preserved when executing scripts.

This commit is contained in:
christos 2017-12-06 13:54:26 +00:00
parent c084bfdff8
commit f2c3026d0a
2 changed files with 47 additions and 1 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.46 2017/04/03 05:06:28 kamil Exp $
# $NetBSD: Makefile,v 1.47 2017/12/06 13:54:26 christos Exp $
NOMAN= # defined
@ -19,6 +19,7 @@ TESTS_C+= t_sysctl
TESTS_SH= t_umount
TESTS_SH+= t_umountstress
TESTS_SH+= t_ps_strings
TESTS_SH+= t_interp
BINDIR= ${TESTSDIR}
PROGS= h_ps_strings1

45
tests/kernel/t_interp.sh Normal file
View File

@ -0,0 +1,45 @@
# $NetBSD: t_interp.sh,v 1.1 2017/12/06 13:54:26 christos Exp $
#
# This code is derived from software contributed to The NetBSD Foundation
# by Christos Zoulas.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
atf_test_case procfs_interp
procfs_interp_head() {
atf_set "descr" "Tests the exe name in procfs is correct"
}
procfs_interp_body() {
atf_require_prog readlink
if [ ! -d /proc/curproc/. ]; then
atf_skip "procfs not mounted"
return
fi
local me=$(readlink /proc/$$/exe)
if [ "$me" != "/bin/sh" ]; then
atf_fail "Interpreter is not '/bin/sh': '$me'"
fi
}
atf_init_test_cases() {
atf_add_test_case procfs_interp
}