a747113422afaa29ce72d2c5ba7f0b7ea9ec2054Evan Hunt# Copyright (c) 2007 The NetBSD Foundation, Inc.
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# All rights reserved.
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt#
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# Redistribution and use in source and binary forms, with or without
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# modification, are permitted provided that the following conditions
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# are met:
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# 1. Redistributions of source code must retain the above copyright
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# notice, this list of conditions and the following disclaimer.
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# 2. Redistributions in binary form must reproduce the above copyright
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# notice, this list of conditions and the following disclaimer in the
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# documentation and/or other materials provided with the distribution.
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt#
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntcreate_files()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt mkdir tmp
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt touch tmp/datafile
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntatf_test_case default
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntdefault_head()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_set "descr" "Checks that the program can find its files if" \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "executed from the same directory"
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntdefault_body()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt create_files
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt for hp in $(get_helpers); do
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt h=${hp##*/}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt cp ${hp} tmp
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e ignore -x \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "cd tmp && ./${h} srcdir_exists"
a747113422afaa29ce72d2c5ba7f0b7ea9ec2054Evan Hunt atf_check -s eq:1 -o empty -e ignore "${hp}" -r res srcdir_exists
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt done
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntatf_test_case libtool
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntlibtool_head()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_set "descr" "Checks that the program can find its files if" \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "executed from the source directory and if it" \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "was built with libtool"
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntlibtool_body()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt create_files
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt mkdir tmp/.libs
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt for hp in $(get_helpers c_helpers cpp_helpers); do
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt h=${hp##*/}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt cp ${hp} tmp
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt cp ${hp} tmp/.libs
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e ignore -x \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "cd tmp && ./.libs/${h} srcdir_exists"
a747113422afaa29ce72d2c5ba7f0b7ea9ec2054Evan Hunt atf_check -s eq:1 -o empty -e ignore "${hp}" -r res srcdir_exists
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt done
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt for hp in $(get_helpers c_helpers cpp_helpers); do
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt h=${hp##*/}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt cp ${hp} tmp
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt cp ${hp} tmp/.libs/lt-${h}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e ignore -x \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "cd tmp && ./.libs/lt-${h} srcdir_exists"
a747113422afaa29ce72d2c5ba7f0b7ea9ec2054Evan Hunt atf_check -s eq:1 -o empty -e ignore "${hp}" -r res srcdir_exists
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt done
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntatf_test_case sflag
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntsflag_head()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_set "descr" "Checks that the program can find its files when" \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "using the -s flag"
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntsflag_body()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt create_files
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt for hp in $(get_helpers); do
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt h=${hp##*/}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt cp ${hp} tmp
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e ignore -x \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "cd tmp && ./${h} -s $(pwd)/tmp \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt srcdir_exists"
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:1 -o empty -e save:stderr "${hp}" -r res srcdir_exists
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e ignore \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "${hp}" -s "$(pwd)"/tmp srcdir_exists
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt done
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntatf_test_case relative
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntrelative_head()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_set "descr" "Checks that passing a relative path through -s" \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "works"
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntrelative_body()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt create_files
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt for hp in $(get_helpers); do
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt h=${hp##*/}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt cp ${hp} tmp
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt for p in tmp tmp/. ./tmp; do
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt echo "Helper is: ${h}"
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt echo "Using source directory: ${p}"
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e ignore \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "./tmp/${h}" -s "${p}" srcdir_exists
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:1 -o empty -e save:stderr "${hp}" -r res \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt srcdir_exists
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e empty grep "Cannot find datafile" res
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_check -s eq:0 -o ignore -e ignore \
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt "${hp}" -s "${p}" srcdir_exists
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt done
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt done
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Huntatf_init_test_cases()
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt{
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_add_test_case default
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_add_test_case libtool
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_add_test_case sflag
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt atf_add_test_case relative
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt}
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt
ef421f66f47224a42073deaf087378c5d0c9952eEvan Hunt# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4