]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't error on circular values in testcover
authorNoam Postavsky <npostavs@gmail.com>
Wed, 19 Jul 2017 22:48:50 +0000 (18:48 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Mon, 7 Aug 2017 22:54:44 +0000 (18:54 -0400)
* lisp/emacs-lisp/testcover.el (testcover-after, testcover-1value):
Consider circular lists to be non-equal instead of signaling error.

lisp/emacs-lisp/testcover.el

index 433ad38a1475ac56c65e0e4a025f565dd79fd598..17891fd609622b63debc1cadc04f4fe18489a313 100644 (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)