summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test-suite/tests/coverage.test20
1 files changed, 19 insertions, 1 deletions
diff --git a/test-suite/tests/coverage.test b/test-suite/tests/coverage.test
index 0fa1c1091..c1b417f03 100644
--- a/test-suite/tests/coverage.test
+++ b/test-suite/tests/coverage.test
@@ -196,7 +196,25 @@
(with-code-coverage
(lambda () (proc 451 1884)))))
(let ((counts (line-execution-counts data "one-liner.scm")))
- (equal? counts '((0 . 1))))))))
+ (equal? counts '((0 . 1)))))))
+
+ (pass-if "tail calls"
+ (let ((proc (code "tail-calls.scm"
+ "(begin
+ (define (tail-call-test)
+ (display \"foo\\n\")
+ (tail-call-target))
+
+ (define (tail-call-target)
+ (display \"bar\\n\"))
+
+ tail-call-test)")))
+ (let-values (((data result)
+ (with-code-coverage
+ (lambda () (with-output-to-string proc)))))
+ (let ((counts (line-execution-counts data "tail-calls.scm")))
+ (lset= equal? '((1 . 1) (2 . 1) (3 . 1) (5 . 1) (6 . 1))
+ counts))))))
(with-test-prefix "procedure-execution-count"