summaryrefslogtreecommitdiff
path: root/tests/sources
diff options
context:
space:
mode:
authorRaoul Hidalgo Charman <raoul.hidalgocharman@codethink.co.uk>2019-05-02 16:01:13 +0100
committerRaoul Hidalgo Charman <raoul.hidalgocharman@codethink.co.uk>2019-05-10 16:09:20 +0100
commit7299f85e98b558edac216af5cd8c1ca2762041bd (patch)
treea8ceabaf9e3ee919bd9586b3af451f98298c8c45 /tests/sources
parentcc871d37500cc78d16112cf31bf32685c3b7e9aa (diff)
downloadbuildstream-7299f85e98b558edac216af5cd8c1ca2762041bd.tar.gz
source.py: ensure previous track refs are updatedraoul/1010-multiple-track-fix
Updates the refs in the job process (but doesn't write), to ensure following sources can see consistency of previous sourcse has been updated. `_save_ref` is renamed `_set_ref` with writing to file now optional. This also changes the previous_source_access test to use a remote, so that it actually tests this cornercase. Fixes #1010
Diffstat (limited to 'tests/sources')
-rw-r--r--tests/sources/previous_source_access.py8
-rw-r--r--tests/sources/previous_source_access/elements/target.bst4
-rw-r--r--tests/sources/previous_source_access/project.conf3
3 files changed, 13 insertions, 2 deletions
diff --git a/tests/sources/previous_source_access.py b/tests/sources/previous_source_access.py
index a0661ca98..800e0ced5 100644
--- a/tests/sources/previous_source_access.py
+++ b/tests/sources/previous_source_access.py
@@ -4,6 +4,7 @@
import os
import pytest
+from buildstream import _yaml
from buildstream.testing import cli # pylint: disable=unused-import
DATA_DIR = os.path.join(
@@ -20,6 +21,13 @@ DATA_DIR = os.path.join(
def test_custom_transform_source(cli, datafiles):
project = str(datafiles)
+ # Set the project_dir alias in project.conf to the path to the tested project
+ project_config_path = os.path.join(project, "project.conf")
+ project_config = _yaml.load(project_config_path)
+ aliases = _yaml.node_get(project_config, dict, "aliases")
+ _yaml.node_set(aliases, "project_dir", "file://{}".format(project))
+ _yaml.dump(project_config, project_config_path)
+
# Ensure we can track
result = cli.run(project=project, args=[
'source', 'track', 'target.bst'
diff --git a/tests/sources/previous_source_access/elements/target.bst b/tests/sources/previous_source_access/elements/target.bst
index c9d3b9bb6..fd54a28d0 100644
--- a/tests/sources/previous_source_access/elements/target.bst
+++ b/tests/sources/previous_source_access/elements/target.bst
@@ -1,6 +1,6 @@
kind: import
sources:
-- kind: local
- path: files/file
+- kind: remote
+ url: project_dir:/files/file
- kind: foo_transform
diff --git a/tests/sources/previous_source_access/project.conf b/tests/sources/previous_source_access/project.conf
index 1749b3dba..5d50ec2c5 100644
--- a/tests/sources/previous_source_access/project.conf
+++ b/tests/sources/previous_source_access/project.conf
@@ -3,6 +3,9 @@ name: foo
element-path: elements
+aliases:
+ project_dir: file://{project_dir}
+
plugins:
- origin: local
path: plugins/sources