|
Last change
on this file was
15557,
checked in by Mark Evenson, 4 years ago
|
|
abcl-introspect: fix and move test into contrib
Failing test was actually returning additional information that was
causing the test to fail, namely a block marker from Primitives.java:
((:LEXICAL-VARIABLE A 10) (:LEXICAL-VARIABLE B 20)
(:BLOCK BAR #<org.armedbear.lisp.Primitives$BlockMarker?@ca46a46>))
The "extra" stuff which ABCL-INTROSPECT adds to the SYSTEM package may
not always be available if say JSS fails to load. Make this explicit
by moving the test.
|
|
File size:
1.0 KB
|
| Line | |
|---|
| 1 | (in-package :cl-user) |
|---|
| 2 | |
|---|
| 3 | (defmacro env-parts (&environment env) |
|---|
| 4 | `(sys::environment-parts ,env)) |
|---|
| 5 | |
|---|
| 6 | (prove:plan 1) |
|---|
| 7 | (prove:is |
|---|
| 8 | (eval |
|---|
| 9 | '(let ((a 10)) |
|---|
| 10 | (env-parts))) |
|---|
| 11 | '((:lexical-variable a 10)) |
|---|
| 12 | "Lexical let binding captures local") |
|---|
| 13 | |
|---|
| 14 | (prove:plan 1) |
|---|
| 15 | (prove:ok |
|---|
| 16 | (let ((env-parts-information |
|---|
| 17 | (eval '(let ((b 20)) |
|---|
| 18 | (defun bar () |
|---|
| 19 | (let ((a 10)) (env-parts))) |
|---|
| 20 | (bar)))) |
|---|
| 21 | (expected-clauses |
|---|
| 22 | #| Testing envionment actually contains: |
|---|
| 23 | ((:LEXICAL-VARIABLE A 10) (:LEXICAL-VARIABLE B 20) |
|---|
| 24 | (:BLOCK BAR #<org.armedbear.lisp.Primitives$BlockMarker@ca46a46>)) |
|---|
| 25 | |# |
|---|
| 26 | '((:LEXICAL-VARIABLE A 10) (:LEXICAL-VARIABLE B 20)))) |
|---|
| 27 | ;;; FIXME find a more idiomatic way to do this that also reports |
|---|
| 28 | ;;; what fails. Use CL:INTERSECTION |
|---|
| 29 | (reduce |
|---|
| 30 | (lambda (a b) (and a b)) |
|---|
| 31 | (mapcar |
|---|
| 32 | (lambda (item) |
|---|
| 33 | (member item env-parts-information :test #'equalp)) |
|---|
| 34 | expected-clauses))) |
|---|
| 35 | "Nested lexical bindings captures locals") |
|---|
| 36 | |
|---|
| 37 | (prove:finalize) |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | |
|---|
Note: See
TracBrowser
for help on using the repository browser.