Skip to content

Commit f19ad7a

Browse files
committed
Improved def-parser-test
1 parent 3cdcd90 commit f19ad7a

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

DiffBackend/tests/test-engines.lisp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
(declaim (optimize (debug 3)))
2222

23+
(setf rove:*debug-on-error* t)
24+
2325
(defmacro def-lexer-test (name str lexems-list
2426
&key
2527
exp-comments
@@ -46,9 +48,11 @@
4648
(unless (deep-equal ,exp-lex-errors res-lex-errors)
4749
(fail "Errors not equal"))))))
4850

49-
(defmacro def-parser-test (name str parser-exp)
51+
(defmacro def-parser-test (name str parser-exp &key exp-parser-error)
5052
`(deftest ,name
51-
(let ((parser-res (parser (lexer ,str))))
53+
(multiple-value-bind (parser-res parser-error)
54+
(parser (lexer ,str))
55+
(when (or ,parser-exp parser-res)
5256
(unless
5357
(tree-equal
5458
parser-res
@@ -58,7 +62,10 @@
5862
(lexem (when (typep y 'lexem)
5963
(equal-lexem? x y)))
6064
(t (eq x y)))))
61-
(fail "Parser-test failed")))))
65+
(fail "Parser-test failed")))
66+
(when (or ,exp-parser-error parser-error)
67+
(unless (deep-equal ,exp-parser-error parser-error)
68+
(fail "Errors not equal"))))))
6269

6370
(defmacro def-ast-test (name str obj-tree)
6471
`(deftest ,name

0 commit comments

Comments
 (0)