diff options
Diffstat (limited to 'tests/CkTestDB')
-rwxr-xr-x | tests/CkTestDB | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/tests/CkTestDB b/tests/CkTestDB new file mode 100755 index 0000000..80bee63 --- /dev/null +++ b/tests/CkTestDB @@ -0,0 +1,136 @@ +#!/bin/sh +# +# CkTestDB -- see if this dialect is has been tested +# +# This script builds a line from config.flags in the form of lines in +# ./TestDB, (See Add2TestDB.) +# +# It then compares the line to TestDB. If the line is found, the script +# exits. if the line is not found, the script issues a warning and requests +# a go-ahead confirmation. +# +# The script will exit 0 if the test line is in the DB or the go-ahead +# confirmation is positive. +# +# $Id: CkTestDB,v 1.3 2010/01/18 19:02:21 abe Exp abe $ + +# Check for config.flags. + +if test ! -r config.cflags +then + echo "$0: no ./config.cflags file" + exit 1 +fi + +# Check for a current data base file. + +if test ! -r TestDB +then + echo "$0: no ./TestDB file" + exit 1 +fi + +# Form a data base line. + +new="" +for i in `LC_ALL=C sort < config.cflags` +do + w=`echo $i | sed 's/^-D//'` + if test "X$new" = "X" + then + new=$w + else + new="$new $w" + fi +done + +# See if the line is already in the data base. Exit with success (0), if it is. + +grep "^$new\$" TestDB > /dev/null 2>&1 +if test $? -eq 0 +then + exit 0 +fi + +# This dialect may never have been validated with the test suite. + +# If the standard input is not a TTY, quit, because no interaction +# is possible. + +tty -s > /dev/null 2>&1 +if test $? -ne 0 +then + echo "" + echo "This suite has not been validated on:" + echo "" + echo " $new" + echo "" + exit 1 +fi + +# Establish trap and stty handling. + +ISIG=":" +trap '$ISIG; exit 1' 1 2 3 15 +stty -a 2>&1 | grep isig > /dev/null +if test $? -eq 0 +then + stty -a 2>&1 | egrep -e -isig > /dev/null + if test $? -eq 0 + then + ISIG="stty -isig" + stty isig + fi +fi + +# Establish echo type -- Berkeley or SYSV. + +j=`echo -n ""` +if test "X$j" = "X-n " +then + EC="\c" + EO="" +else + EC="" + EO="-n" +fi + +# Display a validation warning. + +cat << .CAT_MARK > /dev/tty + +================================================================== + +!!!WARNING!!! + +This dialect or its particular version may not have been validated +with the lsof test suite. Consequently some tests may fail or may +not even compile. + +This is the computed identity of this dialect, not found in the +test data base file, ./TestDB: + +.CAT_MARK +echo " $new" > /dev/tty +END=0 +while test $END = 0 +do + echo "" > /dev/tty + echo $EO "Do you want to continue (y|n) [n]? $EC" > /dev/tty + read ANS EXCESS + if test "X$ANS" = "Xn" -o "X$ANS" = "XN" + then + exit 1 + fi + if test "X$ANS" = "Xy" -o "X$ANS" = "XY" + then + exit 0 + else + echo "Please answer y or n." > /dev/tty + fi +done + +# Should never get here! + +echo "$0: unexpected failure!" +exit 2 |