xref: /netbsd-src/tests/lib/librumphijack/t_cwd.sh (revision 91a9bf9486b2da76e9ec244f8f79b46dafbd923d)
1*91a9bf94Spooka#       $NetBSD: t_cwd.sh,v 1.2 2011/02/19 19:57:28 pooka Exp $
244ff4bdcSpooka#
344ff4bdcSpooka# Copyright (c) 2011 The NetBSD Foundation, Inc.
444ff4bdcSpooka# All rights reserved.
544ff4bdcSpooka#
644ff4bdcSpooka# Redistribution and use in source and binary forms, with or without
744ff4bdcSpooka# modification, are permitted provided that the following conditions
844ff4bdcSpooka# are met:
944ff4bdcSpooka# 1. Redistributions of source code must retain the above copyright
1044ff4bdcSpooka#    notice, this list of conditions and the following disclaimer.
1144ff4bdcSpooka# 2. Redistributions in binary form must reproduce the above copyright
1244ff4bdcSpooka#    notice, this list of conditions and the following disclaimer in the
1344ff4bdcSpooka#    documentation and/or other materials provided with the distribution.
1444ff4bdcSpooka#
1544ff4bdcSpooka# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
1644ff4bdcSpooka# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
1744ff4bdcSpooka# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1844ff4bdcSpooka# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
1944ff4bdcSpooka# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2044ff4bdcSpooka# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2144ff4bdcSpooka# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2244ff4bdcSpooka# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2344ff4bdcSpooka# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2444ff4bdcSpooka# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2544ff4bdcSpooka# POSSIBILITY OF SUCH DAMAGE.
2644ff4bdcSpooka#
2744ff4bdcSpooka
2844ff4bdcSpookarumpsrv='rump_server -lrumpvfs'
2944ff4bdcSpookaexport RUMP_SERVER=unix://csock
3044ff4bdcSpooka
31*91a9bf94Spookatest_case()
3244ff4bdcSpooka{
33*91a9bf94Spooka	local name="${1}"; shift
3444ff4bdcSpooka
35*91a9bf94Spooka	atf_test_case "${name}" cleanup
36*91a9bf94Spooka	eval "${name}_head() {  }"
37*91a9bf94Spooka	eval "${name}_body() { \
38*91a9bf94Spooka		export RUMPHIJACK="path=${1}" ; \
39*91a9bf94Spooka		atf_check -s exit:0 ${rumpsrv} ${RUMP_SERVER} ; \
40*91a9bf94Spooka		testbody " "${@}" "; \
41*91a9bf94Spooka	}"
42*91a9bf94Spooka	eval "${name}_cleanup() { \
4344ff4bdcSpooka		rump.halt
44*91a9bf94Spooka	}"
45*91a9bf94Spooka}
46*91a9bf94Spooka
47*91a9bf94Spookatest_case basic_chdir /rump simple chdir
48*91a9bf94Spookatest_case basic_fchdir /rump simple fchdir
49*91a9bf94Spookatest_case slash_chdir // simple chdir
50*91a9bf94Spookatest_case slash_fchdir // simple fchdir
51*91a9bf94Spookatest_case symlink_chdir /rump symlink chdir
52*91a9bf94Spookatest_case symlink_fchdir /rump symlink fchdir
53*91a9bf94Spookatest_case symlink_slash_chdir // symlink chdir
54*91a9bf94Spookatest_case symlink_slash_fchdir // symlink fchdir
55*91a9bf94Spooka
56*91a9bf94Spookatestbody()
57*91a9bf94Spooka{
58*91a9bf94Spooka	atf_check -s exit:0 env LD_PRELOAD=/usr/lib/librumphijack.so \
59*91a9bf94Spooka	    $(atf_get_srcdir)/h_cwd $*
6044ff4bdcSpooka}
6144ff4bdcSpooka
6244ff4bdcSpookaatf_init_test_cases()
6344ff4bdcSpooka{
64*91a9bf94Spooka	atf_add_test_case basic_chdir
65*91a9bf94Spooka	atf_add_test_case basic_fchdir
66*91a9bf94Spooka	atf_add_test_case slash_chdir
67*91a9bf94Spooka	atf_add_test_case slash_fchdir
68*91a9bf94Spooka	atf_add_test_case symlink_chdir
69*91a9bf94Spooka	atf_add_test_case symlink_fchdir
70*91a9bf94Spooka	atf_add_test_case symlink_slash_chdir
71*91a9bf94Spooka	atf_add_test_case symlink_slash_fchdir
7244ff4bdcSpooka}
73