[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