summaryrefslogtreecommitdiff
path: root/rtemsspec/tests/test_packagebuild.py
diff options
context:
space:
mode:
Diffstat (limited to 'rtemsspec/tests/test_packagebuild.py')
-rw-r--r--rtemsspec/tests/test_packagebuild.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/rtemsspec/tests/test_packagebuild.py b/rtemsspec/tests/test_packagebuild.py
index 6ff9c8e4..cf6d91c2 100644
--- a/rtemsspec/tests/test_packagebuild.py
+++ b/rtemsspec/tests/test_packagebuild.py
@@ -35,6 +35,7 @@ import tarfile
from typing import List, NamedTuple
from rtemsspec.items import EmptyItem, Item, ItemCache, ItemGetValueContext
+import rtemsspec.gcdaproducer
from rtemsspec.packagebuild import BuildItem, BuildItemMapper, \
build_item_input, PackageBuildDirector
from rtemsspec.packagebuildfactory import create_build_item_factory
@@ -113,6 +114,13 @@ def _test_runner_subprocess(command, check, stdin, stdout, timeout):
return _Subprocess(b"u\r\nv\nw\n")
+def _gcov_tool(command, check, cwd, input):
+ assert command == ["foo", "merge-stream"]
+ assert check
+ assert input == b"gcfnB04R\x00\x00\x00\x95/opt"
+ (Path(cwd) / "file.gcda").touch()
+
+
def test_packagebuild(caplog, tmpdir, monkeypatch):
tmp_dir = Path(tmpdir)
item_cache = _create_item_cache(tmp_dir, Path("spec-packagebuild"))
@@ -403,3 +411,16 @@ def test_packagebuild(caplog, tmpdir, monkeypatch):
director.build_package(None, ["/qdp/steps/run-tests"])
log = get_and_clear_log(caplog)
assert f"use previous report for: {build_bsp.directory}/a.exe"
+
+ # Test GCDAProducer
+ variant["enabled"] = ["gcda-producer"]
+ test_log_coverage = director["/qdp/test-logs/coverage"]
+ test_log_coverage.load()
+ monkeypatch.setattr(rtemsspec.gcdaproducer, "subprocess_run", _gcov_tool)
+ director.build_package(None, None)
+ monkeypatch.undo()
+ log = get_and_clear_log(caplog)
+ assert f"/qdp/steps/gcda-producer: copy *.gcno files from '{tmp_dir}/pkg/build/bsp' to '{tmp_dir}/pkg/build/gcda'" in log
+ assert f"/qdp/steps/gcda-producer: remove unexpected *.gcda file in build directory: '{tmp_dir}/pkg/build/bsp/f.gcda'" in log
+ assert f"/qdp/steps/gcda-producer: process: ts-unit-no-clock-0.exe" in log
+ assert f"/qdp/steps/gcda-producer: move *.gcda files from '{tmp_dir}/pkg/build/bsp' to '{tmp_dir}/pkg/build/gcda'" in log