Don't error on circular values in testcover

* lisp/emacs-lisp/testcover.el (testcover-after, testcover-1value):
Consider circular lists to be non-equal instead of signaling error.
This commit is contained in:
Noam Postavsky 2017-07-19 18:48:50 -04:00
parent 95a04fd26c
commit 0508045ed7

View file

@ -463,7 +463,10 @@ binding `testcover-vector' to the code-coverage vector for TESTCOVER-SYM
(cond
((eq (aref testcover-vector idx) 'unknown)
(aset testcover-vector idx val))
((not (equal (aref testcover-vector idx) val))
((not (condition-case ()
(equal (aref testcover-vector idx) val)
;; TODO: Actually check circular lists for equality.
(circular-list nil)))
(aset testcover-vector idx 'ok-coverage)))
val)
@ -475,7 +478,10 @@ same value during coverage testing."
((eq (aref testcover-vector idx) '1value)
(aset testcover-vector idx (cons '1value val)))
((not (and (eq (car-safe (aref testcover-vector idx)) '1value)
(equal (cdr (aref testcover-vector idx)) val)))
(condition-case ()
(equal (cdr (aref testcover-vector idx)) val)
;; TODO: Actually check circular lists for equality.
(circular-list nil))))
(error "Value of form marked with `1value' does vary: %s" val)))
val)