[asdf-devel] ASDF testing

David McClain dbm at refined-audiometrics.com
Sun Feb 28 02:03:33 UTC 2010


Ahh yes, of course.. However, when I try the command line:

bash-3.2$ test/run-tests.sh lispworks
test/run-tests.sh: line 162: type: lispworks: not found

test/run-tests.sh: line 57: (load "test/compile-asdf.lisp"): No such file or directory
bash-3.2$ 


So here is the script... what am I, or have I done incorrectly?

#!/bin/sh

# do_tests {lisp invocation} {scripts-regex}
# - read lisp forms one at a time from standard input
# - quit with exit status 0 on getting eof
# - quit with exit status >0 if an unhandled error occurs

export CL_SOURCE_REGISTRY="$PWD"
unset DEBUG_ASDF_TEST

while getopts "duh" OPTION
do
    case $OPTION in
        d)
            export DEBUG_ASDF_TEST=t
            ;;
        u)
            usage
            exit 1
            ;;
        h)
            usage
            exit 1
            ;;
    esac
done
shift $(($OPTIND - 1))

if [ x"$1" = "xhelp" ]; then
    usage
    exit 1
fi

if [ -z "$2" ]; then
    scripts="*.script"
else
    scripts="$2"
fi

sok=1

usage () {
    echo "$0 [lisp invocation] [scripts-regex]"
    echo " - read lisp forms one at a time from matching scripts"
    echo " - quit with exit status 0 on getting eof"
    echo " - quit with exit status >0 if an unhandled error occurs"
    echo " you need to supply the .script in the second argument"
    echo " lisps include sbcl, clisp, allegro and allegromodern"
    echo "OPTIONS:"
    echo "    -d -- debug mode"
    echo "    -u -h -- show this message."
}

