#!/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