📄 testscript.in
字号:
#! /bin/sh## Perform a standard set of test on the Kaffe system. This script should# be built up as we add more test and so, hopefully, avoid re-releasing# bugs which have been fixed.## Copyright (c) 1996-2000# Transvirtual Technologies, Inc. All rights reserved.## See the file "license.terms" for information on usage and redistribution # of this file. KAFFEHOME="@prefix@"export KAFFEHOME: ${JAVA=$KAFFEHOME/bin/kaffe} ${SRCDIR=@srcdir@} ${PATHSEP='@PATHSEP@'}: ${JASMIN=@JASMIN@}JAVAC="@JAVAC@ -nowarn -bootclasspath @top_builddir@/libraries/javalib/vmspecific/kaffe-vminterface.jar:@GLIBJ_ZIP@ -classpath \".${PATHSEP}${SRCDIR}${PATHSEP}compile_time${PATHSEP}${CLASSPATH}\"": ${TIMEOUT=300}: ${HARDTIMEOUT=5}overallerror=0error=0if test -n "${VERBOSE+set}"; then VERBOSE=echoelse VERBOSE=:fi# Don't let these variables mess up the order of `sort'# if test -n "${LC_ALL+set}"; then LC_ALL=C; export LC_ALL# fi# if test -n "${LANG+set}"; then LANG=C; export LANG# fi$VERBOSE $0 ${1+"$@"}mybasename () { echo "$1" | sed 's%.*/%%'}## Run a test, optionally sorted#run(){ RESULT="$1.fail" TMPRESULT="$1.tmp" # Use security provider from source code# SECURITY_PROVIDER_URL=-Dgnu.classpath.home.url=file://@abssrcdir@/libraries/clib/ SECURITY_PROVIDER_URL="-Dgnu.classpath.home.url=file://@abssrcdir@/libraries/clib/" $VERBOSE $JAVA $SECURITY_PROVIDER_URL ${JAVA_TEST_FLAGS} $* env CLASSPATH=${CLASSPATH}${PATHSEP}run_time $JAVA $SECURITY_PROVIDER_URL ${JAVA_TEST_FLAGS} $* <&0 >$TMPRESULT 2>&1 & error=$? pid=$! $VERBOSE "Background pid: $pid" (sleep $TIMEOUT; echo "Timeout - $TIMEOUT seconds - killed" >> $TMPRESULT; kill $pid; sleep $HARDTIMEOUT; echo "Still alive $HARDTIMEOUT seconds after SIGTERM - SIGKILL sent)" >> $TMPRESULT; kill -KILL $pid) & killerpid=$! $VERBOSE "Killer process pid: $killerpid with timeout of $TIMEOUT seconds" wait $pid kill $killerpid if test "x$SORT" = "xyes"; then # grep will take care of stripping \r from DOS-like output sort $TMPRESULT | grep '.*' > $RESULT else # grep will take care of stripping \r from DOS-like output grep '.*' $TMPRESULT > "$RESULT" fi rm -f $TMPRESULT if test ! -f "$1.out"; then if test "$error" = 0 || test "$error" = 77; then mv "$RESULT" "$1.out" $VERBOSE output preserved in "$1.out" else $VERBOSE output preserved in "$1.fail" fi elif cmp -s "$RESULT" "$1.out" ; then $VERBOSE got expected output in "$1.out" rm -f "$RESULT" else $VERBOSE output differs from "$1.out", saving in "$1.fail" if test "$error" != 77; then error=1 fi fi if test -f core; then $VERBOSE saving core in "$1.core" mv core "$1.core" fi}# Execution options## Unsafe# Add the CLASSPATH value to the BOOTCLASSPATH so the test can access kaffe# internal classes.## Sort Output# Sort the output of the test.## Expected Output: <expected test output># A multi-line comment that contains the expected output of the test.## java args: <class name> [optional arguments]# Specify the arguments to use when running the 'java' command.runtest(){ error=0 basename=`mybasename "$1" | sed 's/\.java$//'` RESULT=$basename.fail JAVA_SRCS=${1+"$@"} EXTRA_SRCS=`sed 's/\/\/ [Ss]ources://p;d' < "$1"` for SRC in $EXTRA_SRCS; do SRC=`dirname "$1"`/$SRC JAVA_SRCS="$JAVA_SRCS $SRC" done $VERBOSE JAVA_SRCS="$JAVA_SRCS" compile $JAVA_SRCS if grep '// [Uu]nsafe' < "$1" > /dev/null; then BOOTCLASSPATH="${BOOTCLASSPATH}${PATHSEP}${CLASSPATH}" CLASSPATH="" fi if test $error = 0 ; then if grep '// [Ss]ort [Oo]utput' < "$1" >/dev/null; then SORT="yes" else SORT="no" fi sed '/^\/\* [Ee]xpected [Oo]utput:/,/\*\//p; d' < "$1" | sed '1d;$d' > $basename.out cmp -s $basename.out /dev/null && rm -f $basename.out JAVA_FLAGS=`sed 's/\/\/ java args://p;d' < "$1"` test -n "$JAVA_FLAGS" || JAVA_FLAGS='$basename' eval run $JAVA_FLAGS fi if test $error != 0 && test $overallerror != 1; then overallerror=$error fi}runjasmintest(){ error=0 basename=`mybasename "$1" | sed 's/\.j$//'` RESULT=$basename.fail JAVA_SRCS=${1+"$@"} EXTRA_SRCS=`sed 's/\/\/ [Ss]ources://p;d' < "$1"` for SRC in $EXTRA_SRCS; do SRC=`dirname "$1"`/$SRC JAVA_SRCS="$JAVA_SRCS $SRC" done $VERBOSE JAVA_SRCS="$JAVA_SRCS" JAVAC=$JASMIN compile $JAVA_SRCS if grep '; [Ss]kip [Rr]un' < "$1" > /dev/null; then error=0 elif test "$error" = 0 ; then if grep '; [Ss]ort [Oo]utput' < "$1" >/dev/null; then SORT="yes" else SORT="no" fi sed '/^; [Ee]xpected [Oo]utput:/,//p; d' < "$1" | sed '1d' | sed '/^$/q' | sed '/^$/d' | sed 's/^; //g;s/^;//g' > $basename.out cmp -s $basename.out /dev/null && rm -f $basename.out JAVA_FLAGS=`sed 's/; java args://p;d' < "$1"` test -n "$JAVA_FLAGS" || JAVA_FLAGS='$basename' eval run $JAVA_FLAGS fi if test "$error" != 0 && test "$overallerror" != 1; then overallerror=$error fi}ignoretest(){ error=0 echo "$1 ... ignored" 1>&2}for src in ${1+"$@"}; do $VERBOSE testing $src case "$src" in *.class.save) cp "$src" `mybasename "$src" | sed 's/\.save$//'` run `mybasename "$src" | sed 's/\.class\.save$//'` rm -f `mybasename "$src" | sed 's/\.save$//'` ;; *.class) run `mybasename "$src" | sed 's/\.class$//'` ;; *.java) runtest "$src" ;; *) run "$src" ;; esacdone# All done okayexit $overallerror
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -