integration_test.sh revision 240120
1248557Sray# 2248557Sray# Automated Testing Framework (atf) 3248557Sray# 4248557Sray# Copyright (c) 2010 The NetBSD Foundation, Inc. 5248557Sray# All rights reserved. 6248557Sray# 7248557Sray# Redistribution and use in source and binary forms, with or without 8248557Sray# modification, are permitted provided that the following conditions 9248557Sray# are met: 10248557Sray# 1. Redistributions of source code must retain the above copyright 11248557Sray# notice, this list of conditions and the following disclaimer. 12248557Sray# 2. Redistributions in binary form must reproduce the above copyright 13248557Sray# notice, this list of conditions and the following disclaimer in the 14248557Sray# documentation and/or other materials provided with the distribution. 15248557Sray# 16248557Sray# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17248557Sray# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18248557Sray# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19248557Sray# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20248557Sray# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21248557Sray# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22248557Sray# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23248557Sray# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24248557Sray# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25248557Sray# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26248557Sray# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27248557Sray# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28248557Sray# 29250357Sray 30248557Sraycreate_test_program() { 31248557Sray echo '#! /usr/bin/env atf-sh' >"${1}" 32248557Sray cat >>"${1}" 33248557Sray chmod +x "${1}" 34248557Sray} 35248557Sray 36248557Srayatf_test_case no_args 37248557Srayno_args_body() 38248557Sray{ 39248557Sray cat >experr <<EOF 40248557Srayatf-sh: ERROR: No test program provided 41248557Srayatf-sh: Type \`atf-sh -h' for more details. 42248557SrayEOF 43248557Sray atf_check -s eq:1 -o ignore -e file:experr atf-sh 44248557Sray} 45248557Sray 46248557Srayatf_test_case missing_script 47248557Sraymissing_script_body() 48248557Sray{ 49248557Sray cat >experr <<EOF 50248557Srayatf-sh: ERROR: The test program 'non-existent' does not exist 51248557SrayEOF 52248557Sray atf_check -s eq:1 -o ignore -e file:experr atf-sh non-existent 53248557Sray} 54248557Sray 55248557Srayatf_test_case arguments 56248557Srayarguments_body() 57248557Sray{ 58248557Sray create_test_program tp <<EOF 59248557Sraymain() { 60248557Sray echo ">>>\${0}<<<" 61248557Sray while test \${#} -gt 0; do 62248557Sray echo ">>>\${1}<<<" 63248557Sray shift 64248557Sray done 65248557Sray true 66248557Sray} 67248557SrayEOF 68248557Sray 69248557Sray cat >expout <<EOF 70248557Sray>>>./tp<<< 71248557Sray>>> a b <<< 72248557Sray>>>foo<<< 73248557SrayEOF 74248557Sray atf_check -s eq:0 -o file:expout -e empty ./tp ' a b ' foo 75248557Sray 76248557Sray cat >expout <<EOF 77248557Sray>>>tp<<< 78248557Sray>>> hello bye <<< 79248557Sray>>>foo bar<<< 80248557SrayEOF 81248557Sray atf_check -s eq:0 -o file:expout -e empty atf-sh tp ' hello bye ' 'foo bar' 82248557Sray} 83248557Sray 84248557Srayatf_init_test_cases() 85248557Sray{ 86248557Sray atf_add_test_case no_args 87248557Sray atf_add_test_case missing_script 88248557Sray atf_add_test_case arguments 89248557Sray} 90248557Sray 91248557Sray# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 92248557Sray