summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-03-18 21:17:46 +0900
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-03-20 18:29:14 +0900
commit83a18f9856b346f2686fcf8857a4458b312137e9 (patch)
tree6125eaa518d8709e80507b9629bfca3ebfa5f285
parent50400e123ef7f9aa8b2b1a779e2651dccf4f4df0 (diff)
downloadbuildstream-83a18f9856b346f2686fcf8857a4458b312137e9.tar.gz
tests/format/project.py: Test that conditional statements are supported in project.refs
-rw-r--r--tests/format/project.py27
-rw-r--r--tests/format/project/refs-options/project.conf8
-rw-r--r--tests/format/project/refs-options/project.refs12
-rw-r--r--tests/format/project/refs-options/target.bst9
4 files changed, 56 insertions, 0 deletions
diff --git a/tests/format/project.py b/tests/format/project.py
index eab67bcdd..75b33f40d 100644
--- a/tests/format/project.py
+++ b/tests/format/project.py
@@ -34,3 +34,30 @@ def test_project_conf_duplicate_plugins(cli, datafiles):
result = cli.run(project=project, silent=True, args=[
'show', 'element.bst'])
result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.INVALID_YAML)
+
+
+# Assert that we get a different cache key for target.bst, depending
+# on a conditional statement we have placed in the project.refs file.
+#
+@pytest.mark.datafiles(DATA_DIR)
+def test_project_refs_options(cli, datafiles):
+ project = os.path.join(datafiles.dirname, datafiles.basename, 'refs-options')
+
+ result1 = cli.run(project=project, silent=True, args=[
+ '--option', 'test', 'True',
+ 'show',
+ '--deps', 'none',
+ '--format', '%{key}',
+ 'target.bst'])
+ result1.assert_success()
+
+ result2 = cli.run(project=project, silent=True, args=[
+ '--option', 'test', 'False',
+ 'show',
+ '--deps', 'none',
+ '--format', '%{key}',
+ 'target.bst'])
+ result2.assert_success()
+
+ # Assert that the cache keys are different
+ assert result1.output != result2.output
diff --git a/tests/format/project/refs-options/project.conf b/tests/format/project/refs-options/project.conf
new file mode 100644
index 000000000..a44806da0
--- /dev/null
+++ b/tests/format/project/refs-options/project.conf
@@ -0,0 +1,8 @@
+name: test
+ref-storage: project.refs
+
+options:
+ test:
+ type: bool
+ description: Test boolean
+ default: False
diff --git a/tests/format/project/refs-options/project.refs b/tests/format/project/refs-options/project.refs
new file mode 100644
index 000000000..1a9cb51b2
--- /dev/null
+++ b/tests/format/project/refs-options/project.refs
@@ -0,0 +1,12 @@
+# A project.refs file with a conditional statement
+#
+projects:
+ test:
+ target.bst:
+ - ref: pony
+
+ # Optionally override the ref
+ (?):
+ - test:
+ target.bst:
+ - ref: horsy
diff --git a/tests/format/project/refs-options/target.bst b/tests/format/project/refs-options/target.bst
new file mode 100644
index 000000000..bf9192295
--- /dev/null
+++ b/tests/format/project/refs-options/target.bst
@@ -0,0 +1,9 @@
+kind: import
+description: |
+
+ Import some git repo with optional refs
+
+sources:
+- kind: git
+ url: http://pony.com/git
+ track: master