diff options
author | Ludovic Courtès <ludo@gnu.org> | 2010-05-02 14:17:41 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2010-05-07 13:47:53 +0200 |
commit | 36b5e394072c94b062a69a6d77b418e16ce70fce (patch) | |
tree | 265af6d417d8aff955c69347fd09c2b8ce2affc6 /test-suite/guile-test | |
parent | b3567435e1ba8b4bdef78fc020a2032c02d73075 (diff) | |
download | guile-36b5e394072c94b062a69a6d77b418e16ce70fce.tar.gz |
Add (system vm coverage).
* module/system/vm/coverage.scm: New file.
* module/Makefile.am (SYSTEM_SOURCES): Add `system/vm/coverage.scm'.
* test-suite/guile-test (main): Use (system vm coverage). Handle
`--coverage' and `-c'.
* test-suite/tests/coverage.test: New file.
* test-suite/Makefile.am (SCM_TESTS): Add `tests/coverage.test'.
* doc/ref/Makefile.am (guile_TEXINFOS): Add `api-coverage.texi'.
* doc/ref/api-coverage.texi: New file.
* doc/ref/guile.texi (API Reference): Include it.
Diffstat (limited to 'test-suite/guile-test')
-rwxr-xr-x | test-suite/guile-test | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/test-suite/guile-test b/test-suite/guile-test index 0031bbf4c..c114ad66a 100755 --- a/test-suite/guile-test +++ b/test-suite/guile-test @@ -85,6 +85,9 @@ :use-module (ice-9 getopt-long) :use-module (ice-9 and-let-star) :use-module (ice-9 rdelim) + :use-module (system vm coverage) + :use-module (srfi srfi-11) + :use-module (system vm vm) :export (main data-file-name test-file-name)) @@ -175,6 +178,8 @@ (log-file (single-char #\l) (value #t)) + (coverage + (single-char #\c)) (debug (single-char #\d)))))) (define (opt tag default) @@ -227,11 +232,20 @@ (set! global-pass #f))))) ;; Run the tests. - (for-each (lambda (test) - (display (string-append "Running " test "\n")) - (with-test-prefix test - (load (test-file-name test)))) - tests) + (let ((run-tests + (lambda () + (for-each (lambda (test) + (display (string-append "Running " test "\n")) + (with-test-prefix test + (load (test-file-name test)))) + tests)))) + (if (opt 'coverage #f) + (let-values (((coverage-data _) + (with-code-coverage (the-vm) run-tests))) + (let ((out (open-output-file "guile.info"))) + (coverage-data->lcov coverage-data out) + (close out))) + (run-tests))) ;; Display the final counts, both to the user and in the log ;; file. |