[Ecls-list] Fwd: [ANNOUNCE] usocket 0.2.2

Erik Huelsmann ehuels at gmail.com
Thu Jan 11 22:07:23 UTC 2007


On 1/5/07, Erik Huelsmann <ehuels at gmail.com> wrote:
> > > Ok. Did you try 0.2.2 or trunk? I ran tests with trunk and - possibly
> > > falsely - assumed you would try trunk too. From what you tell me, I
> > > start to think you may have tried the 0.2.x branch, 0.2.2 tag or the
> > > asdf installable tar.gz.
> >
> > I prefer to use cvs trees rather than tarballs because otherwise I
> > cannot easily revert the sources or make patches. However, I did not
> > apply any tags -- I do not know how to use subversion, just applied
> > the line you wrote on the usocket page
> > http://common-lisp.net/project/usocket/ I will investigate other
> > possibilites as time permits.
>
> I'll send you a bash script to check out and run the tests in one script.

This script does the trick for me locally:

======= start of script
#!/bin/sh

your_asdf_source_lisp=$HOME/src/usocket-dev/usocket/trunk/test/asdf.lisp
your_rt_asd=$HOME/.sbcl/site/rt-20040621/rt.asd
your_ss_asd=$HOME/.sbcl/site/split-sequence/split-sequence.asd

rm -rf /tmp/usocket-ecl-test
svn co svn://common-lisp.net/project/usocket/svn/usocket/trunk/
/tmp/usocket-ecl-test
echo "lisp_bin=ecl
lisp_name=ECL
lisp_exit=\"(quit result)\"
" > /tmp/usocket-ecl-test/test/ecl.conf
cp $your_asdf_source_lisp /tmp/usocket-ecl-test/test/asdf.lisp
ln -s $your_rt_asd /tmp/usocket-ecl-test/test
ln -s $your_ss_asd /tmp/usocket-ecl-test/test
( cd /tmp/usocket-ecl-test ; ./run-usocket-tests.sh )

======= end of script

I get three failures. If you get more, then you may need to tweak this
part of the test file:

==== snippet
(defparameter +non-existing-host+ "192.168.1.1")
(defparameter +unused-local-port+ 15213)
(defparameter *soc1* (usocket::make-stream-socket :socket :my-socket
                                                  :stream :my-stream))
====/snippet

My subnet is 192.168.1.* and the host .1 isn't assigned to an
interface anywhere. If your network is 10.0.0.* (or anything but
192.168.1.*), you'll need to change the value. Likewise, socket-name.4
contains my local IP (.65) which you will probably need to change too.

After having set all the variables correctly, I get the following
output (stripped for clarity):

Test USOCKET-TEST::SOCKET-CONNECT.1 failed
Expected value: T
Actual value: (#<The STANDARD-CLASS USOCKET>
               #<The STANDARD-CLASS STANDARD-OBJECT> #<The BUILT-IN-CLASS T>).
Test USOCKET-TEST::SOCKET-CONNECT.2 failed
Expected value: T
Actual value: (#<The STANDARD-CLASS USOCKET>
               #<The STANDARD-CLASS STANDARD-OBJECT> #<The BUILT-IN-CLASS T>).
Test USOCKET-TEST::SOCKET-CONNECT.3 failed
Expected value: T
Actual value: (#<The STANDARD-CLASS USOCKET>
               #<The STANDARD-CLASS STANDARD-OBJECT> #<The BUILT-IN-CLASS T>).

Looking at the forms for the tests, they have in common that they all
are wrapped by (with-caught-conditions ...). They also have in common
that they have a let binding as the immediate subform.
The value <standard class usocket> looks like the variable binding in
the let form. The value <standard class standard object> looks like
the (unwind-protect ...) form and the <builtin class T> looks like the
return value for the (typep ) form. But considering that all that was
wrapped in a (progn ..) and a (let ..) body is an implicit progn, I
expect solely the <built-in class T> to be returned.

I hope this is enough information for you to reproduce.

bye,

Erik.




More information about the ecl-devel mailing list