Description
Currently spin test
supports --coverage
and --gcov
arguments for measuring coverage of python or C code respectively. For python-flint the one outstanding item in moving from setuptools to spin/meson is coverage measurement of Cython code.
A meson project needs to have some sort of configuration option for coverage of Cython e.g.:
if get_option('coverage')
add_project_arguments('-X', 'linetrace=True', language : 'cython')
add_project_arguments('-DCYTHON_TRACE=1', language : 'c')
endif
In python-flint's case we need this separately from b_coverage=true
and spin's --gcov
option because we explicitly do not want to measure coverage of C code (which is all Cython-generated).
I'm not sure what the best approach would be for spin to implement spin test --coverage-cython
given that there is not a standard meson option for this.
Maybe spin could configure the CYTHON_TRACE
and linetrace
directly?
Currently it seems that Cython's coverage plugin does not work in a spin build-install directory which I think is because the plugin tries to look for Cython source files adjacent to the C files. Possibly that is something that needs to be fixed in Cython or maybe it is possible for spin to tell coverage where to find the source files.