t_exec.sh revision 272345
172445Sassar# $NetBSD: t_exec.sh,v 1.8 2011/03/08 12:40:25 pooka Exp $ 272445Sassar# 372445Sassar# Copyright (c) 2011 The NetBSD Foundation, Inc. 472445Sassar# All rights reserved. 572445Sassar# 672445Sassar# Redistribution and use in source and binary forms, with or without 772445Sassar# modification, are permitted provided that the following conditions 872445Sassar# are met: 972445Sassar# 1. Redistributions of source code must retain the above copyright 1072445Sassar# notice, this list of conditions and the following disclaimer. 1172445Sassar# 2. Redistributions in binary form must reproduce the above copyright 1272445Sassar# notice, this list of conditions and the following disclaimer in the 1372445Sassar# documentation and/or other materials provided with the distribution. 1472445Sassar# 15178825Sdfr# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 1672445Sassar# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 1772445Sassar# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1872445Sassar# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 1972445Sassar# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2072445Sassar# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2172445Sassar# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2272445Sassar# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2372445Sassar# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2472445Sassar# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2572445Sassar# POSSIBILITY OF SUCH DAMAGE. 2672445Sassar# 2772445Sassar 2872445Sassarrumpsrv='rump_server -lrumpnet -lrumpnet_net -lrumpnet_netinet' 2972445Sassarexport RUMP_SERVER=unix://csock 3072445Sassarexport RUMPHIJACK_RETRYCONNECT='die' 3172445Sassar 3272445Sassaratf_test_case noexec cleanup 3372445Sassarnoexec_head() 3472445Sassar{ 3572445Sassar atf_set "descr" "check that we see what we expect without exec" 3672445Sassar} 37178825Sdfr 38178825Sdfrnoexec_body() 39233294Sstas{ 40233294Sstas 41178825Sdfr atf_check -s exit:0 ${rumpsrv} ${RUMP_SERVER} 42178825Sdfr atf_check -s exit:0 env $(atf_get_srcdir)/h_exec 43233294Sstas atf_check -s exit:0 -o save:sstat.out rump.sockstat -n 44178825Sdfr atf_check -s exit:0 -o match:'^root.*h_exec.*tcp.*\*\.1234' \ 45178825Sdfr sed -n 2p sstat.out 46178825Sdfr atf_check -s exit:0 -o match:'^root.*h_exec.*tcp.*\*\.2345' \ 47178825Sdfr sed -n 3p sstat.out 48178825Sdfr} 49178825Sdfr 50178825Sdfrnoexec_cleanup() 5172445Sassar{ 5272445Sassar rump.halt 5372445Sassar} 5472445Sassar 5572445Sassaratf_test_case exec cleanup 5672445Sassarexec_head() 57178825Sdfr{ 58178825Sdfr atf_set "descr" "check that client names changes after exec" 5972445Sassar} 60178825Sdfr 61178825Sdfrexec_body() 62178825Sdfr{ 63178825Sdfr 64178825Sdfr atf_check -s exit:0 ${rumpsrv} ${RUMP_SERVER} 65178825Sdfr atf_check -s exit:0 $(atf_get_srcdir)/h_exec $(atf_get_srcdir)/h_exec 6672445Sassar atf_check -s exit:0 -o save:sstat.out rump.sockstat -n 67 atf_check -s exit:0 -o match:'^root.*h_ution.*tcp.*\*\.1234' \ 68 sed -n 2p sstat.out 69 atf_check -s exit:0 -o match:'^root.*h_ution.*tcp.*\*\.2345' \ 70 sed -n 3p sstat.out 71} 72 73exec_cleanup() 74{ 75 rump.halt 76} 77 78atf_test_case cloexec cleanup 79cloexec_head() 80{ 81 atf_set "descr" "check that FD_CLOEXEC works" 82} 83 84cloexec_body() 85{ 86 87 atf_check -s exit:0 ${rumpsrv} ${RUMP_SERVER} 88 atf_check -s exit:0 \ 89 $(atf_get_srcdir)/h_exec $(atf_get_srcdir)/h_exec cloexec1 90 atf_check -s exit:0 -o save:sstat.out rump.sockstat -n 91 atf_check -s exit:0 -o inline:'2\n' sed -n '$=' sstat.out 92 atf_check -s exit:0 -o match:'^root.*h_ution.*tcp.*\*\.2345' \ 93 sed -n 2p sstat.out 94} 95 96cloexec_cleanup() 97{ 98 rump.halt 99} 100 101atf_test_case vfork cleanup 102vfork_head() 103{ 104 atf_set "descr" "test rumpclient_vfork()" 105} 106 107vfork_body() 108{ 109 110 atf_check -s exit:0 ${rumpsrv} ${RUMP_SERVER} 111 atf_check -s exit:0 \ 112 $(atf_get_srcdir)/h_exec $(atf_get_srcdir)/h_exec vfork_please 113 atf_check -s exit:0 -o save:sstat.out rump.sockstat -n 114 atf_check -s exit:0 -o inline:'5\n' sed -n '$=' sstat.out 115 atf_check -s exit:0 -o match:'^root.*h_ution.*tcp.*\*\.1234' \ 116 cat sstat.out 117 atf_check -s exit:0 -o match:'^root.*h_ution.*tcp.*\*\.2345' \ 118 cat sstat.out 119 atf_check -s exit:0 -o match:'^root.*fourchette.*tcp.*\*\.1234' \ 120 cat sstat.out 121 atf_check -s exit:0 -o match:'^root.*fourchette.*tcp.*\*\.2345' \ 122 cat sstat.out 123} 124 125vfork_cleanup() 126{ 127 rump.halt 128} 129 130atf_test_case threxec cleanup 131threxec_head() 132{ 133 atf_set "descr" "check that threads are killed before exec continues" 134} 135 136threxec_body() 137{ 138 atf_check -s exit:0 rump_server ${RUMP_SERVER} 139 atf_check -s exit:0 $(atf_get_srcdir)/h_execthr 140} 141 142threxec_cleanup() 143{ 144 rump.halt 145} 146 147atf_init_test_cases() 148{ 149 atf_add_test_case noexec 150 atf_add_test_case exec 151 atf_add_test_case cloexec 152 atf_add_test_case vfork 153 atf_add_test_case threxec 154} 155