[s-xml-devel] Problem when loading the tests with the CLC
Sven Van Caekenberghe
sven at beta9.be
Sun May 14 20:32:53 UTC 2006
Luca,
The test suite was designed to be loaded and not compiled - that way,
*load-pathname* is correct with respect to the needed test resources
files.
Of course it would be a good idea to make an asdf of the test suite,
and use it properly. I am not sure what the correct solution is. What do
other CL projects do in similar cases ? Isn't there a way to prevent
asdf
from compiling certain files - maybe that could be a solution ?
Sven
On 13 May 2006, at 20:59, Luca Capello wrote:
> Hello,
>
> I've a problem when I try to load the tests suite.
>
> First of all, on the Debian package I maintain [1] uses clc, the
> Common Lisp Controller [2]. Thus, it installs files in
>
> /usr/share/common-lisp/source/[package]
>
> For I don't know which strange reason, I didn't included the test
> suite in the previous Debian versions, so I'm doing it for the next
> one (which will include also a new CVS checkout).
>
> I created a second ASDF system which loads the test, instead of
>
> $ sbcl --load /usr/share/common-lisp/source/s-xml/test/all-tests.lisp
>
> --8<---------------cut here---------------start------------->8---
> Index: s-xml.asd
> ===================================================================
> RCS file: /project/s-xml/cvsroot/s-xml/s-xml.asd,v
> retrieving revision 1.2
> diff -u -r1.2 s-xml.asd
> --- s-xml.asd 14 Dec 2005 21:49:04 -0000 1.2
> +++ s-xml.asd 13 May 2006 18:36:04 -0000
> @@ -31,4 +31,14 @@
> (:file "sxml-dom" :depends-on ("dom"))
> (:file "xml-struct-dom" :depends-on ("dom"))))))
>
> +(defsystem :s-xml.test
> + :depends-on (:s-xml)
> + :components
> + ((:module
> + :test
> + :components ((:file "test-xml")
> + (:file "test-xml-struct-dom")
> + (:file "test-lxml-dom")
> + (:file "test-sxml-dom")))))
> +
> ;;;; eof
> --8<---------------cut here---------------end--------------->8---
>
> If it won't be included upstream I'll probably get it in the Debian
> package anyway, but only after having found the best solution to the
> whole problem.
>
> With the above patch, I got various errors:
> =====
> $ sbcl
> $ * (asdf:oos 'asdf:load-op 's-xml)
> $ * (asdf:oos 'asdf:load-op 's-xml.test)
> [...]
>
> ; /var/cache/common-lisp-controller/1000/sbcl/s-xml/test/test-
> sxml-dom.fasl written
> ; compilation finished in 0:00:00
>
> debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread
> #<THREAD "initial thread" {A7F0409}>:
> error opening #P"/var/cache/common-lisp-controller/1000/sbcl/s-
> xml/test/xhtml-page.xml":
> No such file or directory
>
> * (quit)
> =====
>
> So, the problem is *load-pathname* and I cannot find something like
> *source-pathname* :-(
>
> One possible solution is the following, but it ASDF-specific:
>
> --8<---------------cut here---------------start------------->8---
> Index: test/test-xml-struct-dom.lisp
> ===================================================================
> RCS file: /project/s-xml/cvsroot/s-xml/test/test-xml-struct-dom.lisp,v
> retrieving revision 1.2
> diff -u -r1.2 test-xml-struct-dom.lisp
> --- test/test-xml-struct-dom.lisp 29 Aug 2005 15:01:49 -0000
> 1.2
> +++ test/test-xml-struct-dom.lisp 13 May 2006 18:48:08 -0000
> @@ -44,8 +44,13 @@
> " text, with a leading &
> trailing space "))))
>
> (assert
> - (xml-element-p (parse-xml-file (merge-pathnames "xhtml-page.xml"
> *load-pathname*)
> - :output-type :xml-struct)))
> + (xml-element-p (parse-xml-file
> + (merge-pathnames
> + "test/xhtml-page.xml"
> + (truename
> + (asdf:component-pathname
> + (asdf:find-system :s-xml.test))))
> + :output-type :xml-struct)))
>
> (assert
> (xml-element-p (parse-xml-file (merge-pathnames "ant-build-
> file.xml" *load-pathname*)
> --8<---------------cut here---------------end--------------->8---
>
> Obviously, this should be done every time we parse an XML-file, so
> it's going to be quite a big modification. Moreover, as I said, this
> is ASDF-specific, thus I'm asking for help in order to find a more
> general solution.
>
> In case nothing will be found, we can use #+common-lisp-controller or
> I can patch s-xml only for Debian (which would be absolutely fine, but
> I'll still prefer a general solution).
>
> Thx, bye,
> Gismo / Luca
>
> [1] http://packages.debian.org/cl-s-xml
> [2] http://www.cliki.net/common-lisp-controller
> _______________________________________________
> s-xml-devel site list
> s-xml-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/s-xml-devel
More information about the s-xml-devel
mailing list