amirouche
2018-03-06 19:07:54 UTC
Hello all!
I have some difficulties setting up test coverage.
Here the procedure I use that inspired from guile/test-suite/guile-test:
(use-modules (system vm coverage)
(system vm vm))
(define (run-test-with-coverage test)
(call-with-values (lambda ()
(with-code-coverage
(lambda ()
(load test))))
(lambda (data result)
(let ((port (open-output-file (string-append test ".info"))))
(coverage-data->lcov data port)
(close port)))))
(run-test-with-coverage (cadr (program-arguments)))
It takes the name of a module as first argument and will load that file
inside 'with-code-coverage' and write the lcov .info file.
I've setup a simple example, it requires guile and lcov for genhtml.
You can reproduce the issue as follow:
$ git clone https://github.com/a-guile-mind/coverage
$ cd coverage
$ make
test echo
Overall coverage rate:
lines......: 0.0% (0 of 9164 lines)
functions..: no data found
As you can see in the output, no lines seems to be visited by the vm.
The output should be at least one, the line inside test.scm.
What I am doing wrong?
Thanks in advance!
I have some difficulties setting up test coverage.
Here the procedure I use that inspired from guile/test-suite/guile-test:
(use-modules (system vm coverage)
(system vm vm))
(define (run-test-with-coverage test)
(call-with-values (lambda ()
(with-code-coverage
(lambda ()
(load test))))
(lambda (data result)
(let ((port (open-output-file (string-append test ".info"))))
(coverage-data->lcov data port)
(close port)))))
(run-test-with-coverage (cadr (program-arguments)))
It takes the name of a module as first argument and will load that file
inside 'with-code-coverage' and write the lcov .info file.
I've setup a simple example, it requires guile and lcov for genhtml.
You can reproduce the issue as follow:
$ git clone https://github.com/a-guile-mind/coverage
$ cd coverage
$ make
test echo
Overall coverage rate:
lines......: 0.0% (0 of 9164 lines)
functions..: no data found
As you can see in the output, no lines seems to be visited by the vm.
The output should be at least one, the line inside test.scm.
What I am doing wrong?
Thanks in advance!