summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan van Berkom <tristan@codethink.co.uk>2020-12-08 17:42:38 +0900
committerTristan van Berkom <tristan@codethink.co.uk>2020-12-10 21:40:20 +0900
commit091c9c8555f37b2ac50c0c696bb367fb992cb899 (patch)
tree23cb74a92638ec18677313d1f8735dc8426ab853
parent0b94cd15c725f1cbf1b8fc4bca17374396e1a299 (diff)
downloadbuildstream-tristan/stack-require-depends-all.tar.gz
tests/format/stack.py: Test stack dependency typestristan/stack-require-depends-all
Assert that errors are raised when stack dependencies are declared as build-only or runtime-only dependencies.
-rw-r--r--tests/format/stack.py22
-rw-r--r--tests/format/stack/elements/build-only-stack.bst4
-rw-r--r--tests/format/stack/elements/dependency.bst2
-rw-r--r--tests/format/stack/elements/runtime-only-stack.bst4
-rw-r--r--tests/format/stack/project.conf4
5 files changed, 36 insertions, 0 deletions
diff --git a/tests/format/stack.py b/tests/format/stack.py
new file mode 100644
index 000000000..b014e9b5d
--- /dev/null
+++ b/tests/format/stack.py
@@ -0,0 +1,22 @@
+# Pylint doesn't play well with fixtures and dependency injection from pytest
+# pylint: disable=redefined-outer-name
+
+import os
+import pytest
+
+from buildstream.exceptions import ErrorDomain
+from buildstream.testing import cli # pylint: disable=unused-import
+
+DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "stack")
+
+
+#
+# Assert that we have errors when trying to have runtime-only or
+# build-only dependencies.
+#
+@pytest.mark.datafiles(DATA_DIR)
+@pytest.mark.parametrize("target", ["build-only-stack.bst", "runtime-only-stack.bst",])
+def test_require_build_and_run(cli, datafiles, target):
+ project = str(datafiles)
+ result = cli.run(project=project, args=["show", target])
+ result.assert_main_error(ErrorDomain.ELEMENT, "stack-requires-build-and-run")
diff --git a/tests/format/stack/elements/build-only-stack.bst b/tests/format/stack/elements/build-only-stack.bst
new file mode 100644
index 000000000..92f1c80f8
--- /dev/null
+++ b/tests/format/stack/elements/build-only-stack.bst
@@ -0,0 +1,4 @@
+kind: stack
+
+build-depends:
+- dependency.bst
diff --git a/tests/format/stack/elements/dependency.bst b/tests/format/stack/elements/dependency.bst
new file mode 100644
index 000000000..8c231b6cf
--- /dev/null
+++ b/tests/format/stack/elements/dependency.bst
@@ -0,0 +1,2 @@
+kind: manual
+description: This is a dependency
diff --git a/tests/format/stack/elements/runtime-only-stack.bst b/tests/format/stack/elements/runtime-only-stack.bst
new file mode 100644
index 000000000..b5dd9a7ce
--- /dev/null
+++ b/tests/format/stack/elements/runtime-only-stack.bst
@@ -0,0 +1,4 @@
+kind: stack
+
+runtime-depends:
+- dependency.bst
diff --git a/tests/format/stack/project.conf b/tests/format/stack/project.conf
new file mode 100644
index 000000000..9a5f11ee1
--- /dev/null
+++ b/tests/format/stack/project.conf
@@ -0,0 +1,4 @@
+# Basic project
+name: test
+min-version: 2.0
+element-path: elements