diff options
-rw-r--r-- | tests/remoteexecution/partial.py | 43 | ||||
-rw-r--r-- | tests/remoteexecution/project/elements/no-runtime-deps.bst | 9 |
2 files changed, 52 insertions, 0 deletions
diff --git a/tests/remoteexecution/partial.py b/tests/remoteexecution/partial.py new file mode 100644 index 000000000..907fc507d --- /dev/null +++ b/tests/remoteexecution/partial.py @@ -0,0 +1,43 @@ +import os +import pytest + +from buildstream._exceptions import ErrorDomain +from buildstream.plugintestutils import cli_remote_execution as cli +from buildstream.plugintestutils.integration import assert_contains + + +pytestmark = pytest.mark.remoteexecution + + +DATA_DIR = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "project" +) + + +# Test that `bst build` does not download file blobs of a build-only dependency +# to the local cache. +@pytest.mark.datafiles(DATA_DIR) +def test_build_dependency_partial_local_cas(cli, datafiles): + project = str(datafiles) + element_name = 'no-runtime-deps.bst' + builddep_element_name = 'autotools/amhello.bst' + checkout = os.path.join(cli.directory, 'checkout') + builddep_checkout = os.path.join(cli.directory, 'builddep-checkout') + + services = cli.ensure_services() + assert set(services) == set(['action-cache', 'execution', 'storage']) + + result = cli.run(project=project, args=['build', element_name]) + result.assert_success() + + # Verify that the target element is available in local cache + result = cli.run(project=project, args=['artifact', 'checkout', element_name, + '--directory', checkout]) + result.assert_success() + assert_contains(checkout, ['/test']) + + # Verify that the build-only dependency is not (complete) in the local cache + result = cli.run(project=project, args=['artifact', 'checkout', builddep_element_name, + '--directory', builddep_checkout]) + result.assert_main_error(ErrorDomain.STREAM, 'uncached-checkout-attempt') diff --git a/tests/remoteexecution/project/elements/no-runtime-deps.bst b/tests/remoteexecution/project/elements/no-runtime-deps.bst new file mode 100644 index 000000000..ca76aaf9f --- /dev/null +++ b/tests/remoteexecution/project/elements/no-runtime-deps.bst @@ -0,0 +1,9 @@ +kind: manual +description: Test element without runtime dependencies + +build-depends: +- autotools/amhello.bst + +config: + install-commands: + - echo Test > %{install-root}/test |