summaryrefslogtreecommitdiff
path: root/test-suite/tests/coverage.test
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2016-06-21 09:07:26 +0200
committerAndy Wingo <wingo@pobox.com>2016-06-21 09:07:26 +0200
commit845c873acf8cb57766dfbd565640a84d5d05ddb0 (patch)
treec0b78c69302f280148d6fcbf802f48025ea1df1d /test-suite/tests/coverage.test
parente877e1bccb8b288bf9742c97a3035e36cba5a70b (diff)
downloadguile-845c873acf8cb57766dfbd565640a84d5d05ddb0.tar.gz
Add another code coverage test
* test-suite/tests/coverage.test ("line-execution-counts"): Add a test from Taylan Ulrich B, from bug #14849.
Diffstat (limited to 'test-suite/tests/coverage.test')
-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"