summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2005-11-03 10:04:32 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2005-11-03 10:04:32 +0000
commit1901db1ef03161e0af930c0993800b0a277f696f (patch)
treebb2ae86dd4a6f6282c67fa12055c2c533f378807
parentaa7d8d3ffcb035b38ebb4c256047b759d11f6bc4 (diff)
downloadscala-1901db1ef03161e0af930c0993800b0a277f696f.tar.gz
scala-1901db1ef03161e0af930c0993800b0a277f696f.tar.bz2
scala-1901db1ef03161e0af930c0993800b0a277f696f.zip
Replaces by test-nsc/scalanstest
-rwxr-xr-xbin/scalanstest680
1 files changed, 0 insertions, 680 deletions
diff --git a/bin/scalanstest b/bin/scalanstest
deleted file mode 100755
index c8645e4e62..0000000000
--- a/bin/scalanstest
+++ /dev/null
@@ -1,680 +0,0 @@
-#!/bin/sh
-##############################################################################
-# __ #
-# ________ ___ / / ___ Scala Tools Launch Script #
-# / __/ __// _ | / / / _ | (c) 2002-2005, LAMP/EPFL #
-# __\ \/ /__/ __ |/ /__/ __ | #
-# /____/\___/_/ |_/____/_/ | | #
-# |/ #
-##############################################################################
-
-# $Id$
-
-##############################################################################
-# Configuration
-
-# The configure function contains all the configurable variables of
-# this script. Each of these variables may be overridden by defining
-# an environment variable with the same but where the "default_" has
-# been replaced by "SCALA_". For example, to start scalaint with a big
-# initial heap size, one may run the following command:
-#
-# env SCALA_SCALA_ARGS=-Xms1024m scalaint".
-#
-# These variables must use the Unix form for paths and path lists
-# (i.e. use '/' as file separator and ':' as path separator). There
-# are two exceptions: JAVA_ARGS and SCALA_ARGS which must use the
-# paltform-specific form.
-#
-# The following environment variables are also read by this script:
-#
-# - SCALA_CLASSPATH: if defined, it is used as the default classpath
-# by all Scala tools.
-#
-# - CLASSPATH: if defined and SCALA_CLASSPATH is undefined, it is used
-# as the default classpath by all Scala tools.
-#
-# - SCALA_SOURCEPATH: if defined, it is used as the default sourcepath
-# by all Scala tools.
-#
-# - SCALA_BOOTCLASSPATH: if defined, it is used as the default
-# bootclasspath by all Scala tools.
-#
-# - SCALA_EXTDIRS: if defined, it is used as the default extdirs by
-# all Scala tools.
-#
-# These variables must use the platform-specific form for paths and
-# path lists.
-
-configure() {
-
- # Location of the Scala library sources.
- default_LIBRARY_SOURCES="$PREFIX/sources";
-
- # Location of the Scala library.
- default_LIBRARY_CLASSES="$PREFIX/build/nslib";
-
- # Location of the Scala tools library.
- default_TOOLS_CLASSES="$PREFIX/build/nslib";
-
- # Location of the FJBG library.
- default_FJBG_CLASSES="/home/linuxsoft/apps/fjbg/jars/fjbg.jar";
-
- # Location of the MSIL library.
- default_MSIL_CLASSES="/home/linuxsoft/apps/msil/msil.jar";
-
- # Command to start the Java VM.
- default_JAVA_CMD="java";
-
- # Additional arguments to pass to the Java VM.
- default_JAVA_ARGS="-enableassertions";
-
- # Command to start the Scala VM.
- default_SCALA_CMD="$PREFIX/bin/ns";
-
- # Additional arguments to pass to the Scala VM.
- default_SCALA_ARGS="-enableassertions";
-
- # Command to start subprocesses. This is mainly for debugging
- # purposes. For example, one may display the Java command that is
- # started by "scala", by running "env SCALA_EXEC=echo scala".
- default_EXEC="exec";
-
-}
-
-##############################################################################
-# Error functions
-
-# Prints a warning message on stderr.
-warning() {
- echo "$0: warning:" "$@" 1>&2;
-}
-
-# Prints an error message on stderr.
-error() {
- echo "$0:" "$@" 1>&2;
-}
-
-# Prints an error message on stderr and exits with a non-zero status.
-abort() {
- error "$@";
- exit 1;
-}
-
-##############################################################################
-# Printing functions
-
-# Initializes the printf functions
-printf_initialization() {
- case "$1" in
- many )
- printf_font_outline="printf \\033[1;39m";
- printf_font_success="printf \\033[1;32m";
- printf_font_failure="printf \\033[1;31m";
- printf_font_warning="printf \\033[1;33m";
- printf_font_default="printf \\033[0;39m";
- ;;
- some )
- printf_font_outline="printf \\033[1m";
- printf_font_success="printf \\033[0m";
- printf_font_failure="printf \\033[1m";
- printf_font_warning="printf \\033[1m";
- printf_font_default="printf \\033[0m";
- ;;
- none )
- printf_font_outline="";
- printf_font_success="";
- printf_font_failure="";
- printf_font_warning="";
- printf_font_default="";
- ;;
- * )
- abort "unknown color mode \`$1'";
- ;;
- esac;
-}
-
-# Prints formated text in outline font.
-printf_outline() {
- $printf_font_outline;
- printf "$@";
- $printf_font_default;
-}
-
-# Prints formated text in success font.
-printf_success() {
- $printf_font_success;
- printf "$@";
- $printf_font_default;
-}
-
-# Prints formated text in failure font.
-printf_failure() {
- $printf_font_failure;
- printf "$@";
- $printf_font_default;
-}
-
-# Prints formated text in warning font.
-printf_warning() {
- $printf_font_warning;
- printf "$@";
- $printf_font_default;
-}
-
-##############################################################################
-# File name and path list conversion functions
-
-# Prints the OS-specific form of the specified Unix form file name.
-get_os_filename() {
- [ $# = 1 ] || abort "internal error";
- case "$UNAME" in
- CYGWIN* ) cygpath --windows "$1";;
- * ) echo "$@";;
- esac;
-}
-
-# Prints the Unix form of the specified OS-specific form file name.
-get_unix_filename() {
- [ $# = 1 ] || abort "internal error";
- case "$UNAME" in
- CYGWIN* ) cygpath --unix "$1";;
- * ) echo "$@";;
- esac;
-}
-
-# Prints the OS-specific form of the specified Unix form path list.
-get_os_pathlist() {
- [ $# = 1 ] || abort "internal error";
- case "$UNAME" in
- CYGWIN* ) cygpath --window --path "$1";;
- * ) echo "$@";;
- esac;
-}
-
-# Prints the Unix form of the specified OS-specific form path list.
-get_unix_pathlist() {
- [ $# = 1 ] || abort "internal error";
- case "$UNAME" in
- CYGWIN* ) cygpath --unix --path "$1";;
- * ) echo "$@";;
- esac;
-}
-
-##############################################################################
-# Implementation of scalatest
-
-# Prints the scalatest usage.
-test_print_usage() {
- [ $# = 0 ] || abort "internal error";
- echo "Usage: $0 [OPTION]..."
-}
-
-# Prints the scalatest help.
-test_print_help() {
- [ $# = 0 ] || abort "internal error";
- test_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 "--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";
- 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=<int> specify the number of expected errors";
- echo "--flags=<flags> specify flags to pass on to the executable";
- echo "--color=USAGE control the color usage (USAGE=none|some|many)";
- echo "--objdir=<dir> specify where to place generated files";
- echo "--help, -? display this help and exit";
- echo "--version output version information and exit";
-}
-
-# Prints the scalatest version.
-test_print_version() {
- [ $# = 0 ] || abort "internal error";
- echo "$SCRIPT "'$Revision$';
-}
-
-# Prints the name of the specified test file.
-test_print_testing() {
- [ $# = 1 ] || abort "internal error";
- printf_outline "testing: ";
- case "$1" in
- "$TESTROOT"* )
- printf "%-60s " "[...]`expr "$1" : "$TESTROOT\(.*\)"`";
- return 0;
- ;;
- esac;
- printf "%-60s " "$1";
-}
-
-# Prints a test success notification.
-test_print_success() {
- [ $# = 0 ] || abort "internal error";
- printf "[";
- printf_success " OK ";
- printf "]\\n";
-}
-
-# Prints a test failure notification.
-test_print_failure() {
- [ $# = 0 ] || abort "internal error";
- printf "[";
- printf_failure "FAILED";
- printf "]\\n";
-}
-
-
-# Tests a compilation success.
-test_run_pos() {
- rm -rf "$dstbase".obj &&
- mkdir -p "$dstbase".obj &&
- $SOCOS -d "$os_dstbase".obj "$@" "$os_srcbase".scala &&
- rm -rf "$dstbase".obj;
-}
-
-# Tests a compilation failure.
-test_run_neg() {
- rm -rf "$dstbase".obj &&
- mkdir -p "$dstbase".obj &&
- ( cd "$srcdir" && $SOCOS -d "$os_dstbase".obj "$@" "$testname".scala; );
- status=$?;
- rm -rf "$dstbase".obj;
- if [ "$status" = 0 ]; then return 1; else return 0; fi;
-}
-
-# Tests the JVM backend.
-test_run_jvm() {
- rm -rf "$dstbase".obj &&
- mkdir -p "$dstbase".obj &&
- $SOCOS -d "$os_dstbase".obj "$@" "$os_srcbase".scala &&
- $SCALA -classpath "$os_dstbase".obj Test "jvm" &&
- rm -rf "$dstbase".obj;
-}
-
-# Tests the interpreter.
-test_run_int() {
- $SURUS "$@" "$os_srcbase".scala -- Test "int";
-}
-
-# Tests the interpreter shell.
-test_run_shl() {
- cat "$os_srcbase".scala | $SURUS -interactive -nologo "$@";
-}
-
-# Test the disassemblers.
-test_run_dis() {
- argsfile="$srcbase".args;
- if [ ! -f "$argsfile" ]; then
- argsfile=/dev/null;
- fi;
- rm -rf "$dstbase".obj &&
- mkdir -p "$dstbase".obj &&
- $SOCOS -d "$os_dstbase".obj "$@" "$os_srcbase".scala &&
- $SCALAP -classpath "$os_dstbase".obj `cat "$argsfile"` &&
- rm -rf "$dstbase".obj;
-}
-
-# Tests the .NET backend.
-test_run_msil() {
- assemblies=`get_os_pathlist "/home/linuxsoft/apps/msil"`;
- rm -f "$dstbase".il &&
- rm -f "$dstbase".EXE &&
- $SOCOS -nowarn -target:msil -o "$os_dstbase" -r $assemblies "$@" \
- "$os_srcbase".scala &&
- case "$UNAME" in
- CYGWIN* )
- ilasm /qui /nol /out="$os_dstbase".EXE "$os_dstbase".il \
- > /dev/null &&
-# peverify /il "$os_dstbase".EXE > /dev/null &&
- "$dstbase".EXE "msil";;
- * )
- ilasm /output:"$os_dstbase".EXE "$os_dstbase".il \
- > /dev/null &&
- mono "$dstbase".EXE "msil";;
- esac &&
- rm -f "$dstbase".EXE &&
- rm -f "$dstbase".il;
-}
-
-# Checks the specified test.
-test_check_test() {
- [ $# = 1 ] || abort "internal error";
- testfile="$1"; shift 1;
- # compute test name
- testname=`basename "$testfile" .scala`;
-
- # compute source and destination directories (absolute paths)
- srcdir=`dirname "$testfile"`;
- srcdir=`cd "$srcdir"; pwd`;
- dstdir="$OBJDIR""$srcdir";
-
- # compute source and destination base names
- srcbase="$srcdir"/"$testname";
- dstbase="$dstdir"/"$testname"-$kind;
- os_srcbase=`get_os_filename "$srcbase"`;
- os_dstbase=`get_os_filename "$dstbase"`;
-
- # compute flags file
- flagsfile="$srcbase".flags;
- if [ ! -f "$flagsfile" ]; then
- flagsfile=/dev/null;
- fi;
-
- # compute check file
- checkfile="$srcbase"-$kind.check;
- if [ ! -f "$checkfile" ]; then
- checkfile="$srcbase".check;
- fi;
- if [ ! -f "$checkfile" ]; then
- checkfile=/dev/null;
- fi;
-
- # compute log file
- logfile="$dstbase".log;
-
- # if we are testing only failed tests, skip successful tests
- if [ "$FAILED" = "true" -a ! -f "$logfile" ]; then
- return 0;
- fi;
-
- # if that's the first file of the section print section header
- if [ -n "$header" ]; then
- printf_outline "$header\\n";
- unset header;
- fi;
-
- # print tested file
- test_print_testing "$testfile";
-
- # run test
- if [ "$NORUN" = "true" ]; then
- [ ! -f "$logfile" ];
- else
- rm -f "$logfile";
- { [ -d "$dstdir" ] || mkdir -p "$dstdir"; } &&
- ( test_run_$kind `cat "$flagsfile"` $FLAGS 1> "$logfile" 2>&1; ) &&
- $DIFF "$logfile" "$checkfile" 1> /dev/null 2>&1 &&
- rm -f "$logfile";
- fi;
-
- # print result
- if [ "$?" = 0 ]; then
- SUCCESS_COUNT=`echo "$SUCCESS_COUNT+1" | bc`;
- test_print_success;
- else
- FAILURE_COUNT=`echo "$FAILURE_COUNT+1" | bc`;
- test_print_failure;
- if [ ! -f "$logfile" ]; then
- logfile=/dev/null;
- fi;
- if [ "$SHOWLOG" = "true" ]; then
- cat "$logfile";
- fi;
- if [ "$SHOWDIFF" = "true" ]; then
- $DIFF "$logfile" "$checkfile";
- fi;
- fi;
-}
-
-# Checks the specified file
-test_check_file() {
- [ $# = 1 ] || abort "internal error";
- file="$1"; shift 1;
- for testfile in "" `find "$file" -name "*.obj" -prune -o -name "*.scala" -a -type f -print`; do
- [ -z "$testfile" ] && continue;
- test_check_test "$testfile";
- done;
-}
-
-# Checks all files of the specified kind.
-test_check_kind() {
- [ $# -ge 2 ] || abort "internal error";
- header="$1"; shift 1;
- kind="$1"; shift 1;
- for file in "" "$@"; do
- [ -z "$file" ] && continue;
- test_check_file "$file";
- done
- if [ -z "$header" ]; then
- echo "";
- fi;
-}
-
-# Checks everything.
-test_check_all() {
- [ $# = 0 ] || abort "internal error";
- test_check_kind "Testing JVM backend" \
- "jvm" $FILES_RUN $FILES_JVM;
-# test_check_kind "Testing interpreter shell" \
-# "shl" $FILES_SHL;
-# test_check_kind "Testing disassembler" \
-# "dis" $FILES_DIS;
- test_check_kind "Testing compiler (on files whose compilation should succeed)" \
- "pos" $FILES_POS;
- test_check_kind "Testing compiler (on files whose compilation should fail)" \
- "neg" $FILES_NEG;
- test_check_kind "Testing .NET backend" \
- "msil" $FILES_MSIL;
-# test_check_kind "Testing interpreter" \
-# "int" $FILES_RUN $FILES_INT;
-}
-
-
-# Adds a new file to the appropriate file list(s).
-test_add_file() {
- [ $# = 1 ] || abort "internal error";
- case "$1" in
- *.scala )
- if [ ! \( -d "$1" -o -f "$1" \) ]; then
- abort "don't know what to do with '$1'";
- fi;;
- * )
- if [ ! -d "$1" ]; then
- abort "don't know what to do with '$1'";
- fi;;
- esac;
- 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;;
-# 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";;
-# 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;
-}
-
-# Implements "scalatest ...".
-test_main() {
- NORUN="false";
- SHOWLOG="false";
- SHOWDIFF="false";
- FAILED="false";
- ERRORS=0;
- SUCCESS_COUNT=0;
- FAILURE_COUNT=0;
- TESTROOT="$PREFIX/test-nsc/files";
- SRCDIR="$PREFIX/test-nsc/files";
- OBJDIR="""";
-
- TEST_ALL="true";
- TEST_TYPE="auto";
- FILES_RUN="";
- FILES_JVM="";
-# FILES_INT="";
-# FILES_SHL="";
-# FILES_DIS="";
- FILES_POS="";
- FILES_NEG="";
- FILES_MSIL="";
-
- SCALA="$PREFIX/bin/ns";
- SOCOS="$PREFIX/bin/nsc";
- SURUS="$PREFIX/bin/scalarun";
- SCALAP="$PREFIX/bin/nsp";
- DIFF="diff";
-
- case `uname` in
- CYGWIN* )
- 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;;
-# --dis ) TEST_TYPE="dis"; shift 1;;
- --pos ) TEST_TYPE="pos"; shift 1;;
- --neg ) TEST_TYPE="neg"; shift 1;;
- --msil ) TEST_TYPE="msil"; 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;;
- --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=* ) OBJDIR=`expr "$1" : "--objdir=\(.*\)"`; shift 1;;
- --help| -? ) test_print_help; exit 0;;
- --version ) test_print_version; exit 0;;
- -* ) abort "unknown option $1";;
- * ) test_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;
- printf_initialization "${COLOR:-many}";
-
- 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 | 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;
-
- SCALA_SCALA_ARGS="-Xmx512M $SCALA_SCALA_ARGS";
- export SCALA_SCALA_ARGS;
-
- if [ -n "$OBJDIR" ]; then
- if [ -d "$OBJDIR" ] || mkdir -p "$OBJDIR"; then
- OBJDIR=`cd "$OBJDIR"; pwd`;
- else
- abort "could not create directory '$OBJDIR'";
- fi
- fi
-
- printf_outline "Source directory is: $SRCDIR\\n\\n";
-
- test_check_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;
-
- if [ $FAILURE_COUNT -eq "$ERRORS" ]; then
- exit 0;
- else
- exit 1;
- fi;
-}
-
-##############################################################################
-# Definition of UNAME, SOURCE, SCRIPT and PREFIX
-
-unset SCRIPT;
-UNAME=`uname`;
-SOURCE=$0;
-SCRIPT=`basename "$SOURCE"`;
-while [ -h "$SOURCE" ]; do
- SCRIPT=`basename "$SOURCE"`;
- LOOKUP=`ls -ld "$SOURCE"`;
- TARGET=`expr "$LOOKUP" : '.*-> \(.*\)$'`;
- if expr "${TARGET:-.}/" : '/.*/$' > /dev/null; then
- SOURCE=${TARGET:-.};
- else
- SOURCE=`dirname "$SOURCE"`/${TARGET:-.};
- fi;
-done;
-PREFIX=`dirname "$SOURCE"`/..;
-prefix=$PREFIX;
-PREFIX=`cd "$PREFIX"; pwd`;
-
-##############################################################################
-# Test of invocation method
-
-if [ -z "$SCRIPT" ]; then
- abort "Illegal direct invocation; invoke me through a symbolic link.";
-fi;
-
-##############################################################################
-# Configuration and invocation of $SCRIPT
-
-configure;
-
-case "$SCRIPT" in
- nst* ) test_main "$@";;
- scalanstest* ) test_main "$@";;
- * ) abort "Don't know what to do for $SCRIPT.";;
-esac;
-
-##############################################################################