From 5cc581173693855f8e36149d25e919d45421b381 Mon Sep 17 00:00:00 2001 From: paltherr Date: Tue, 21 Sep 2004 13:03:03 +0000 Subject: - Merged ./test/bin/scala-test info ./bin/.scal... - Merged ./test/bin/scala-test info ./bin/.scala_wrapper --- test/bin/scala-test | 597 +--------------------------------------------------- 1 file changed, 5 insertions(+), 592 deletions(-) (limited to 'test') diff --git a/test/bin/scala-test b/test/bin/scala-test index 244f1bf8a7..d80b3223f5 100755 --- a/test/bin/scala-test +++ b/test/bin/scala-test @@ -4,10 +4,6 @@ # test script for scala tools ############################################################################## -VERSION="1.01"; -AUTHORS="Philippe Altherr"; - -# $OldId: scala-test,v 1.20 2002/12/12 14:13:54 paltherr Exp $ # $Id$ ############################################################################## @@ -39,594 +35,11 @@ abort() { } ############################################################################## -# print functions - -color_initialization() { - case "$1" in - many ) - SETCOLOR_OUTLINE="printf \\033[1;39m"; - SETCOLOR_SUCCESS="printf \\033[1;32m"; - SETCOLOR_FAILURE="printf \\033[1;31m"; - SETCOLOR_WARNING="printf \\033[1;33m"; - SETCOLOR_NORMAL="printf \\033[0;39m"; - ;; - some ) - SETCOLOR_OUTLINE="printf \\033[1m"; - SETCOLOR_SUCCESS="printf \\033[0m"; - SETCOLOR_FAILURE="printf \\033[1m"; - SETCOLOR_WARNING="printf \\033[1m"; - SETCOLOR_NORMAL="printf \\033[0m"; - ;; - none ) - SETCOLOR_OUTLINE=""; - SETCOLOR_SUCCESS=""; - SETCOLOR_FAILURE=""; - SETCOLOR_WARNING=""; - SETCOLOR_NORMAL=""; - ;; - * ) - abort "unknown color mode \`$1'"; - ;; - esac; -} - -printf_outline() { - $SETCOLOR_OUTLINE; - printf "$@"; - $SETCOLOR_NORMAL; -} - -printf_success() { - $SETCOLOR_SUCCESS; - printf "$@"; - $SETCOLOR_NORMAL; -} - -printf_failure() { - $SETCOLOR_FAILURE; - printf "$@"; - $SETCOLOR_NORMAL; -} - -printf_warning() { - $SETCOLOR_WARNING; - printf "$@"; - $SETCOLOR_NORMAL; -} - -############################################################################## -# print functions - -show_testing() { - printf_outline "testing: "; - printf "%-60s " "$1"; -} - -show_success() { - printf "["; - printf_success " OK "; - printf "]\\n"; -} - -show_failure() { - printf "["; - printf_failure "FAILED"; - printf "]\\n"; -} - -############################################################################## -# test functions - -test_interpretation() { - $SURUS $TEST_FLAGS $FLAGS "$source" -- Test "int"; -} - -test_shell() { - cat "$source" | $SURUS -interactive -nologo $TEST_FLAGS $FLAGS; -} - -test_compilation() { - output="$OBJDIR"`expr "$source" : "\(.*\)\\.scala"`-$KIND.obj; - classpath="$output"; - if $CYGWIN; then - classpath=`cygpath -w -p "$classpath"`; - os_output=`cygpath -w "$output"`; - else - os_output="$output"; - fi; - rm -rf "$output"; - mkdir -p "$output" && - $SOCOS -d "$os_output" $TEST_FLAGS $FLAGS "$source" && - $SCALA -classpath "$classpath" Test "jvm" && - rm -rf "$output"; -} - -test_xml() { - output="$OBJDIR"`expr "$source" : "\(.*\)\\.scala"`-$KIND.obj; - dtdfile="`expr "$source" : "\(.*\)\\.scala"`.dtd"; - xmlfile="`expr "$source" : "\(.*\)\\.scala"`.xml"; - nsfile="`expr "$source" : "\(.*\)\\.scala"`.namespace"; - objfile="$output/dtd.scala"; - classpath="$output"; - if $CYGWIN; then - classpath=`cygpath -w -p "$classpath"`; - os_output=`cygpath -w "$output"`; - else - os_output="$output"; - fi; - rm -rf "$output"; - mkdir -p "$output" && - $DTD2SCALA -d "$os_output" "$dtdfile" dtd `cat $nsfile` && - $SOCOS -d "$os_output" $TEST_FLAGS $FLAGS "$objfile" "$source" && - $SCALA -classpath "$classpath" Test "$xmlfile" && - rm -rf "$output"; -} - -test_disassembler() { - scalapargs="`expr "$source" : "\(.*\)\\.scala"`.args"; - if [ -f "$scalapargs" ]; then - SCALAP_ARGS=`cat "$scalapargs"`; - else - SCALAP_ARGS=""; - fi; - output="$OBJDIR"`expr "$source" : "\(.*\)\\.scala"`-$KIND.obj; - classpath="$output"; - if $CYGWIN; then - classpath=`cygpath -w -p "$classpath"`; - os_output=`cygpath -w "$output"`; - else - os_output="$output"; - fi; - rm -rf "$output"; - mkdir -p "$output" && - $SOCOS -d "$os_output" $TEST_FLAGS $FLAGS "$source" && - $SCALAP -classpath "$classpath" $SCALAP_ARGS && - rm -rf "$output"; -} - -test_compilation_success() { - output="$OBJDIR"`expr "$source" : "\(.*\)\\.scala"`-$KIND.obj; - if $CYGWIN; then - os_output=`cygpath -w "$output"`; - else - os_output="$output"; - fi; - rm -rf "$output"; - mkdir -p "$output" && - $SOCOS -d "$os_output" $TEST_FLAGS $FLAGS "$source" && - rm -rf "$output"; -} - -test_compilation_failure() { - ( - OBJDIR="$OBJDIR"`dirname "$source"`; - cd `dirname "$source"`; - source=`basename "$source"`; - if test_compilation_success "$@"; then false; else - rm -rf "$output"; - fi; - ) -} - -test_msil() { - ASSEM="Test" - IL_FILE=${ASSEM}".il" - PE_FILE=${ASSEM}".EXE" - - ILASM=ilasm - ILASM_ARGS="/qui /nol /out=${PE_FILE}" - - PEVERIFY=peverify - PEVERIFY_ARGS="/il" - - rm -f $IL_FILE - rm -f $PE_FILE - - $SOCOS -nowarn -target:msil -o ${ASSEM} $FLAGS "$source" && - - ${ILASM} ${ILASM_ARGS} ${IL_FILE} > /dev/null && - if [ ! $? ] ; then - echo "'$ILASM' failed!" - return 1 - fi -# $PEVERIFY $PEVERIFY_ARGS $PE_FILE > /dev/null -# if [ ! $? ] ; then -# echo "'$PEVERIFY' failed!" -# rm -rf $PE_FILE -# return 1 -# fi - - eval ./$PE_FILE "msil" -} - -test_output() { - if [ -f "$expect" ]; then - $DIFF "$actual" "$expect"; - else - cat /dev/null | $DIFF "$actual" -; - fi; -} - -test_file() { - source="$FILE"; - flags="`expr "$source" : "\(.*\)\\.scala"`.flags"; - expect="`expr "$source" : "\(.*\)\\.scala"`-$KIND.check"; - if [ ! -f $expect ]; then - expect="`expr "$source" : "\(.*\)\\.scala"`.check"; - fi; - actual="$OBJDIR""`expr "$source" : "\(.*\)\\.scala"`-$KIND.log"; - if [ -f "$flags" ]; then - TEST_FLAGS=`cat $flags`; - else - TEST_FLAGS=""; - fi; - if [ "$FAILED" = "true" -a ! -f "$actual" ]; then - continue; - fi; - if [ "$HEAD" != "true" ]; then - printf_outline "$TEXT\\n"; - HEAD="true"; - fi; - show_testing "$FILE"; - if [ "$NORUN" != "true" ]; then - rm -f "$actual"; - "$TEST" 1> "$actual" 2>&1 && test_output 1> /dev/null 2>&1; - else - test ! -f "$actual"; - fi; - if [ "$?" = 0 ]; then - SUCCESS_COUNT=`echo "$SUCCESS_COUNT+1" | bc`; - show_success; - rm -f "$actual"; - else - FAILURE_COUNT=`echo "$FAILURE_COUNT+1" | bc`; - show_failure; - fi; - if [ -f "$actual" ]; then - if [ "$SHOWLOG" = "true" ]; then - cat "$actual"; - fi; - if [ "$SHOWDIFF" = "true" ]; then - test_output; - fi; - fi; -} - -test_one() { - HEAD="false"; - TEXT="$1"; shift 1; - TEST="$1"; shift 1; - KIND="$1"; shift 1; - - for FROM do - if [ -d "$FROM" -o -f "$FROM" ]; then - for FILE in . `find "$FROM" -name "*.obj" -prune -o -name "*.scala" -print`; do - if [ "$FILE" = "." ]; then continue; fi; - test_file; - done; - fi; - done - - if [ "$HEAD" = "true" ]; then - echo ""; - fi; -} - - -test_all() { - printf_outline "Test configuration\\n"; - printf_outline "socos executable: "; echo "$SOCOS"; - printf_outline "surus executable: "; echo "$SURUS"; - printf_outline "scala executable: "; echo "$SCALA"; - echo ""; - - test_one "Testing jvm backend" \ - test_compilation "jvm" $FILES_RUN $FILES_JVM; - test_one "Testing interpreter" \ - test_interpretation "int" $FILES_RUN $FILES_INT; - test_one "Testing interpreter shell" \ - test_shell "shl" $FILES_SHL; - test_one "Testing dtd2scala tool" \ - test_xml "xml" $FILES_XML; - test_one "Testing disassembler" \ - test_disassembler "dis" $FILES_DIS; - test_one "Testing compiler (on files whose compilation should succeed)" \ - test_compilation_success "pos" $FILES_POS; - test_one "Testing compiler (on files whose compilation should fail)" \ - test_compilation_failure "neg" $FILES_NEG; - test_one "Testing msil backend" \ - test_msil "msil" $FILES_MSIL; -} - -############################################################################## -# main functions - -print_usage() { - echo "Usage: $0 [OPTION]..." -} - -print_help() { - print_usage; - echo ""; - echo "--auto use filenames to select the test to run"; - echo "--run next files test the interpreter and all backends"; - echo "--jvm next files test the jvm backend"; - echo "--int next files test the interpreter"; - echo "--shl next files test the interpreter shell"; - echo "--xml next files test the dtd2scala tool"; - echo "--dis next files test the disassembler"; - echo "--pos next files test a compilation success"; - echo "--neg next files test a compilation failure"; - echo "--msil next files test the .NET backend (requires Cygwin)" - echo "--boot use bootstrap compiler"; - echo "--no-run run no test, use results of last run"; - echo "--show-log show output of failed tests"; - echo "--show-diff show differences between actual and expected output"; - echo "--failed test only files that failed last time"; - echo "--errors= specify the number of expected errors"; - echo "--socos= specify the socos command"; - echo "--surus= specify the surus command"; - echo "--scala= specify the scala runtime class path"; - echo "--flags= specify flags to pass on to the executable"; - echo "--color=USAGE control the color usage (USAGE=none|some|many)"; - echo "--objdir= specify where to place generated files"; - echo "--help, -? display this help and exit"; - echo "--version output version information and exit"; -} - -print_version() { - echo "$SCRIPT $VERSION"; - echo "Written by $AUTHORS"; -} - -find_program0() { - # if there is a user-specified path, use this one - if [ -n "$fullpath" ]; then - if [ -x "$fullpath" ]; then - return 0; - else - abort "file \`$fullpath' is not executable"; - fi; - fi; - - # try the path used in the build tree - fullpath="`cd "$PREFIX/../"; pwd`/bin/$filename"; - if [ -x "$fullpath" ]; then - return 0; - fi; - - # try the path used in the standard distribution - fullpath="`cd "$PREFIX/../../../"; pwd`/bin/$filename"; - if [ -x "$fullpath" ]; then - return 0; - fi; - - # if the program can be found in the path, use it - if type=`type "$filename" 2> /dev/null`; then - fullpath=`expr "$type" : ".* is \(.*\)"`; - return 0; - fi; - - abort "could not locate executable \`$filename'"; -} - -find_program() { - variable="$1"; shift 1; - filename="$1"; shift 1; - fullpath=`eval echo \\\$$variable`; - find_program0; - eval "$variable=\"$fullpath\""; -} - -find_runtime0() { - # if there is a user-specified path, use this one - if [ -n "$fullpath" ]; then - return 0; - fi; - - # try the path used in the build tree - fullpath="`dirname $filename`/.."; - fullpath="`cd "$fullpath"; pwd`/classes"; - if [ -d "$fullpath" ]; then - return 0; - fi; - - # try the path used in the standard distribution - fullpath="`dirname $filename`/.."; - fullpath="`cd "$fullpath"; pwd`/lib/scala.jar"; - if [ -f "$fullpath" ]; then - return 0; - fi; - - abort "could not locate runtime classes for \`$filename'"; -} - -find_runtime() { - variable="$1"; shift 1; - filename="$1"; shift 1; - fullpath=`eval echo \\\$$variable`; - find_runtime0; - eval "$variable=\"$fullpath\""; -} - -add_file() { - TEST_ALL="false"; - case "$TEST_TYPE" in - auto ) ;; - run ) FILES_RUN="$FILES_RUN $1"; return;; - jvm ) FILES_JVM="$FILES_JVM $1"; return;; - int ) FILES_INT="$FILES_INT $1"; return;; - shl ) FILES_SHL="$FILES_SHL $1"; return;; - xml ) FILES_XML="$FILES_XML $1"; return;; - dis ) FILES_DIS="$FILES_DIS $1"; return;; - pos ) FILES_POS="$FILES_POS $1"; return;; - neg ) FILES_NEG="$FILES_NEG $1"; return;; - msil ) FILES_MSIL="$FILES_MSIL $1"; return;; - * ) abort "unknown test type \`$TEST_TYPE'";; - esac; - case "$1" in - run | */run | */run/* | run/* ) FILES_RUN="$FILES_RUN $1";; - jvm | */jvm | */jvm/* | jvm/* ) FILES_JVM="$FILES_JVM $1";; - int | */int | */int/* | int/* ) FILES_INT="$FILES_INT $1";; - shl | */shl | */shl/* | shl/* ) FILES_SHL="$FILES_SHL $1";; - xml | */xml | */xml/* | xml/* ) FILES_XML="$FILES_XML $1";; - dis | */dis | */dis/* | dis/* ) FILES_DIS="$FILES_DIS $1";; - pos | */pos | */pos/* | pos/* ) FILES_POS="$FILES_POS $1";; - neg | */neg | */neg/* | neg/* ) FILES_NEG="$FILES_NEG $1";; - msil | */msil | */msil/* | msil/* ) FILES_MSIL="$FILES_MSIL $1";; - * ) abort "don't known what to do with \`$1'";; - esac; -} - -main() { - BOOT="false"; - NORUN="false"; - SHOWLOG="false"; - SHOWDIFF="false"; - FAILED="false"; - ERRORS=0; - SUCCESS_COUNT=0; - FAILURE_COUNT=0; - SRCDIR="$PREFIX/files"; - OBJDIR=""; - - TEST_ALL="true"; - TEST_TYPE="auto"; - FILES_RUN=""; - FILES_JVM=""; - FILES_INT=""; - FILES_SHL=""; - FILES_XML=""; - FILES_DIS=""; - FILES_POS=""; - FILES_NEG=""; - FILES_MSIL=""; - - CYGWIN="false"; - DIFF="diff" - case `uname` in - CYGWIN* ) - CYGWIN="true"; - DIFF="diff --text --strip-trailing-cr"; - ;; - esac - - while [ $# -gt 0 ]; do - case "$1" in - --auto ) TEST_TYPE="auto"; shift 1;; - --run ) TEST_TYPE="run"; shift 1;; - --jvm ) TEST_TYPE="jvm"; shift 1;; - --int ) TEST_TYPE="int"; shift 1;; - --shl ) TEST_TYPE="shl"; shift 1;; - --xml ) TEST_TYPE="xml"; shift 1;; - --dis ) TEST_TYPE="dis"; shift 1;; - --pos ) TEST_TYPE="pos"; shift 1;; - --neg ) TEST_TYPE="neg"; shift 1;; - --msil ) TEST_TYPE="msil"; shift 1;; - --boot ) BOOT="true"; shift 1;; - --no-run ) NORUN="true"; shift 1;; - --show-log ) SHOWLOG="true"; shift 1;; - --show-diff ) SHOWDIFF="true"; shift 1;; - --failed ) FAILED="true"; shift 1;; - --errors= ) abort "illegal empty argument for option --errors";; - --errors=* )ERRORS=`expr "$1" : "--errors=\([0-9]*\)$"`;shift 1;; - --socos= ) abort "illegal empty argument for option --socos";; - --socos=* ) SOCOS=`expr "$1" : "--socos=\(.*\)"`; shift 1;; - --surus= ) abort "illegal empty argument for option --surus";; - --surus=* ) SURUS=`expr "$1" : "--surus=\(.*\)"`; shift 1;; - --scala= ) abort "illegal empty argument for option --scala";; - --scala=* ) SCALA=`expr "$1" : "--scala=\(.*\)"`; shift 1;; - --flags= ) abort "illegal empty argument for option --flags";; - --flags=* ) FLAGS=`expr "$1" : "--flags=\(.*\)"`; shift 1;; - --color= ) abort "illegal empty argument for option --color";; - --color=* ) COLOR=`expr "$1" : "--color=\(.*\)"`; shift 1;; - --objdir= ) abort "illegal empty argument for option --objdir";; - --objdir=* ) OBJDIR=`expr "$1" : "--objdir=\(.*\)"`; shift 1;; - --help| -? ) print_help; exit 0;; - --version ) print_version; exit 0;; - -* ) abort "unknown option $1";; - * ) add_file "$1"; shift 1;; - esac; - done; - - if [ -z "$ERRORS" ]; then - abort "illegal non-numerical argument for option --errors"; - fi; - - if [ -z "$COLOR" -a -n "$EMACS" ]; then - COLOR="none"; - fi; - color_initialization "${COLOR:-many}"; - find_program SOCOS scalac; - find_program SURUS scalarun; - find_program SCALA scala; - find_program DTD2SCALA dtd2scala; - find_program SCALAP scalap; - find_program SCALA_INFO scala-info; - - if [ "$BOOT" = true ]; then - SOCOS=${SOCOS}boot; - fi; - - if [ "$TEST_ALL" = "true" ]; then - case "$TEST_TYPE" in - run ) FILES_RUN="$FILES_RUN $SRCDIR/run";; - esac; - case "$TEST_TYPE" in - auto | jvm ) FILES_JVM="$FILES_JVM $SRCDIR/run $SRCDIR/jvm";; - esac; - case "$TEST_TYPE" in - auto | int ) FILES_INT="$FILES_INT $SRCDIR/run";; - esac; - case "$TEST_TYPE" in - auto | shl ) FILES_SHL="$FILES_SHL $SRCDIR/shl";; - esac; - case "$TEST_TYPE" in - auto | xml ) FILES_XML="$FILES_XML $SRCDIR/xml";; - esac; - case "$TEST_TYPE" in - auto | dis ) FILES_DIS="$FILES_DIS $SRCDIR/dis";; - esac; - case "$TEST_TYPE" in - auto | pos ) FILES_POS="$FILES_POS $SRCDIR/pos";; - esac; - case "$TEST_TYPE" in - auto | neg ) FILES_NEG="$FILES_NEG $SRCDIR/neg";; - esac; - case "$TEST_TYPE" in - msil ) FILES_MSIL="$FILES_MSIL $SRCDIR/run";; - esac; - fi; - - if [ -n "$OBJDIR" ]; then - if [ -d "$OBJDIR" ]; then - OBJDIR=`cd "$OBJDIR"; pwd`/; - else - abort "could not access directory '$OBJDIR'"; - fi - fi - - test_all; - - if [ $FAILURE_COUNT -eq 0 ]; then - printf_success "All tests were successful\\n"; - elif [ $FAILURE_COUNT -eq 1 ]; then - printf_failure "There was 1 test that failed\\n"; - else - printf_failure "There were $FAILURE_COUNT tests that failed\\n"; - fi; - -# printf_failure "\\n"; -# printf_failure "Note that currently there are 2 tests in section \"jvm backend\" that fail anyway\\n"; - - if [ $FAILURE_COUNT -eq "$ERRORS" ]; then - exit 0; - else - exit 1; - fi; -} +case "$PREFIX" in + . ) dirname="..";; + * ) dirname=`dirname "$PREFIX"`;; +esac +abort "this script has been replaced by $dirname/bin/scalatest"; ############################################################################## -main "$@"; -############################################################################## -- cgit v1.2.3