Skip to content
Snippets Groups Projects
Commit ec65bfd2 authored by Millian Poquet's avatar Millian Poquet
Browse files

[nix] support coverage option

parent ed89cc47
Branches
Tags
No related merge requests found
......@@ -2,6 +2,7 @@
(fetchTarball "https://github.com/oar-team/kapack/archive/master.tar.gz")
{}
, doCheck ? false
, doCoverage ? true
, batsim ? kapack.batsim
, batsim_dev ? kapack.batsim_dev
, batexpe ? kapack.batexpe
......@@ -11,6 +12,7 @@ let
pkgs = kapack.pkgs;
pythonPackages = pkgs.python37Packages;
buildPythonPackage = pythonPackages.buildPythonPackage;
optionOnOff = option: "${if option then "on" else "off"}";
jobs = rec {
# Batsched executable file (built from local sources)
......@@ -24,12 +26,19 @@ let
"^src/external/.*\.?pp"
"^meson\.build"
];
mesonFlags = []
++ pkgs.lib.optional doCoverage [ "-Db_coverage=true" ];
nativeBuildInputs = with kapack; [pkgs.meson pkgs.ninja pkgs.pkgconfig
pkgs.boost gmp rapidjson intervalset loguru redox pkgs.cppzmq pkgs.zeromq];
# Debug build, without any Nix stripping magic.
mesonBuildType = "debug";
hardeningDisable = [ "all" ];
dontStrip = true;
# Keep files generated by GCOV, so depending jobs can use them.
postInstall = pkgs.lib.optionalString doCoverage ''
mkdir -p $out/gcno
cp batsched@exe/*.gcno $out/gcno/
'';
});
# Batsched integration tests.
......@@ -47,7 +56,13 @@ let
buildInputs = with pkgs.python37Packages; [
batsim batsched batexpe pkgs.redis
pytest pytest_html pandas];
preBuild = pkgs.lib.optionalString doCoverage ''
mkdir -p gcda
export GCOV_PREFIX=$(realpath gcda)
export GCOV_PREFIX_STRIP=5
'';
buildPhase = ''
runHook preBuild
set +e
(cd test && pytest -ra --html=../report/pytest_report.html)
echo $? > ./pytest_returncode
......@@ -64,6 +79,8 @@ let
installPhase = ''
mkdir -p $out
mv ./report/* ./pytest_returncode $out/
'' + pkgs.lib.optionalString doCoverage ''
mv ./gcda $out/
'';
};
# Essentially the same as integration_tests, but with an up-to-date Batsim.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment