summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2020-09-24 14:44:03 +0200
committerJürg Billeter <j@bitron.ch>2020-09-24 14:47:12 +0200
commit4ec05a825881d3167caff4463725f8b4da594dbb (patch)
tree366d351331aca667c1ac6c4e50897f0dc68bacca /tests
parentd3e07d90e61cfa3d7cf91012218ed5d45abfc982 (diff)
downloadbuildstream-4ec05a825881d3167caff4463725f8b4da594dbb.tar.gz
tests/integration/filter.py: Add test_filter_pass_integration_uncached
This tests that built filter artifacts don't depend on build dependencies for integration.
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/filter.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/integration/filter.py b/tests/integration/filter.py
index 12061fe7a..f8d2aff26 100644
--- a/tests/integration/filter.py
+++ b/tests/integration/filter.py
@@ -40,3 +40,35 @@ def test_filter_pass_integration(datafiles, cli):
# Check that the integration command was run
assert_contains(checkout_dir, ["/foo"])
shutil.rmtree(checkout_dir)
+
+
+@pytest.mark.datafiles(os.path.join(DATA_DIR))
+@pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
+@pytest.mark.xfail(
+ HAVE_SANDBOX == "buildbox-run" and BUILDBOX_RUN == "buildbox-run-userchroot",
+ reason="Root directory not writable with userchroot",
+)
+def test_filter_pass_integration_uncached(datafiles, cli):
+ project = str(datafiles)
+
+ # Passing integration commands should build nicely
+ result = cli.run(project=project, args=["build", "filter/filter.bst"])
+ result.assert_success()
+
+ # Delete the build dependency of the filter element.
+ # The built filter element should be usable even if the build dependency
+ # is not available in the local cache.
+ result = cli.run(project=project, args=["artifact", "delete", "filter/parent.bst"])
+ result.assert_success()
+
+ # Checking out the element should work
+ checkout_dir = os.path.join(project, "filter")
+ result = cli.run(
+ project=project,
+ args=["artifact", "checkout", "--integrate", "--directory", checkout_dir, "filter/filter.bst"],
+ )
+ result.assert_success()
+
+ # Check that the integration command was run
+ assert_contains(checkout_dir, ["/foo"])
+ shutil.rmtree(checkout_dir)