summaryrefslogtreecommitdiff
path: root/test/clitest
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2009-04-29 11:35:28 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2009-04-29 11:35:28 +0000
commit8137c1492f49a291ebaf2843e6d01240a21ae96d (patch)
tree8abcfce29f4c5df5a47c11bab9cedd264bba73ae /test/clitest
parentcee28d7cc71e83463842f6672d13a5b14bb7c954 (diff)
downloadscala-8137c1492f49a291ebaf2843e6d01240a21ae96d.tar.gz
scala-8137c1492f49a291ebaf2843e6d01240a21ae96d.tar.bz2
scala-8137c1492f49a291ebaf2843e6d01240a21ae96d.zip
Removed outdated test infastructure.
Diffstat (limited to 'test/clitest')
-rwxr-xr-xtest/clitest497
1 files changed, 0 insertions, 497 deletions
diff --git a/test/clitest b/test/clitest
deleted file mode 100755
index 9a26423d6e..0000000000
--- a/test/clitest
+++ /dev/null
@@ -1,497 +0,0 @@
-#!/bin/sh
-##############################################################################
-# __ #
-# ________ ___ / / ___ Scala Tools Launch Script #
-# / __/ __// _ | / / / _ | (c) 2002-2009, LAMP/EPFL #
-# __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ #
-# /____/\___/_/ |_/____/_/ | | #
-# |/ #
-##############################################################################
-
-# $Id$
-
-##############################################################################
-# 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;
-}
-
-##############################################################################
-# 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 clitest
-
-# Prints the clitest usage.
-test_print_usage() {
- [ $# = 0 ] || abort "internal error";
- echo "Usage: $0 [OPTION]..."
-}
-
-# Prints the clitest help.
-test_print_help() {
- [ $# = 0 ] || abort "internal error";
- test_print_usage;
- echo "";
- echo "--quick use the 'quick' build instead of distribution";
- echo '--installed use the installed programs on $PATH'
- echo "--debug redirect all outputs to standard output";
- echo "--info display information messages";
- echo "--javac run same tests with the Sun Java compiler";
- echo "--jikes run same tests with the IBM Java compiler";
- echo "--jredir=<dir> specify the Sun JRE installation directory (jikes)";
- echo "--objdir=<dir> specify where to place generated files";
- echo "--verbose display verbose messages";
- echo "--help, -? display this help and exit";
- echo "--version output version information and exit";
-}
-
-# Prints the clitest version.
-test_print_version() {
- [ $# = 0 ] || abort "internal error";
- echo "$SCRIPT 1.3";
-}
-
-# 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;
- dir=`dirname "$1"`;
- file=`cd $dir && pwd`/`basename $1`;
- FILES="$FILES $file";;
- * )
- if [ ! -d "$1" ]; then
- abort "don't know what to do with '$1'";
- fi;
- dir=`cd "$1" && pwd`;
- file=`find "$dir" -name "Main$SUFFIX" -a -type f -print`;
- FILES="$FILES $file";;
- esac;
-}
-
-test_run() {
- [ $# = 1 ] || abort "internal error";
- cmd="$1"; shift 1;
- [ "$DEBUG" = "debug" ] && ( printf_outline "[DEBUG]"; echo "$cmd");
- eval "$cmd";
-}
-
-test_diff() {
- [ $# = 2 ] || abort "internal error";
- check="$1"; shift 1;
- log="$1"; shift 1;
- [ "$DEBUG" = "debug" ] && return;
- sed -e "s#$TEST_DIR/##g" $log > $TMP_FILE;
- $DIFF $check $TMP_FILE > $DIFF_FILE
- if [ -n "`cat $DIFF_FILE`" ] ; then
- printf_outline "\\nDifferences between check and log files:\\n";
- file=`echo $check | sed -e "s#$PREFIX/##g"`;
- printf "$file\\n";
- cat $DIFF_FILE;
- fi
-}
-
-test_compile() {
- [ $# = 3 ] || abort "internal error";
- source="$1"; shift 1;
- check="$1"; shift 1;
- info="$1"; shift 1;
- [ -d "$OUTPUT_DIR" ] || mkdir -p $OUTPUT_DIR;
- [ -f "$LOG_FILE" ] && $RM $LOG_FILE;
- if [ "$COMPILER" = "javac" ] || [ "$COMPILER" = "jikes" ]; then
- suffix=".${COMPILER}";
- [ "$LANG" = "java5" ] && suffix=".${COMPILER}5";
- [ "$LANG" = "java6" ] && suffix=".${COMPILER}6";
- else
- suffix=".$COMPILER";
- fi;
- file=`echo $source | sed -e "s#$PREFIX/##g"`;
- if [ "$LEVEL" = "info" ] || [ "$LEVEL" = "verbose" ] ; then
- printf_outline "\\nSource file: $file\\n"
- cat $source;
- fi
- printf "\\n";
-
- #=`get_unix_filename "$source"`;
- printf "Compile $file ($info) with unknown option '-dd'\\n"
- test_run "env CLASSPATH= $COMPILER_COMMAND \
- -dd $OUTPUT_DIR $source 2>> $LOG_FILE 1>> $LOG_FILE";
-
- printf "Compile $file ($info) with no classpath information\\n"
- test_run "env CLASSPATH= $COMPILER_COMMAND \
- -d $OUTPUT_DIR $source 2>> $LOG_FILE 1>> $LOG_FILE";
-
- printf "Compile $file ($info) with variable CLASSPATH\\n"
- test_run "env CLASSPATH=$OUTPUT_DIR $COMPILER_COMMAND \
- -d $OUTPUT_DIR $source 2>> $LOG_FILE 1>> $LOG_FILE";
-
- printf "Compile $file ($info) with option -classpath\\n"
- test_run "env CLASSPATH= $COMPILER_COMMAND -classpath $OUTPUT_DIR \
- -d $OUTPUT_DIR $source 2>> $LOG_FILE 1>> $LOG_FILE";
-
- printf "Compile $file ($info) with current directory as default classpath\\n"
- test_run "(cd $OUTPUT_DIR &&
- env CLASSPATH= $COMPILER_COMMAND $source 2>> $LOG_FILE 1>> $LOG_FILE)";
-
- test_diff "$check$suffix" "$LOG_FILE";
-
- if [ "$LEVEL" = "verbose" ] ; then
- printf_outline "\\nTest directory:\\n";
- $TREE $TMP_DIR;
- fi
-}
-
-test_execute() {
- [ $# = 2 ] || abort "internal error";
- main="$1"; shift 1;
- check="$1"; shift 1;
- suffix=".$LANG";
- [ "$LANG" = "java6" ] && suffix=".java5";
-
- [ -f "$LOG_FILE" ] && $RM $LOG_FILE;
- printf "\\n";
-
- printf "Execute $main with unknown option '-cpp'\\n"
- test_run "env CLASSPATH= \
- $RUNTIME_COMMAND -cpp $OUTPUT_DIR $main 2 \
- 2>> $LOG_FILE 1>> $LOG_FILE";
-
- printf "Execute $main with variable CLASSPATH\\n"
- test_run "env CLASSPATH=$OUTPUT_DIR \
- $RUNTIME_COMMAND $main 1 \
- 2>> $LOG_FILE 1>> $LOG_FILE";
-
- printf "Execute $main with option -classpath\\n"
- test_run "env CLASSPATH= \
- $RUNTIME_COMMAND -classpath $OUTPUT_DIR $main 2 \
- 2>> $LOG_FILE 1>> $LOG_FILE";
-
- printf "Execute $main with current directory as default classpath\\n"
- test_run "(cd $OUTPUT_DIR &&
- env CLASSPATH= $RUNTIME_COMMAND $main 3 2>> $LOG_FILE 1>> $LOG_FILE)";
-
- printf "Execute $main with quoted argument\\n"
- test_run "env CLASSPATH= \
- $RUNTIME_COMMAND -classpath $OUTPUT_DIR $main 4 \"a b c\" \
- 2>> $LOG_FILE 1>> $LOG_FILE";
-
- test_diff "$check$suffix" "$LOG_FILE";
-}
-
-test_interpret() {
- [ $# = 2 ] || abort "internal error";
- main="$1"; shift 1;
- check="$1"; shift 1;
- [ "$LANG" = "scala" ] || return;
- [ -f "$LOG_FILE" ] && $RM $LOG_FILE;
- printf "\\n"
-
- printf "Interpret $main with unknown option '-cpp'\\n"
- test_run "(env CLASSPATH= \
- printf $main'.main(Array(\"0\"))\n:q' | $INTERPRETER_COMMAND \
- -cpp $OUTPUT_DIR 2>> $LOG_FILE 1>> $LOG_FILE)";
- printf "\\n" >> $LOG_FILE # newline
-
- printf "Interpret $main with variable CLASSPATH\\n"
- test_run "(printf $main'.main(Array(\"1\"))\n:q' \
- | env CLASSPATH=$OUTPUT_DIR $INTERPRETER_COMMAND \
- 2>> $LOG_FILE 1>> $LOG_FILE)";
- printf "\\n" >> $LOG_FILE # newline
-
- printf "Interpret $main with option -classpath\\n"
- test_run "(env CLASSPATH= \
- printf $main'.main(Array(\"2\"))\n:q' | $INTERPRETER_COMMAND \
- -classpath $OUTPUT_DIR 2>> $LOG_FILE 1>> $LOG_FILE)";
- printf "\\n" >> $LOG_FILE # newline
-
- printf "Interpret $main with current directory as default classpath\\n"
- test_run "(cd $OUTPUT_DIR &&
- printf $main'.main(Array(\"3\"))\n:q' | $INTERPRETER_COMMAND \
- 2>> $LOG_FILE 1>> $LOG_FILE)";
- printf "\\n" >> $LOG_FILE # newline
-
- test_diff "$check.scalaint" "$LOG_FILE";
-}
-
-test_docgen() {
- [ $# = 2 ] || abort "internal error";
- source="$1"; shift 1;
- check="$1"; shift 1;
- [ -d "$OUTPUT_DIR" ] || mkdir -p $OUTPUT_DIR;
- [ -f "$LOG_FILE" ] && $RM $LOG_FILE;
- [ -d "$API_DIR" ] && $RM -r "$API_DIR/*" || mkdir -p $API_DIR;
- suffix=".${LANG}_api";
- file=`echo $source | sed -e "s#$PREFIX/##g"`;
- if [ "$LEVEL" = "info" ] || [ "$LEVEL" = "verbose" ] ; then
- printf_outline "\\nSource file: $file\\n"
- cat $source;
- fi
- printf "\\n";
-
- printf "Generate documentation for $file\\n"
- test_run "env CLASSPATH= $DOCGEN_COMMAND \
- -d $API_DIR $source 2>> $LOG_FILE 1>> $LOG_FILE";
-
- n=`$TREE $API_DIR | wc -l`;
- $TREE $API_DIR | tail -n `echo "$n-1" | bc` > "$LOG_FILE";
- test_diff "$check$suffix" "$LOG_FILE";
-
- if [ "$LEVEL" = "verbose" ] ; then
- printf_outline "\\nAPI directory:\\n";
- $TREE $API_DIR;
- fi
-}
-
-##############################################################################
-# Initialization
-
-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`;
-
-QUICK="$PREFIX/build/quick/bin/"
-if [ -d "$PREFIX/dists" ]; then
- LATEST="$PREFIX/dists/latest/bin/";
-else
- if [ -d "$PREFIX/build" ]; then
- LATEST="$QUICK";
- else
- LATEST="$PREFIX/bin/";
- fi;
-fi;
-BIN_DIR="$LATEST"
-
-if [ -n "`which mktemp`" ] ; then
- TMP_DIR=`mktemp -d`
-else
- TMP_DIR=${TMPDIR-/tmp}/tmp-$USER.`basename $0`
-fi
-
-if [ -d "$PREFIX/test" ]; then
- TEST_DIR="$PREFIX/test";
-elif [ -d "$PREFIX/misc/scala-test" ]; then
- TEST_DIR="$PREFIX/misc/scala-test";
-else
- abort "Test directory not found";
-fi;
-SOURCE_DIR=$TEST_DIR/files/cli
-OUTPUT_DIR=$TMP_DIR/classes
-API_DIR=$TMP_DIR/api
-
-DIFF="diff";
-RM="rm -f";
-TREE="tree";
-
-case `uname` in
- CYGWIN* )
- DIFF="diff --text --strip-trailing-cr";
- ;;
-esac;
-
-DEBUG="";
-LANG="scala";
-SUFFIX=".scala";
-COMPILER="scalac";
-LEVEL="";
-while [ $# -gt 0 ]; do
- case "$1" in
- --debug ) DEBUG="debug"; LEVEL="verbose"; shift 1;;
- --quick ) BIN_DIR="$QUICK"; shift 1;;
- --installed) BIN_DIR=""; shift 1;;
- --info ) LEVEL="info"; shift 1;;
- --javac ) LANG="java"; SUFFIX=".java"; COMPILER="javac"; shift 1;;
- --jikes ) LANG="java"; SUFFIX=".java"; COMPILER="jikes"; shift 1;;
- --jredir=* ) JRE_DIR=`expr "$1" : "--jredir=\(.*\)"`; shift 1;;
- --objdir=* ) OUTPUT_DIR=`expr "$1" : "--objdir=\(.*\)"`; shift 1;;
- --verbose ) LEVEL="verbose"; shift 1;;
- --help ) test_print_help; exit 0;;
- --version ) test_print_version; exit 0;;
- -* ) abort "unknown option $1";;
- * ) test_add_file "$1"; shift 1;; #test_print_usage; exit 0;;
- esac;
-done;
-
-if [ "$LANG" = "scala" ]; then
- RUNTIME_COMMAND="${BIN_DIR}scala";
- COMPILER_COMMAND="${BIN_DIR}$COMPILER";
- INTERPRETER_COMMAND="${BIN_DIR}scala";
- DOCGEN_COMMAND="${BIN_DIR}scaladoc";
-elif [ "$LANG" = "java" ]; then
- RUNTIME_COMMAND=`which ${JAVACMD:=java}`
- BIN_DIR=`dirname $RUNTIME_COMMAND`;
- [ "$COMPILER" = "javac" ] && COMPILER_COMMAND=$BIN_DIR/$COMPILER;
- [ "$COMPILER" = "jikes" ] && COMPILER_COMMAND=`which $COMPILER`;
- DOCGEN_COMMAND=`dirname "$COMPILER_COMMAND"`/javadoc;
-else
- abort "unknown language '$LANG'"
-fi
-[ -x "$COMPILER_COMMAND" ] || abort "Command $COMPILER_COMMAND not found";
-[ -x "$RUNTIME_COMMAND" ] || abort "Command $RUNTIME_COMMAND not found";
-
-printf_initialization "${COLOR:-many}";
-
-printf_outline "Output directory is : $OUTPUT_DIR\\n";
-printf_outline "Compiler command is : $COMPILER_COMMAND\\n";
-printf_outline "Runtime command is : $RUNTIME_COMMAND\\n";
-
-jvm_version=`${JAVACMD:=java} -version 2>&1 | head -3 | tail -1`
-printf_outline "Java runtime is : $jvm_version\\n";
-if [ "$LANG" = "scala" ]; then
- [ `echo "$jvm_version" | grep -c "J9"` = "1" ] && LANG="${LANG}_j9";
-elif [ "$LANG" = "java" ]; then
- if [ "$COMPILER" = "jikes" ]; then
- if [ "$LANG" = "java" ]; then
- jre_home=`dirname $RUNTIME_COMMAND`/..;
- elif [ -n "$JRE_DIR" ]; then
- jre_home=$JRE_DIR;
- else
- abort "Jikes requires Sun JVM (use option '--jredir')";
- fi;
- cpath=`find $jre_home -name "rt.jar"`;
- COMPILER_COMMAND="${COMPILER_COMMAND} -bootclasspath $cpath";
- fi;
- [ `echo "$jvm_version" | grep -c "1\.5"` = "1" ] && LANG="${LANG}5";
- [ `echo "$jvm_version" | grep -c "1\.6"` = "1" ] && LANG="${LANG}6";
- [ `echo "$jvm_version" | grep -c "J9"` = "1" ] && LANG="${LANG}_j9";
-fi
-
-if [ "$DEBUG" = "debug" ] ; then
- LOG_FILE=/dev/tty
-else
- LOG_FILE=${TMP_DIR}/${SCRIPT}.log
-fi
-DIFF_FILE=${TMP_DIR}/${SCRIPT}.diff
-TMP_FILE=${TMP_DIR}/${SCRIPT}.tmp
-
-##############################################################################
-
-if [ -z "$FILES" ]; then
- FILES=`find "$SOURCE_DIR" -name "Main$SUFFIX" -a -type f -print`;
-fi;
-for testfile in "" $FILES; do
- [ -z "$testfile" ] && continue;
- checkfile=`dirname "$testfile"`/`basename "$testfile" "$SUFFIX"`.check
- info=`awk '$1 ~ /^\/\//{i=index($0,"@info ");if(i>0){print substr($0,i+6)}}' "$testfile"`;
- test_compile "$testfile" "$checkfile" "$info";
- if [ "$?" = "0" ] ; then
- scala_main=`echo "$testfile" | \
- sed -e "s#${SOURCE_DIR}/\(.*\)\${SUFFIX}#\1#g" -e "s#\/#\.#g"`;
- test_execute "$scala_main" "$checkfile";
- test_interpret "$scala_main" "$checkfile";
- test_docgen "$testfile" "$checkfile";
- fi
-done;
-
-##############################################################################
-# Epilog
-
-$RM -r $TMP_DIR
-
-##############################################################################