xref: /freebsd/contrib/bc/tests/scripts.sh (revision 3aa99676b43a74a61fae17e19fd554e1937fa746)
1*3aa99676SStefan Eßer#! /bin/sh
2*3aa99676SStefan Eßer#
3*3aa99676SStefan Eßer# SPDX-License-Identifier: BSD-2-Clause
4*3aa99676SStefan Eßer#
5*3aa99676SStefan Eßer# Copyright (c) 2018-2020 Gavin D. Howard and contributors.
6*3aa99676SStefan Eßer#
7*3aa99676SStefan Eßer# Redistribution and use in source and binary forms, with or without
8*3aa99676SStefan Eßer# modification, are permitted provided that the following conditions are met:
9*3aa99676SStefan Eßer#
10*3aa99676SStefan Eßer# * Redistributions of source code must retain the above copyright notice, this
11*3aa99676SStefan Eßer#   list of conditions and the following disclaimer.
12*3aa99676SStefan Eßer#
13*3aa99676SStefan Eßer# * Redistributions in binary form must reproduce the above copyright notice,
14*3aa99676SStefan Eßer#   this list of conditions and the following disclaimer in the documentation
15*3aa99676SStefan Eßer#   and/or other materials provided with the distribution.
16*3aa99676SStefan Eßer#
17*3aa99676SStefan Eßer# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18*3aa99676SStefan Eßer# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19*3aa99676SStefan Eßer# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20*3aa99676SStefan Eßer# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21*3aa99676SStefan Eßer# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22*3aa99676SStefan Eßer# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23*3aa99676SStefan Eßer# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24*3aa99676SStefan Eßer# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25*3aa99676SStefan Eßer# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26*3aa99676SStefan Eßer# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27*3aa99676SStefan Eßer# POSSIBILITY OF SUCH DAMAGE.
28*3aa99676SStefan Eßer#
29*3aa99676SStefan Eßer
30*3aa99676SStefan Eßerset -e
31*3aa99676SStefan Eßer
32*3aa99676SStefan Eßerscript="$0"
33*3aa99676SStefan Eßer
34*3aa99676SStefan Eßertestdir=$(dirname "${script}")
35*3aa99676SStefan Eßer
36*3aa99676SStefan Eßerif [ "$#" -eq 0 ]; then
37*3aa99676SStefan Eßer	printf 'usage: %s dir [run_extra_tests] [run_stack_tests] [generate_tests] [time_tests] [exec args...]\n' "$script"
38*3aa99676SStefan Eßer	exit 1
39*3aa99676SStefan Eßerelse
40*3aa99676SStefan Eßer	d="$1"
41*3aa99676SStefan Eßer	shift
42*3aa99676SStefan Eßerfi
43*3aa99676SStefan Eßer
44*3aa99676SStefan Eßerif [ "$#" -gt 0 ]; then
45*3aa99676SStefan Eßer	run_extra_tests="$1"
46*3aa99676SStefan Eßer	shift
47*3aa99676SStefan Eßerelse
48*3aa99676SStefan Eßer	run_extra_tests=1
49*3aa99676SStefan Eßerfi
50*3aa99676SStefan Eßer
51*3aa99676SStefan Eßerif [ "$#" -gt 0 ]; then
52*3aa99676SStefan Eßer	run_stack_tests="$1"
53*3aa99676SStefan Eßer	shift
54*3aa99676SStefan Eßerelse
55*3aa99676SStefan Eßer	run_stack_tests=1
56*3aa99676SStefan Eßerfi
57*3aa99676SStefan Eßer
58*3aa99676SStefan Eßerif [ "$#" -gt 0 ]; then
59*3aa99676SStefan Eßer	generate="$1"
60*3aa99676SStefan Eßer	shift
61*3aa99676SStefan Eßerelse
62*3aa99676SStefan Eßer	generate=1
63*3aa99676SStefan Eßerfi
64*3aa99676SStefan Eßer
65*3aa99676SStefan Eßerif [ "$#" -gt 0 ]; then
66*3aa99676SStefan Eßer	time_tests="$1"
67*3aa99676SStefan Eßer	shift
68*3aa99676SStefan Eßerelse
69*3aa99676SStefan Eßer	time_tests=0
70*3aa99676SStefan Eßerfi
71*3aa99676SStefan Eßer
72*3aa99676SStefan Eßerif [ "$#" -gt 0 ]; then
73*3aa99676SStefan Eßer	exe="$1"
74*3aa99676SStefan Eßer	shift
75*3aa99676SStefan Eßerelse
76*3aa99676SStefan Eßer	exe="$testdir/../bin/$d"
77*3aa99676SStefan Eßerfi
78*3aa99676SStefan Eßer
79*3aa99676SStefan Eßerscriptdir="$testdir/$d/scripts"
80*3aa99676SStefan Eßer
81*3aa99676SStefan Eßerfor s in $scriptdir/*.$d; do
82*3aa99676SStefan Eßer
83*3aa99676SStefan Eßer	f=$(basename "$s")
84*3aa99676SStefan Eßer	sh "$testdir/script.sh" "$d" "$f" "$run_extra_tests" "$run_stack_tests" "$generate" "$time_tests" "$exe" "$@"
85*3aa99676SStefan Eßer
86*3aa99676SStefan Eßerdone
87