X-Git-Url: http://nitlanguage.org diff --git a/tests/tests.sh b/tests/tests.sh index a120e57..a402eb2 100755 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -130,10 +130,12 @@ else fi # Detect a working time command -if env time --quiet -f%U true 2>/dev/null; then - TIME="env time --quiet -f%U" -elif env time -f%U true 2>/dev/null; then - TIME="env time -f%U" +if command time --quiet -f%e true 2>/dev/null; then + TIME="command time --quiet -f%e" +elif command time -f%e true 2>/dev/null; then + TIME="command time -f%e" +elif command gtime -f%e true 2>/dev/null; then + TIME="command gtime -f%e" else TIME= fi @@ -145,6 +147,15 @@ else TIMESTAMP= fi +# Detect a working hostname command +if hostname --version 2>&1 | grep coreutils >/dev/null 2>&1; then + HOSTNAME="hostname" +else + HOSTNAME="hostname -s" +fi + +UNAME=`uname | sed s/-.*//` + # $1 is the pattern of the test # $2 is the file to compare to # the result is: @@ -364,7 +375,7 @@ need_skip() fi # Skip by OS - local os_skip_file=`uname`.skip + local os_skip_file=$UNAME.skip if test -e $os_skip_file && echo "$1" | grep -f "$os_skip_file" >/dev/null 2>&1; then echo "=> $2: [skip os]" echo >>$xml "" @@ -372,7 +383,7 @@ need_skip() fi # Skip by hostname - local host_skip_file=`hostname -s`.skip + local host_skip_file=`$HOSTNAME`.skip if test -e $host_skip_file && echo "$1" | grep -f "$host_skip_file" >/dev/null 2>&1; then echo "=> $2: [skip hostname]" echo >>$xml "" @@ -425,7 +436,7 @@ istodo() find_nitc() { local name="$enginebinname" - local recent=`ls -t ../src/$name ../src/$name_[0-9] ../bin/$name ../c_src/$name 2>/dev/null | head -1` + local recent=`ls -t ../src/$name ../src/$name_[0-9] ../bin/$name ../contrib/nitin/bin/$name ../c_src/$name 2>/dev/null | head -1` if [[ "x$recent" == "x" ]]; then echo "Could not find binary for engine $engine, aborting" exit 1 @@ -459,6 +470,7 @@ while [ $stop = false ]; do done enginebinname=$engine isinterpret= +isinteractive= case $engine in nitc|nitg) engine=nitcs; @@ -504,6 +516,10 @@ case $engine in OPT="--vm $OPT" savdirs="sav/niti/" ;; + nitin) + enginebinname=nitin + isinteractive=true + ;; nitj) engine=nitj; OPT="--compile-dir $compdir --ant" @@ -521,7 +537,7 @@ case $engine in ;; esac -savdirs="sav/`hostname -s` sav/`uname` sav/$engine $savdirs sav/" +savdirs="sav/`$HOSTNAME` sav/$UNAME sav/$engine $savdirs sav/" # The default nitc compiler [ -z "$NITC" ] && find_nitc @@ -618,6 +634,15 @@ END > "$ff.compile.log" ERR=0 echo 0.0 > "$ff.time.out" + elif [ -n "$isinteractive" ]; then + cat > "$ff.bin" < "$ff.cmp.err" + > "$ff.compile.log" + ERR=0 + echo 0.0 > "$ff.time.out" else if skip_cc "$bf"; then nocc="--no-cc" @@ -671,7 +696,7 @@ END echo "" echo "NIT_NO_STACK=1 $ff.bin" $args fi - NIT_NO_STACK=1 LD_LIBRARY_PATH=$JNI_LIB_PATH \ + NIT_NO_STACK=1 LD_LIBRARY_PATH=$JNI_LIB_PATH WRITE="$ff.write" \ saferun -a -o "$ff.time.out" "$ff.bin" $args < "$inputs" > "$ff.res" 2>"$ff.err" mv "$ff.time.out" "$ff.times.out" awk '{ SUM += $1} END { print SUM }' "$ff.times.out" > "$ff.time.out"