1#- 2# SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3# 4# Copyright (c) 2019 Ahsan Barkati 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25# SUCH DAMAGE. 26# 27# $FreeBSD$ 28# 29 30. $(atf_get_srcdir)/utils.subr 31 32setup_tests() 33{ 34 tests="" 35 while [ $# -gt 0 ]; do 36 if [ $(is_firewall $1) -eq 1 ]; then 37 fw=$1 38 shift 39 if [ -z "${testcase}" ]; then 40 echo "no testcase passed to setup_test" 41 return 42 fi 43 atf_test_case "${fw}_${testcase}" "cleanup" 44 eval "${fw}_${testcase}_head(){ ${testcase}_head; }" 45 eval "${fw}_${testcase}_body(){ ${testcase}_body $fw; }" 46 eval "${fw}_${testcase}_cleanup(){ ${testcase}_cleanup $fw; }" 47 tests="$tests ${fw}_${testcase}" 48 else 49 testcase=$1 50 shift 51 fi 52 done 53 init_testcases "$tests" 54} 55 56 57init_testcases() 58{ 59 args="$@" 60 atf_init_test_cases() 61 { 62 for testcase in $args; 63 do 64 atf_add_test_case "$testcase" 65 done 66 } 67}