summaryrefslogtreecommitdiff
path: root/tests/frontend
diff options
context:
space:
mode:
authorJames Ennis <james.ennis@codethink.co.uk>2019-08-28 16:09:13 +0100
committerbst-marge-bot <marge-bot@buildstream.build>2019-09-05 12:14:53 +0000
commita60de4b04b20f1d688e7ef25f0df30e422183bf6 (patch)
tree3b8da0aa8f2cdebdd73c374c09fa1df100f58aac /tests/frontend
parent9a2c8890c7823b26629f6d62a302955d7ae81bd1 (diff)
downloadbuildstream-a60de4b04b20f1d688e7ef25f0df30e422183bf6.tar.gz
buildcheckout.py: Add tests which checkout artifact depsjennis/update_checkout
These tests ensure that we can checkout the build dependencies of an artifact and that if we try to checkout the runtime dependencies the command will fail.
Diffstat (limited to 'tests/frontend')
-rw-r--r--tests/frontend/buildcheckout.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/frontend/buildcheckout.py b/tests/frontend/buildcheckout.py
index 67314d452..c9a42239a 100644
--- a/tests/frontend/buildcheckout.py
+++ b/tests/frontend/buildcheckout.py
@@ -343,6 +343,43 @@ def test_build_checkout_tarball_using_ref(datafiles, cli):
@pytest.mark.datafiles(DATA_DIR)
+def test_build_checkout_build_deps_using_ref(datafiles, cli):
+ project = str(datafiles)
+ checkout = os.path.join(cli.directory, 'checkout')
+
+ result = cli.run(project=project, args=['build', 'checkout-deps.bst'])
+ result.assert_success()
+
+ key = cli.get_element_key(project, 'checkout-deps.bst')
+ checkout_args = ['artifact', 'checkout', '--directory', checkout, '--deps', 'build', 'test/checkout-deps/' + key]
+
+ result = cli.run(project=project, args=checkout_args)
+ result.assert_success()
+
+ build_dep_files = os.path.join(checkout, 'usr', 'include', 'pony.h')
+ runtime_dep_files = os.path.join(checkout, 'usr', 'bin', 'hello')
+ target_files = os.path.join(checkout, 'etc', 'buildstream', 'config')
+ assert os.path.exists(build_dep_files)
+ assert not os.path.exists(runtime_dep_files)
+ assert not os.path.exists(target_files)
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_build_checkout_runtime_deps_using_ref_fails(datafiles, cli):
+ project = str(datafiles)
+ checkout = os.path.join(cli.directory, 'checkout')
+
+ result = cli.run(project=project, args=['build', 'checkout-deps.bst'])
+ result.assert_success()
+
+ key = cli.get_element_key(project, 'checkout-deps.bst')
+ checkout_args = ['artifact', 'checkout', '--directory', checkout, '--deps', 'run', 'test/checkout-deps/' + key]
+
+ result = cli.run(project=project, args=checkout_args)
+ result.assert_main_error(ErrorDomain.STREAM, None)
+
+
+@pytest.mark.datafiles(DATA_DIR)
def test_build_checkout_invalid_ref(datafiles, cli):
project = str(datafiles)
checkout = os.path.join(cli.directory, 'checkout.tar')