Introspecting test suite passing/failing
Robert Goldman
rpgoldman at sift.info
Wed Jun 6 17:14:07 UTC 2018
On 6 Jun 2018, at 11:37, Mark Evenson wrote:
>> On Jun 5, 2018, at 18:44, Robert Goldman <rpgoldman at sift.info> wrote:
>>
>> I have pushed the system fiveam-asdf, which supports integration
>> between ASDF and the FIVEAM test library, to the contribs directory
>> in the ASDF repo. Please have a look.
>>
>> Be warned! It is old, and not being broke, hasn't been fixed. It
>> inappropriately is housed in the ASDF package and inappropriately
>> exports extensions from that package.
>>
>> But I believe it's still useful as an example of how to raise
>> conditions when the test operation goes wrong. Catching those
>> exceptions can be used to cause a build to fail in a CI system,
>> typically by running lisp in batch mode and having it exit with a
>> nonzero error code if the test operation fails.
>>
>
> Robert,
>
> Thanks ever so much for [releasing the fiveam-asdf code][1].
>
> [1]:
> https://gitlab.common-lisp.net/asdf/asdf/tree/master/contrib/fiveam-asdf
>
> I seemingly misunderstand how to use the :CLASS argument to
> ASDF:DEFSYSTEM, as I cannot quite get your code to work.
>
> If you get a chance, can you eyeball [my example code to try to use
> FIVEAM-ASDF][2] to tell me if that looks like the correct usage?
>
> [2]:
> https://github.com/emotiq/asdf-test-harness/blob/master/eg/fiveam-asdf-example.asd
>
> Various versions of ASDF-3.1.x (SBCL, CCL, ABCL) are failing with
> problems about symbols:
>
> Error while trying to load definition for system
> fiveam-asdf-example from pathname
> /Users/evenson/work/asdf-test-harness/eg/fiveam-asdf-example.asd:
>
> EXPORT ASDF/INTERFACE::FIVEAM-TESTER-SYSTEM causes
> name-conflicts in #<PACKAGE "ASDF/USER"> between the
> following symbols:
> ASDF/INTERFACE::FIVEAM-TESTER-SYSTEM,
> ASDF/USER::FIVEAM-TESTER-SYSTEM
> [Condition of type ASDF/FIND-SYSTEM:LOAD-SYSTEM-DEFINITION-ERROR]
I had problems like this, too -- it's because of the fact that when the
`defsystem` form is first read, *before* the `:defsystem-depends-on` is
loaded, the symbol named "FIVEAM-TESTER-SYSTEM" gets interned in
`ASDF/USER` and then when it's later exported from `ASDF/INTERFACE`
(used by `ASDF/USER`) it collides with the earlier-read symbol.
I believe that the correct fix for this is to use any new symbols (like
`fiveam-tester-system`) in the keyword package, so
```
:class :fiveam-tester-system
```
and then when the `defsystem` form is processed *after* the defsystem
dependencies (in this case, `fiveam-asdf`), ASDF will look for keyword
symbols in the current package.
Give that a try and see if it fixes your problem.
We should check and see if the processing of keyword symbols is
documented clearly in the manual. Possibly there should be a FAQ entry
for this issue....
Best,
Robert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20180606/ce45ea2d/attachment.html>
More information about the asdf-devel
mailing list