1*c243e490SMarcel Moolenaar# Copyright (c) 2007 The NetBSD Foundation, Inc. 2*c243e490SMarcel Moolenaar# All rights reserved. 3*c243e490SMarcel Moolenaar# 4*c243e490SMarcel Moolenaar# Redistribution and use in source and binary forms, with or without 5*c243e490SMarcel Moolenaar# modification, are permitted provided that the following conditions 6*c243e490SMarcel Moolenaar# are met: 7*c243e490SMarcel Moolenaar# 1. Redistributions of source code must retain the above copyright 8*c243e490SMarcel Moolenaar# notice, this list of conditions and the following disclaimer. 9*c243e490SMarcel Moolenaar# 2. Redistributions in binary form must reproduce the above copyright 10*c243e490SMarcel Moolenaar# notice, this list of conditions and the following disclaimer in the 11*c243e490SMarcel Moolenaar# documentation and/or other materials provided with the distribution. 12*c243e490SMarcel Moolenaar# 13*c243e490SMarcel Moolenaar# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 14*c243e490SMarcel Moolenaar# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 15*c243e490SMarcel Moolenaar# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16*c243e490SMarcel Moolenaar# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17*c243e490SMarcel Moolenaar# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 18*c243e490SMarcel Moolenaar# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*c243e490SMarcel Moolenaar# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 20*c243e490SMarcel Moolenaar# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21*c243e490SMarcel Moolenaar# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 22*c243e490SMarcel Moolenaar# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23*c243e490SMarcel Moolenaar# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 24*c243e490SMarcel Moolenaar# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25*c243e490SMarcel Moolenaar 26*c243e490SMarcel Moolenaarcreate_files() 27*c243e490SMarcel Moolenaar{ 28*c243e490SMarcel Moolenaar mkdir tmp 29*c243e490SMarcel Moolenaar touch tmp/datafile 30*c243e490SMarcel Moolenaar} 31*c243e490SMarcel Moolenaar 32*c243e490SMarcel Moolenaaratf_test_case default 33*c243e490SMarcel Moolenaardefault_head() 34*c243e490SMarcel Moolenaar{ 35*c243e490SMarcel Moolenaar atf_set "descr" "Checks that the program can find its files if" \ 36*c243e490SMarcel Moolenaar "executed from the same directory" 37*c243e490SMarcel Moolenaar} 38*c243e490SMarcel Moolenaardefault_body() 39*c243e490SMarcel Moolenaar{ 40*c243e490SMarcel Moolenaar create_files 41*c243e490SMarcel Moolenaar 42*c243e490SMarcel Moolenaar for hp in $(get_helpers); do 43*c243e490SMarcel Moolenaar h=${hp##*/} 44*c243e490SMarcel Moolenaar cp ${hp} tmp 45*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e ignore -x \ 46*c243e490SMarcel Moolenaar "cd tmp && ./${h} srcdir_exists" 47*c243e490SMarcel Moolenaar atf_check -s eq:1 -o empty -e ignore "${hp}" -r res srcdir_exists 48*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res 49*c243e490SMarcel Moolenaar done 50*c243e490SMarcel Moolenaar} 51*c243e490SMarcel Moolenaar 52*c243e490SMarcel Moolenaaratf_test_case libtool 53*c243e490SMarcel Moolenaarlibtool_head() 54*c243e490SMarcel Moolenaar{ 55*c243e490SMarcel Moolenaar atf_set "descr" "Checks that the program can find its files if" \ 56*c243e490SMarcel Moolenaar "executed from the source directory and if it" \ 57*c243e490SMarcel Moolenaar "was built with libtool" 58*c243e490SMarcel Moolenaar} 59*c243e490SMarcel Moolenaarlibtool_body() 60*c243e490SMarcel Moolenaar{ 61*c243e490SMarcel Moolenaar create_files 62*c243e490SMarcel Moolenaar mkdir tmp/.libs 63*c243e490SMarcel Moolenaar 64*c243e490SMarcel Moolenaar for hp in $(get_helpers c_helpers cpp_helpers); do 65*c243e490SMarcel Moolenaar h=${hp##*/} 66*c243e490SMarcel Moolenaar cp ${hp} tmp 67*c243e490SMarcel Moolenaar cp ${hp} tmp/.libs 68*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e ignore -x \ 69*c243e490SMarcel Moolenaar "cd tmp && ./.libs/${h} srcdir_exists" 70*c243e490SMarcel Moolenaar atf_check -s eq:1 -o empty -e ignore "${hp}" -r res srcdir_exists 71*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res 72*c243e490SMarcel Moolenaar done 73*c243e490SMarcel Moolenaar 74*c243e490SMarcel Moolenaar for hp in $(get_helpers c_helpers cpp_helpers); do 75*c243e490SMarcel Moolenaar h=${hp##*/} 76*c243e490SMarcel Moolenaar cp ${hp} tmp 77*c243e490SMarcel Moolenaar cp ${hp} tmp/.libs/lt-${h} 78*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e ignore -x \ 79*c243e490SMarcel Moolenaar "cd tmp && ./.libs/lt-${h} srcdir_exists" 80*c243e490SMarcel Moolenaar atf_check -s eq:1 -o empty -e ignore "${hp}" -r res srcdir_exists 81*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res 82*c243e490SMarcel Moolenaar done 83*c243e490SMarcel Moolenaar} 84*c243e490SMarcel Moolenaar 85*c243e490SMarcel Moolenaaratf_test_case sflag 86*c243e490SMarcel Moolenaarsflag_head() 87*c243e490SMarcel Moolenaar{ 88*c243e490SMarcel Moolenaar atf_set "descr" "Checks that the program can find its files when" \ 89*c243e490SMarcel Moolenaar "using the -s flag" 90*c243e490SMarcel Moolenaar} 91*c243e490SMarcel Moolenaarsflag_body() 92*c243e490SMarcel Moolenaar{ 93*c243e490SMarcel Moolenaar create_files 94*c243e490SMarcel Moolenaar 95*c243e490SMarcel Moolenaar for hp in $(get_helpers); do 96*c243e490SMarcel Moolenaar h=${hp##*/} 97*c243e490SMarcel Moolenaar cp ${hp} tmp 98*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e ignore -x \ 99*c243e490SMarcel Moolenaar "cd tmp && ./${h} -s $(pwd)/tmp \ 100*c243e490SMarcel Moolenaar srcdir_exists" 101*c243e490SMarcel Moolenaar atf_check -s eq:1 -o empty -e save:stderr "${hp}" -r res srcdir_exists 102*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res 103*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e ignore \ 104*c243e490SMarcel Moolenaar "${hp}" -s "$(pwd)"/tmp srcdir_exists 105*c243e490SMarcel Moolenaar done 106*c243e490SMarcel Moolenaar} 107*c243e490SMarcel Moolenaar 108*c243e490SMarcel Moolenaaratf_test_case relative 109*c243e490SMarcel Moolenaarrelative_head() 110*c243e490SMarcel Moolenaar{ 111*c243e490SMarcel Moolenaar atf_set "descr" "Checks that passing a relative path through -s" \ 112*c243e490SMarcel Moolenaar "works" 113*c243e490SMarcel Moolenaar} 114*c243e490SMarcel Moolenaarrelative_body() 115*c243e490SMarcel Moolenaar{ 116*c243e490SMarcel Moolenaar create_files 117*c243e490SMarcel Moolenaar 118*c243e490SMarcel Moolenaar for hp in $(get_helpers); do 119*c243e490SMarcel Moolenaar h=${hp##*/} 120*c243e490SMarcel Moolenaar cp ${hp} tmp 121*c243e490SMarcel Moolenaar 122*c243e490SMarcel Moolenaar for p in tmp tmp/. ./tmp; do 123*c243e490SMarcel Moolenaar echo "Helper is: ${h}" 124*c243e490SMarcel Moolenaar echo "Using source directory: ${p}" 125*c243e490SMarcel Moolenaar 126*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e ignore \ 127*c243e490SMarcel Moolenaar "./tmp/${h}" -s "${p}" srcdir_exists 128*c243e490SMarcel Moolenaar atf_check -s eq:1 -o empty -e save:stderr "${hp}" -r res \ 129*c243e490SMarcel Moolenaar srcdir_exists 130*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res 131*c243e490SMarcel Moolenaar atf_check -s eq:0 -o ignore -e ignore \ 132*c243e490SMarcel Moolenaar "${hp}" -s "${p}" srcdir_exists 133*c243e490SMarcel Moolenaar done 134*c243e490SMarcel Moolenaar done 135*c243e490SMarcel Moolenaar} 136*c243e490SMarcel Moolenaar 137*c243e490SMarcel Moolenaaratf_init_test_cases() 138*c243e490SMarcel Moolenaar{ 139*c243e490SMarcel Moolenaar atf_add_test_case default 140*c243e490SMarcel Moolenaar atf_add_test_case libtool 141*c243e490SMarcel Moolenaar atf_add_test_case sflag 142*c243e490SMarcel Moolenaar atf_add_test_case relative 143*c243e490SMarcel Moolenaar} 144*c243e490SMarcel Moolenaar 145*c243e490SMarcel Moolenaar# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 146