You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by no...@apache.org on 2020/12/29 12:52:00 UTC
[buildstream] 05/08: tests/format/stack.py: Test stack dependency
types
This is an automated email from the ASF dual-hosted git repository.
not-in-ldap pushed a commit to branch tristan/shell-artifacts
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 35639c7d6af3d258826b8e55af6dfe8bf3d3e59f
Author: Tristan van Berkom <tr...@codethink.co.uk>
AuthorDate: Tue Dec 8 17:42:38 2020 +0900
tests/format/stack.py: Test stack dependency types
Assert that errors are raised when stack dependencies are declared as
build-only or runtime-only dependencies.
---
tests/format/stack.py | 22 ++++++++++++++++++++++
tests/format/stack/elements/build-only-stack.bst | 4 ++++
tests/format/stack/elements/dependency.bst | 2 ++
tests/format/stack/elements/runtime-only-stack.bst | 4 ++++
tests/format/stack/project.conf | 4 ++++
5 files changed, 36 insertions(+)
diff --git a/tests/format/stack.py b/tests/format/stack.py
new file mode 100644
index 0000000..b014e9b
--- /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 0000000..92f1c80
--- /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 0000000..8c231b6
--- /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 0000000..b5dd9a7
--- /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 0000000..9a5f11e
--- /dev/null
+++ b/tests/format/stack/project.conf
@@ -0,0 +1,4 @@
+# Basic project
+name: test
+min-version: 2.0
+element-path: elements