diff options
Diffstat (limited to 'tests/integration')
4 files changed, 51 insertions, 0 deletions
diff --git a/tests/integration/project/elements/sandbox-bwrap/base-with-tmp.bst b/tests/integration/project/elements/sandbox-bwrap/base-with-tmp.bst new file mode 100644 index 000000000..5c9fa6083 --- /dev/null +++ b/tests/integration/project/elements/sandbox-bwrap/base-with-tmp.bst @@ -0,0 +1,6 @@ +kind: import +description: Base for after-sandbox cleanup test + +sources: + - kind: local + path: files/base-with-tmp/ diff --git a/tests/integration/project/elements/sandbox-bwrap/test-cleanup.bst b/tests/integration/project/elements/sandbox-bwrap/test-cleanup.bst new file mode 100644 index 000000000..2a89dd3ee --- /dev/null +++ b/tests/integration/project/elements/sandbox-bwrap/test-cleanup.bst @@ -0,0 +1,13 @@ +kind: manual +description: A dummy project to utilize a base with existing /tmp folder. + +depends: + - filename: base.bst + type: build + + - filename: sandbox-bwrap/base-with-tmp.bst + +config: + build-commands: + - | + true diff --git a/tests/integration/project/files/base-with-tmp/tmp/dummy b/tests/integration/project/files/base-with-tmp/tmp/dummy new file mode 100644 index 000000000..d18f28449 --- /dev/null +++ b/tests/integration/project/files/base-with-tmp/tmp/dummy @@ -0,0 +1 @@ +dummy!
\ No newline at end of file diff --git a/tests/integration/sandbox-bwrap.py b/tests/integration/sandbox-bwrap.py new file mode 100644 index 000000000..7d2a18498 --- /dev/null +++ b/tests/integration/sandbox-bwrap.py @@ -0,0 +1,31 @@ +import os +import pytest + +from tests.testutils import cli_integration as cli +from tests.testutils.integration import assert_contains +from tests.testutils.site import HAVE_BWRAP + + +pytestmark = pytest.mark.integration + + +DATA_DIR = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "project" +) + + +# Bubblewrap sandbox doesn't remove the dirs it created during its execution, +# so BuildStream tries to remove them to do good. BuildStream should be extra +# careful when those folders already exist and should not touch them, though. +@pytest.mark.integration +@pytest.mark.skipif(not HAVE_BWRAP, reason='Only available with bubblewrap') +@pytest.mark.datafiles(DATA_DIR) +def test_sandbox_bwrap_cleanup_build(cli, tmpdir, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename) + # This element depends on a base image with non-empty `/tmp` folder. + element_name = 'sandbox-bwrap/test-cleanup.bst' + + # Here, BuildStream should not attempt any rmdir etc. + result = cli.run(project=project, args=['build', element_name]) + assert result.exit_code == 0 |