coverage: Add tests for `case-lambda'.
* test-suite/tests/coverage.test
("line-execution-counts")["case-lambda"]: New test.
("procedure-execution-count")["case-lambda"]: New test.
This commit is contained in:
parent
43e53d64ca
commit
0129130439
1 changed files with 22 additions and 0 deletions
|
|
@ -162,6 +162,18 @@
|
|||
(else #f))))
|
||||
counts))))))
|
||||
|
||||
(pass-if "case-lambda"
|
||||
(let ((proc (code "cl.scm" "(case-lambda ;; 0
|
||||
((x) (+ x 3)) ;; 1
|
||||
((x y) (+ x y))) ;; 2")))
|
||||
(let-values (((data result)
|
||||
(with-code-coverage %test-vm
|
||||
(lambda ()
|
||||
(+ (proc 1) (proc 2 3))))))
|
||||
(let ((counts (line-execution-counts data "cl.scm")))
|
||||
(and (pair? counts)
|
||||
(lset= equal? '((0 . 2) (1 . 1) (2 . 1)) counts))))))
|
||||
|
||||
(pass-if "all code on one line"
|
||||
;; There are several proc/IP pairs pointing to this source line, yet the hit
|
||||
;; count for the line should be 1.
|
||||
|
|
@ -185,6 +197,16 @@
|
|||
(= 3 result)
|
||||
(= (procedure-execution-count data proc) 2)))))
|
||||
|
||||
(pass-if "case-lambda"
|
||||
(let ((proc (code "foo.scm" "(case-lambda ((x) x) ((x y) (+ x y)))")))
|
||||
(let-values (((data result)
|
||||
(with-code-coverage %test-vm
|
||||
(lambda ()
|
||||
(+ (proc 1) (proc 2 3))))))
|
||||
(and (coverage-data? data)
|
||||
(= 6 result)
|
||||
(= (procedure-execution-count data proc) 2)))))
|
||||
|
||||
(pass-if "never"
|
||||
(let ((proc (code "foo.scm" "(lambda (x y) x)")))
|
||||
(let-values (((data result)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue