summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2019-05-09 06:31:37 +0000
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2019-05-09 06:31:37 +0000
commit9800accc7432c7ac3f375d7fa0c5f8ed28cd47ff (patch)
tree8020815ede967a23512e19baa3f5b09a5ea55498
parent5dad01068d3c662c335065015c770f8afc8d282f (diff)
parent34c3034b959ff2b839f17a7cbf998f95aca5ff58 (diff)
downloadbuildstream-9800accc7432c7ac3f375d7fa0c5f8ed28cd47ff.tar.gz
Merge branch 'tristan/fix-no-strict-junctions' into 'master'
Fix no strict junctions Closes #1018 See merge request BuildStream/buildstream!1333
-rw-r--r--buildstream/_loader/loader.py2
-rw-r--r--tests/frontend/fetch.py10
2 files changed, 10 insertions, 2 deletions
diff --git a/buildstream/_loader/loader.py b/buildstream/_loader/loader.py
index 31d721b07..261ec40e4 100644
--- a/buildstream/_loader/loader.py
+++ b/buildstream/_loader/loader.py
@@ -564,7 +564,7 @@ class Loader():
basedir = sources[0]._get_local_path()
else:
# Stage sources
- element._update_state()
+ element._set_required()
basedir = os.path.join(self.project.directory, ".bst", "staged-junctions",
filename, element._get_cache_key())
if not os.path.exists(basedir):
diff --git a/tests/frontend/fetch.py b/tests/frontend/fetch.py
index e330cd407..9e7a55ad9 100644
--- a/tests/frontend/fetch.py
+++ b/tests/frontend/fetch.py
@@ -79,8 +79,9 @@ def test_fetch_consistency_bug(cli, datafiles):
@pytest.mark.datafiles(DATA_DIR)
+@pytest.mark.parametrize("strict", [True, False], ids=["strict", "no-strict"])
@pytest.mark.parametrize("ref_storage", [('inline'), ('project.refs')])
-def test_unfetched_junction(cli, tmpdir, datafiles, ref_storage):
+def test_unfetched_junction(cli, tmpdir, datafiles, strict, ref_storage):
project = str(datafiles)
subproject_path = os.path.join(project, 'files', 'sub-project')
junction_path = os.path.join(project, 'elements', 'junction.bst')
@@ -89,6 +90,13 @@ def test_unfetched_junction(cli, tmpdir, datafiles, ref_storage):
configure_project(project, {
'ref-storage': ref_storage
})
+ cli.configure({
+ 'projects': {
+ 'test': {
+ 'strict': strict
+ }
+ }
+ })
# Create a repo to hold the subproject and generate a junction element for it
ref = generate_junction(tmpdir, subproject_path, junction_path, store_ref=(ref_storage == 'inline'))