[Openmcl-devel] Request for advice on handling SERIOUS-CONDITIONs in ASDF tests

Robert P. Goldman rpgoldman at sift.info
Sun Jul 24 20:10:19 PDT 2016


Previously, in the ASDF test suite, we would run tests, checking for
errors, and if there were errors, we would exit with a non-zero status,
signaling to our shell script that a test had failed.

However, experimenting with ECL, I found that there were cases where ECL
would fail with a SERIOUS-CONDITION that was not an error.  These were
typically various flavors of STORAGE-CONDITION, and need to be caught so
that non-interactive tests don't hang when there's some resource exhaustion.

Accordingly, I modified the ASDF test suite to catch not just ERRORs,
but also SERIOUS-CONDITIONs.

Unfortunately, this breaks the tests on CCL.

The problem appears in one of our tests where we call (EXIT-LISP 0).
This is (ccl:quit 0) on CCL.

Unfortunately, it seems that CCL signals a CCL:PROCESS-RESET when
quitting and PROCESS-RESET is a SERIOUS-CONDITION.

So how should I modify the tests so that I catch the other
SERIOUS-CONDITIONs (like STORAGE-CONDITIONs) without mistakenly catching
these PROCESS-RESET conditions?  I suppose I can either catch all
SERIOUS-CONDITIONs *except* PROCESS-RESET, and just decline those?  Or
could I have the definition of EXIT-LISP handle the PROCESS-RESET
condition? Without more knowledge, it seems possible that could mess up
graceful exit.

Could you clarify PROCESS-RESET a little for me?  The spec indicates
that SERIOUS-CONDITIONs are  "All conditions serious enough to require
interactive intervention if not handled should inherit from the type
serious-condition."  I'm not sure how that aligns with the use of
PROCESS-RESET as described in the manual.

Thanks,
R




More information about the Openmcl-devel mailing list