blob: 8144d7c826222c57dc183676e5dad1fb8ed01aab (
plain) (
tree)
|
|
From 3024b43d6de447281d45150ea41bf096ddd210b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Fri, 18 Jun 2021 06:34:51 +0200
Subject: [PATCH] tests: Determine current test runner before test-end is
called
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
According to SRFI 64 test-end will remove the test-runner installed by
the matching test-begin. As such, it seems that test-runner-current will
return #f, if called after test-end. Since all skribilo test cases call
test-runner-current after test-end, the following exception is currently
thrown:
Backtrace:
In ice-9/boot-9.scm:
1752:10 6 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
5 (apply-smob/0 #<thunk 7fe66b7d4ee0>)
In ice-9/boot-9.scm:
724:2 4 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
619:8 3 (_ #(#(#<directory (guile-user) 7fe66b7cec80>)))
In ice-9/boot-9.scm:
2835:4 2 (save-module-excursion _)
4380:12 1 (_)
In /home/soeren/src/aports/testing/skribilo/src/skribilo-0.9.5/tests/ast.test:
116:9 0 (_)
Thereby always causing all tests, as executed by `make test`, to fail. I
am not too familiar with guile so it is unclear to me how the current
code ever worked. My proposed patch stores the current failure count in
a local variable before invoking test-end, thereby fixing the exception
above.
While at it, I also replaced the test-runner-current procedure with
test-runner-get since the latter throws an exception if the test runner
isn't set (making similar issues easier to debug in the future).
Furthermore, I replaced the comparison with zero with the zero?
predicate for readability.
---
tests/ast.test | 7 +++----
tests/engines/info.test | 7 +++----
tests/location.test | 7 +++----
tests/resolve.test | 7 +++----
4 files changed, 12 insertions(+), 16 deletions(-)
diff --git a/tests/ast.test b/tests/ast.test
index 8b8db48..5258eb9 100644
--- a/tests/ast.test
+++ b/tests/ast.test
@@ -110,7 +110,6 @@
(equal? (map markup-ident lst)
'("0" "1" "2"))))
-(test-end "ast")
-
-
-(exit (= (test-runner-fail-count (test-runner-current)) 0))
+(let ((failures (test-runner-fail-count (test-runner-get))))
+ (test-end "ast")
+ (exit (zero? failures)))
diff --git a/tests/engines/info.test b/tests/engines/info.test
index ea3f17e..72108cd 100644
--- a/tests/engines/info.test
+++ b/tests/engines/info.test
@@ -86,10 +86,9 @@
(equal? prev "c")
(not next))))))
-(test-end "info")
-
-
-(exit (= (test-runner-fail-count (test-runner-current)) 0))
+(let ((failures (test-runner-fail-count (test-runner-get))))
+ (test-end "info")
+ (exit (zero? failures)))
;; Local Variables:
;; coding: utf-8
diff --git a/tests/location.test b/tests/location.test
index ae6c462..f09fe20 100644
--- a/tests/location.test
+++ b/tests/location.test
@@ -86,10 +86,9 @@
(section :title \"baz\" ; 5
(p [Paragraph.]))))") ; 6
-(test-end "location")
-
-
-(exit (= (test-runner-fail-count (test-runner-current)) 0))
+(let ((failures (test-runner-fail-count (test-runner-get))))
+ (test-end "location")
+ (exit (zero? failures)))
;; Local Variables:
;; eval: (put 'call-with-code 'scheme-indent-function 1)
diff --git a/tests/resolve.test b/tests/resolve.test
index 1241aab..0f8bcb2 100644
--- a/tests/resolve.test
+++ b/tests/resolve.test
@@ -213,7 +213,6 @@
(ch* (document-lookup-node doc "c")))
(eq? ch ch*))))
-(test-end "resolve")
-
-
-(exit (= (test-runner-fail-count (test-runner-current)) 0))
+(let ((failures (test-runner-fail-count (test-runner-get))))
+ (test-end "resolve")
+ (exit (zero? failures)))
|