do_tests() {
  command=$1 eval=$2 fasl_ext=$3
  rm -f *.$fasl_ext ~/.cache/common-lisp/"`pwd`"/*.$fasl_ext || true
  ( cd .. &&  $command $eval '(load "test/compile-asdf.lisp")' )
  if [ $? -eq 0 ] ; then
    echo "Compiled OK"
    test_count=0
    test_pass=0
    test_fail=0
    failed_list=""
    for i in $scripts ;
    do
      echo "Testing: $i" >&2
      test_count=`expr "$test_count" + 1`
      rm -f *.$fasl_ext ~/.cache/common-lisp/"`pwd`"/*.$fasl_ext || true
      if $command $eval "(load \"$i\")" ; then
        echo "Using $command, $i passed" >&2
	test_pass=`expr "$test_pass" + 1`
      else
        echo "Using $command, $i failed" >&2
	test_fail=`expr "$test_fail" + 1`
	failed_list="$failed_list $i"
        sok=0
      fi
    done
    echo >&2
    echo "-#---------------------------------------" >&2
    echo "Using $command" >&2
    echo "Ran $test_count tests: " >&2
    echo "  $test_pass passing and $test_fail failing" >&2
    if [ $test_fail -eq 0 ] ; then
	echo "all tests apparently successful" >&2
    else
	echo "failing test(s): $failed_list" >&2
    fi
    echo "-#---------------------------------------" >&2
    echo >&2
  fi
}

# terminate on error
set -e

lisp=$1
if [ -z $1 ] ; then
    lisp="sbcl"
fi

case "$lisp" in
  sbcl)
    if type sbcl ; then
      fasl_ext="fasl"
      command="sbcl --noinform --userinit /dev/null --sysinit /dev/null"
      nodebug="--disable-debugger"
      eval="--eval"
    fi ;;
  clisp)
    if type clisp ; then
	fasl_ext="fas"
	command=`which clisp`
	command="$command -norc -ansi -I "
        nodebug="-on-error exit"
        eval="-x"
    fi ;;
  allegro)
    if type alisp ; then
	fasl_ext="fasl"
	command="alisp -q "
        nodebug="-batch"
        eval="-e"
    fi ;;
  allegromodern)
    if type mlisp ; then
	fasl_ext="fasl"
	command="mlisp -q"
        nodebug="-batch"
        eval="-e"
    fi ;;
  ccl)
    if type ccl ; then
        case `uname -s` in
          Linux) fasl_os=lx ;;
          Darwin) fasl_os=dx ;;
        esac
        case `uname -m` in
          x86_64|ppc64) fasl_bits=64 ;;
          i?86|ppc) fasl_bits=32 ;;
        esac
        fasl_ext="${fasl_os}${fasl_bits}fsl"
	command="ccl --no-init --quiet"
        nodebug="--batch"
        eval="--eval"
    fi ;;
  cmucl)
    if type lisp ; then
	fasl_ext="x86f"
	command="lisp -noinit"
        nodebug="-batch"
        eval="-eval"
    fi ;;
  ecl)
    if type ecl ; then
	fasl_ext="fas"
	command=`which ecl`
	command="$command -norc"
        eval="-eval"
    fi ;;
  lispworks)
    if type lispworks ; then
	fasl_ext="64xfasl"
	command=`which lwm64`
	command="$command -siteinit - -init -"
        eval="-eval"
    fi ;;
esac

if [ -z "${DEBUG_ASDF_TEST}" ] ; then
  command="$command $nodebug"
fi

create_config () {
    mkdir -p ../tmp/test-source-registry-conf.d ../tmp/test-asdf-output-translations-conf.d
}

clean_up () {
    rm -rf ../tmp/test-source-registry-conf.d ../tmp/test-asdf-output-translations-conf.d
}

if [ -z "$command" ] ; then
    echo "Error: cannot find or do not know how to run Lisp named $lisp"
else
    create_config
    mkdir -p results
    echo $command
    thedate=`date "+%Y-%m-%d"`
    do_tests "$command" "$eval" "$fasl_ext" 2>&1 | \
	tee "results/${lisp}.text" "results/${lisp}-${thedate}.save"
    clean_up
fi


On Feb 27, 2010, at 18:53 PM, Faré wrote:

> Of course the if type lispworks looks for lispworks in your path, then
> fails silently.
> If you want the lispworks binary to be called lwm64 instead of
> lispworks, you have to change that, too...
> 
> [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
> If a vegetarian eats vegetables, what does a humanitarian eat? — Mark Twain
> 
> 
> 
> 
> On 27 February 2010 19:21, David McClain <dbm at refined-audiometrics.com> wrote:
>> And yes, I modified that portion of the script that you mentioned:
>> 
>>   lispworks)
>>     if type lispworks ; then
>> fasl_ext="64xfasl"
>> command=`which lwm64`
>> command="$command -siteinit - -init -"
>>         eval="-eval"
>>     fi ;;
>> 
>> 
>> On Feb 27, 2010, at 17:13 PM, Faré wrote:
>> 
>> What is your first argument to run-tests.sh?
>> Did you modify run-tests.sh to support it? See the case "$lisp" statement.
>> 
>> Please pull the latest git, it has some additional sanity checking.
>> 
>> [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org
>> ]
>> The problem with most conspiracy theories is that they seem to believe that
>> for a group of people to behave in a way detrimental to the common good
>> requires intent.
>> 
>> The problem with most statist theories is that they seem to believe that
>> for a group of people to behave in a way beneficial to the common good
>> requires intent.
>> 
>> 
>> 
>> 
>> 
>> On 27 February 2010 19:02, David McClain <dbm at refined-audiometrics.com>
>> wrote:
>> 
>> Ahhh... yes, in doing my manual test, I discovered that the submitted -eval
>> 
>> argument needs to be a string.
>> 
>> Furthermore, when I modify your script with 'echo' so that I can examine
>> 
>> what is being performed, here are the results:
>> 
>> ;; Script as modified in the 4th line..
>> 
>> do_tests() {
>> 
>>   command=$1 eval=$2 fasl_ext=$3
>> 
>>   rm -f *.$fasl_ext ~/.cache/common-lisp/"`pwd`"/*.$fasl_ext || true
>> 
>>   ( cd .. && echo $command $eval "(load \"test/compile-asdf.lisp\")" )
>> 
>>   if [ $? -eq 0 ] ; then
>> 
>>     echo "Compiled OK"
>> 
>>     test_count=0
>> 
>> bash-3.2$ test/run-tests.sh lwm64
>> 
>> (load "test/compile-asdf.lisp")  <<---- AHA! Wrong!
>> 
>> Compiled OK
>> 
>> Testing: *.script
>> 
>> test/run-tests.sh: line 69: (load "*.script"): command not found
>> 
>> Using  , *.script failed
>> 
>> -#---------------------------------------
>> 
>> Using
>> 
>> Ran 1 tests:
>> 
>>   0 passing and 1 failing
>> 
>> failing test(s):  *.script
>> 
>> -#---------------------------------------
>> 
>> bash-3.2$
>> 
>> So $command, $eval, and $fasl_ext must not be getting set properly
>> 
>> On Feb 27, 2010, at 16:54 PM, David McClain wrote:
>> 
>> Hi Guys,
>> 
>> I don't have a problem dealing with LW. But I want to have them work on
>> 
>> things that are within their purview.
>> 
>> The script problem is being reported by Bash, not LWM. The environment is
>> 
>> Mac OS X 10.6.2 (Snow Leopard).
>> 
>> I can invoke LWM from a command line just fine, including passing an initial
>> 
>> SExpr for eval. Here is a direct example, performed in Emacs in Shell mode:
>> 
>> bash-3.2$ lwm64 -siteinit - -init - -eval "(print :hello)"
>> 
>> LispWorks(R): The Common Lisp Programming Environment
>> 
>> Copyright (C) 1987-2009 LispWorks Ltd.  All rights reserved.
>> 
>> Version 6.0.0
>> 
>> Saved by dbmcclain as lwm64, at 27 Feb 2010 6:37
>> 
>> User dbmcclain on RoadKill.local
>> 
>> :HELLO
>> 
>> CL-USER 1 >
>> 
>> So the problem is one of the script in getting Bash to properly interpret
>> 
>> the synthesized command.
>> 
>> Dr. David McClain
>> 
>> dbm at refined-audiometrics.com
>> 
>> 
>> _______________________________________________
>> 
>> asdf-devel mailing list
>> 
>> asdf-devel at common-lisp.net
>> 
>> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
>> 
>> Dr. David McClain
>> 
>> dbm at refined-audiometrics.com
>> 
>> 
>> 
>> _______________________________________________
>> 
>> asdf-devel mailing list
>> 
>> asdf-devel at common-lisp.net
>> 
>> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
>> 
>> 
>> 
>> 
>> Dr. David McClain
>> dbm at refined-audiometrics.com
>> 
>> 
>> 
> 

Dr. David McClain
dbm at refined-audiometrics.com



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20100227/338000a4/attachment.html>


More information about the asdf-devel mailing list