xref: /minix3/tests/lib/librumphijack/t_cwd.sh (revision 11be35a165022172ed3cea20f2b5df0307540b0e)
1*11be35a1SLionel Sambuc#       $NetBSD: t_cwd.sh,v 1.2 2011/02/19 19:57:28 pooka Exp $
2*11be35a1SLionel Sambuc#
3*11be35a1SLionel Sambuc# Copyright (c) 2011 The NetBSD Foundation, Inc.
4*11be35a1SLionel Sambuc# All rights reserved.
5*11be35a1SLionel Sambuc#
6*11be35a1SLionel Sambuc# Redistribution and use in source and binary forms, with or without
7*11be35a1SLionel Sambuc# modification, are permitted provided that the following conditions
8*11be35a1SLionel Sambuc# are met:
9*11be35a1SLionel Sambuc# 1. Redistributions of source code must retain the above copyright
10*11be35a1SLionel Sambuc#    notice, this list of conditions and the following disclaimer.
11*11be35a1SLionel Sambuc# 2. Redistributions in binary form must reproduce the above copyright
12*11be35a1SLionel Sambuc#    notice, this list of conditions and the following disclaimer in the
13*11be35a1SLionel Sambuc#    documentation and/or other materials provided with the distribution.
14*11be35a1SLionel Sambuc#
15*11be35a1SLionel Sambuc# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
16*11be35a1SLionel Sambuc# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17*11be35a1SLionel Sambuc# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18*11be35a1SLionel Sambuc# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
19*11be35a1SLionel Sambuc# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20*11be35a1SLionel Sambuc# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21*11be35a1SLionel Sambuc# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22*11be35a1SLionel Sambuc# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23*11be35a1SLionel Sambuc# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24*11be35a1SLionel Sambuc# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25*11be35a1SLionel Sambuc# POSSIBILITY OF SUCH DAMAGE.
26*11be35a1SLionel Sambuc#
27*11be35a1SLionel Sambuc
28*11be35a1SLionel Sambucrumpsrv='rump_server -lrumpvfs'
29*11be35a1SLionel Sambucexport RUMP_SERVER=unix://csock
30*11be35a1SLionel Sambuc
31*11be35a1SLionel Sambuctest_case()
32*11be35a1SLionel Sambuc{
33*11be35a1SLionel Sambuc	local name="${1}"; shift
34*11be35a1SLionel Sambuc
35*11be35a1SLionel Sambuc	atf_test_case "${name}" cleanup
36*11be35a1SLionel Sambuc	eval "${name}_head() {  }"
37*11be35a1SLionel Sambuc	eval "${name}_body() { \
38*11be35a1SLionel Sambuc		export RUMPHIJACK="path=${1}" ; \
39*11be35a1SLionel Sambuc		atf_check -s exit:0 ${rumpsrv} ${RUMP_SERVER} ; \
40*11be35a1SLionel Sambuc		testbody " "${@}" "; \
41*11be35a1SLionel Sambuc	}"
42*11be35a1SLionel Sambuc	eval "${name}_cleanup() { \
43*11be35a1SLionel Sambuc		rump.halt
44*11be35a1SLionel Sambuc	}"
45*11be35a1SLionel Sambuc}
46*11be35a1SLionel Sambuc
47*11be35a1SLionel Sambuctest_case basic_chdir /rump simple chdir
48*11be35a1SLionel Sambuctest_case basic_fchdir /rump simple fchdir
49*11be35a1SLionel Sambuctest_case slash_chdir // simple chdir
50*11be35a1SLionel Sambuctest_case slash_fchdir // simple fchdir
51*11be35a1SLionel Sambuctest_case symlink_chdir /rump symlink chdir
52*11be35a1SLionel Sambuctest_case symlink_fchdir /rump symlink fchdir
53*11be35a1SLionel Sambuctest_case symlink_slash_chdir // symlink chdir
54*11be35a1SLionel Sambuctest_case symlink_slash_fchdir // symlink fchdir
55*11be35a1SLionel Sambuc
56*11be35a1SLionel Sambuctestbody()
57*11be35a1SLionel Sambuc{
58*11be35a1SLionel Sambuc	atf_check -s exit:0 env LD_PRELOAD=/usr/lib/librumphijack.so \
59*11be35a1SLionel Sambuc	    $(atf_get_srcdir)/h_cwd $*
60*11be35a1SLionel Sambuc}
61*11be35a1SLionel Sambuc
62*11be35a1SLionel Sambucatf_init_test_cases()
63*11be35a1SLionel Sambuc{
64*11be35a1SLionel Sambuc	atf_add_test_case basic_chdir
65*11be35a1SLionel Sambuc	atf_add_test_case basic_fchdir
66*11be35a1SLionel Sambuc	atf_add_test_case slash_chdir
67*11be35a1SLionel Sambuc	atf_add_test_case slash_fchdir
68*11be35a1SLionel Sambuc	atf_add_test_case symlink_chdir
69*11be35a1SLionel Sambuc	atf_add_test_case symlink_fchdir
70*11be35a1SLionel Sambuc	atf_add_test_case symlink_slash_chdir
71*11be35a1SLionel Sambuc	atf_add_test_case symlink_slash_fchdir
72*11be35a1SLionel Sambuc}
73