xref: /minix/external/bsd/bind/dist/bin/tests/system/run.sh (revision 00b67f09)
1*00b67f09SDavid van Moolenbroek#!/bin/sh
2*00b67f09SDavid van Moolenbroek#
3*00b67f09SDavid van Moolenbroek# Copyright (C) 2004, 2007, 2010, 2012, 2014  Internet Systems Consortium, Inc. ("ISC")
4*00b67f09SDavid van Moolenbroek# Copyright (C) 2000, 2001  Internet Software Consortium.
5*00b67f09SDavid van Moolenbroek#
6*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any
7*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above
8*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies.
9*00b67f09SDavid van Moolenbroek#
10*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
11*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12*00b67f09SDavid van Moolenbroek# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
13*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
15*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE.
17*00b67f09SDavid van Moolenbroek
18*00b67f09SDavid van Moolenbroek#
19*00b67f09SDavid van Moolenbroek# Run a system test.
20*00b67f09SDavid van Moolenbroek#
21*00b67f09SDavid van Moolenbroek
22*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=.
23*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh
24*00b67f09SDavid van Moolenbroek
25*00b67f09SDavid van Moolenbroekstopservers=true
26*00b67f09SDavid van Moolenbroek
27*00b67f09SDavid van Moolenbroekcase $1 in
28*00b67f09SDavid van Moolenbroek   --keep) stopservers=false; shift ;;
29*00b67f09SDavid van Moolenbroekesac
30*00b67f09SDavid van Moolenbroek
31*00b67f09SDavid van Moolenbroektest $# -gt 0 || { echo "usage: $0 [--keep] test-directory" >&2; exit 1; }
32*00b67f09SDavid van Moolenbroek
33*00b67f09SDavid van Moolenbroektest=$1
34*00b67f09SDavid van Moolenbroekshift
35*00b67f09SDavid van Moolenbroek
36*00b67f09SDavid van Moolenbroektest -d $test || { echo "$0: $test: no such test" >&2; exit 1; }
37*00b67f09SDavid van Moolenbroek
38*00b67f09SDavid van Moolenbroekecho "S:$test:`date`" >&2
39*00b67f09SDavid van Moolenbroekecho "T:$test:1:A" >&2
40*00b67f09SDavid van Moolenbroekecho "A:System test $test" >&2
41*00b67f09SDavid van Moolenbroek
42*00b67f09SDavid van Moolenbroekif [ x${PERL:+set} = x ]
43*00b67f09SDavid van Moolenbroekthen
44*00b67f09SDavid van Moolenbroek    echo "I:Perl not available.  Skipping test." >&2
45*00b67f09SDavid van Moolenbroek    echo "R:UNTESTED" >&2
46*00b67f09SDavid van Moolenbroek    echo "E:$test:`date`" >&2
47*00b67f09SDavid van Moolenbroek    exit 0;
48*00b67f09SDavid van Moolenbroekfi
49*00b67f09SDavid van Moolenbroek
50*00b67f09SDavid van Moolenbroek$PERL testsock.pl || {
51*00b67f09SDavid van Moolenbroek    echo "I:Network interface aliases not set up.  Skipping test." >&2;
52*00b67f09SDavid van Moolenbroek    echo "R:UNTESTED" >&2;
53*00b67f09SDavid van Moolenbroek    echo "E:$test:`date`" >&2;
54*00b67f09SDavid van Moolenbroek    exit 0;
55*00b67f09SDavid van Moolenbroek}
56*00b67f09SDavid van Moolenbroek
57*00b67f09SDavid van Moolenbroek
58*00b67f09SDavid van Moolenbroek# Check for test-specific prerequisites.
59*00b67f09SDavid van Moolenbroektest ! -f $test/prereq.sh || ( cd $test && $SHELL prereq.sh "$@" )
60*00b67f09SDavid van Moolenbroekresult=$?
61*00b67f09SDavid van Moolenbroek
62*00b67f09SDavid van Moolenbroekif [ $result -eq 0 ]; then
63*00b67f09SDavid van Moolenbroek    : prereqs ok
64*00b67f09SDavid van Moolenbroekelse
65*00b67f09SDavid van Moolenbroek    echo "I:Prerequisites for $test missing, skipping test." >&2
66*00b67f09SDavid van Moolenbroek    [ $result -eq 255 ] && echo "R:SKIPPED" || echo "R:UNTESTED"
67*00b67f09SDavid van Moolenbroek    echo "E:$test:`date`" >&2
68*00b67f09SDavid van Moolenbroek    exit 0
69*00b67f09SDavid van Moolenbroekfi
70*00b67f09SDavid van Moolenbroek
71*00b67f09SDavid van Moolenbroek# Check for PKCS#11 support
72*00b67f09SDavid van Moolenbroekif
73*00b67f09SDavid van Moolenbroek    test ! -f $test/usepkcs11 || $SHELL cleanpkcs11.sh
74*00b67f09SDavid van Moolenbroekthen
75*00b67f09SDavid van Moolenbroek    : pkcs11 ok
76*00b67f09SDavid van Moolenbroekelse
77*00b67f09SDavid van Moolenbroek    echo "I:Need PKCS#11 for $test, skipping test." >&2
78*00b67f09SDavid van Moolenbroek    echo "R:PKCS11ONLY" >&2
79*00b67f09SDavid van Moolenbroek    echo "E:$test:`date`" >&2
80*00b67f09SDavid van Moolenbroek    exit 0
81*00b67f09SDavid van Moolenbroekfi
82*00b67f09SDavid van Moolenbroek
83*00b67f09SDavid van Moolenbroek# Set up any dynamically generated test data
84*00b67f09SDavid van Moolenbroekif test -f $test/setup.sh
85*00b67f09SDavid van Moolenbroekthen
86*00b67f09SDavid van Moolenbroek   ( cd $test && $SHELL setup.sh "$@" )
87*00b67f09SDavid van Moolenbroekfi
88*00b67f09SDavid van Moolenbroek
89*00b67f09SDavid van Moolenbroek# Start name servers running
90*00b67f09SDavid van Moolenbroek$PERL start.pl $test || exit 1
91*00b67f09SDavid van Moolenbroek
92*00b67f09SDavid van Moolenbroek# Run the tests
93*00b67f09SDavid van Moolenbroek( cd $test ; $SHELL tests.sh )
94*00b67f09SDavid van Moolenbroek
95*00b67f09SDavid van Moolenbroekstatus=$?
96*00b67f09SDavid van Moolenbroek
97*00b67f09SDavid van Moolenbroekif $stopservers
98*00b67f09SDavid van Moolenbroekthen
99*00b67f09SDavid van Moolenbroek    :
100*00b67f09SDavid van Moolenbroekelse
101*00b67f09SDavid van Moolenbroek    exit $status
102*00b67f09SDavid van Moolenbroekfi
103*00b67f09SDavid van Moolenbroek
104*00b67f09SDavid van Moolenbroek# Shutdown
105*00b67f09SDavid van Moolenbroek$PERL stop.pl $test
106*00b67f09SDavid van Moolenbroek
107*00b67f09SDavid van Moolenbroekstatus=`expr $status + $?`
108*00b67f09SDavid van Moolenbroek
109*00b67f09SDavid van Moolenbroekif [ $status != 0 ]; then
110*00b67f09SDavid van Moolenbroek	echo "R:FAIL"
111*00b67f09SDavid van Moolenbroek	# Don't clean up - we need the evidence.
112*00b67f09SDavid van Moolenbroek	find . -name core -exec chmod 0644 '{}' \;
113*00b67f09SDavid van Moolenbroekelse
114*00b67f09SDavid van Moolenbroek	echo "R:PASS"
115*00b67f09SDavid van Moolenbroek
116*00b67f09SDavid van Moolenbroek	# Clean up.
117*00b67f09SDavid van Moolenbroek        rm -f $SYSTEMTESTTOP/random.data
118*00b67f09SDavid van Moolenbroek	if test -f $test/clean.sh
119*00b67f09SDavid van Moolenbroek	then
120*00b67f09SDavid van Moolenbroek	   ( cd $test && $SHELL clean.sh "$@" )
121*00b67f09SDavid van Moolenbroek	fi
122*00b67f09SDavid van Moolenbroekfi
123*00b67f09SDavid van Moolenbroek
124*00b67f09SDavid van Moolenbroekecho "E:$test:`date`"
125*00b67f09SDavid van Moolenbroek
126*00b67f09SDavid van Moolenbroekexit $status
127