From 091c9c8555f37b2ac50c0c696bb367fb992cb899 Mon Sep 17 00:00:00 2001 From: Tristan van Berkom Date: Tue, 8 Dec 2020 17:42:38 +0900 Subject: 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(+) create mode 100644 tests/format/stack.py create mode 100644 tests/format/stack/elements/build-only-stack.bst create mode 100644 tests/format/stack/elements/dependency.bst create mode 100644 tests/format/stack/elements/runtime-only-stack.bst create mode 100644 tests/format/stack/project.conf 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 -- cgit v1.2.1