summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDarius Makovsky <traveltissues@protonmail.com>2019-09-27 14:49:45 +0100
committerDarius Makovsky <traveltissues@protonmail.com>2019-10-05 13:56:44 +0000
commit1b0d05a3d48fd474592697bde57db7a94bd10b07 (patch)
tree5c7439b0e9eb27c6a278582543103a4f8cfcf741 /tests
parentf886d33abb03649b08824d9ab7b4057ddabbaa8c (diff)
downloadbuildstream-1b0d05a3d48fd474592697bde57db7a94bd10b07.tar.gz
element.py: remove concept of key instability
Workspace keys are determined by contained files at time of opening and are not forcibly reset tests: workspaces have keys when they're opened and are not recalculated
Diffstat (limited to 'tests')
-rw-r--r--tests/frontend/workspace.py45
1 files changed, 35 insertions, 10 deletions
diff --git a/tests/frontend/workspace.py b/tests/frontend/workspace.py
index a49762cae..2006fe7f4 100644
--- a/tests/frontend/workspace.py
+++ b/tests/frontend/workspace.py
@@ -674,11 +674,16 @@ def test_build(cli, tmpdir_factory, datafiles, kind, strict, from_workspace, gue
# Build modified workspace
assert cli.get_element_state(project, element_name) == 'buildable'
- assert cli.get_element_key(project, element_name) == "{:?<64}".format('')
+ key_1 = cli.get_element_key(project, element_name)
+ assert key_1 != "{:?<64}".format('')
result = cli.run(project=project, args=args_dir + ['build', *args_elm])
result.assert_success()
assert cli.get_element_state(project, element_name) == 'cached'
- assert cli.get_element_key(project, element_name) != "{:?<64}".format('')
+ key_2 = cli.get_element_key(project, element_name)
+ assert key_2 != "{:?<64}".format('')
+
+ # workspace keys are not recalculated
+ assert key_1 == key_2
# Checkout the result
result = cli.run(project=project,
@@ -745,11 +750,16 @@ def test_detect_modifications(cli, tmpdir, datafiles, modification, strict):
# Build clean workspace
assert cli.get_element_state(project, element_name) == 'buildable'
- assert cli.get_element_key(project, element_name) == "{:?<64}".format('')
+ key_1 = cli.get_element_key(project, element_name)
+ assert key_1 != "{:?<64}".format('')
result = cli.run(project=project, args=['build', element_name])
result.assert_success()
assert cli.get_element_state(project, element_name) == 'cached'
- assert cli.get_element_key(project, element_name) != "{:?<64}".format('')
+ key_2 = cli.get_element_key(project, element_name)
+ assert key_2 != "{:?<64}".format('')
+
+ # workspace keys are not recalculated
+ assert key_1 == key_2
wait_for_cache_granularity()
@@ -771,7 +781,8 @@ def test_detect_modifications(cli, tmpdir, datafiles, modification, strict):
# First assert that the state is properly detected
assert cli.get_element_state(project, element_name) == 'buildable'
- assert cli.get_element_key(project, element_name) == "{:?<64}".format('')
+ key_3 = cli.get_element_key(project, element_name)
+ assert key_3 != "{:?<64}".format('')
# Since there are different things going on at `bst build` time
# than `bst show` time, we also want to build / checkout again,
@@ -779,7 +790,13 @@ def test_detect_modifications(cli, tmpdir, datafiles, modification, strict):
result = cli.run(project=project, args=['build', element_name])
result.assert_success()
assert cli.get_element_state(project, element_name) == 'cached'
- assert cli.get_element_key(project, element_name) != "{:?<64}".format('')
+ key_4 = cli.get_element_key(project, element_name)
+ assert key_4 != "{:?<64}".format('')
+
+ # workspace keys are not recalculated
+ assert key_3 == key_4
+ # workspace keys are determined by the files
+ assert key_1 != key_3
# Checkout the result
result = cli.run(project=project, args=[
@@ -1039,18 +1056,26 @@ def test_cache_key_workspace_in_dependencies(cli, tmpdir, datafiles, strict):
# Build artifact with dependency's modified workspace
assert cli.get_element_state(project, element_name) == 'buildable'
- assert cli.get_element_key(project, element_name) == "{:?<64}".format('')
+ key_a1 = cli.get_element_key(project, element_name)
+ assert key_a1 != "{:?<64}".format('')
assert cli.get_element_state(project, back_dep_element_name) == 'waiting'
- assert cli.get_element_key(project, back_dep_element_name) == "{:?<64}".format('')
+ key_b1 = cli.get_element_key(project, back_dep_element_name)
+ assert key_b1 != "{:?<64}".format('')
result = cli.run(project=project, args=['build', back_dep_element_name])
result.assert_success()
assert cli.get_element_state(project, element_name) == 'cached'
- assert cli.get_element_key(project, element_name) != "{:?<64}".format('')
+ key_a2 = cli.get_element_key(project, element_name)
+ assert key_a2 != "{:?<64}".format('')
assert cli.get_element_state(project, back_dep_element_name) == 'cached'
- assert cli.get_element_key(project, back_dep_element_name) != "{:?<64}".format('')
+ key_b2 = cli.get_element_key(project, back_dep_element_name)
+ assert key_b2 != "{:?<64}".format('')
result = cli.run(project=project, args=['build', back_dep_element_name])
result.assert_success()
+ # workspace keys are not recalculated
+ assert key_a1 == key_a2
+ assert key_b1 == key_b2
+
# Checkout the result
result = cli.run(project=project, args=[
'artifact', 'checkout', back_dep_element_name, '--directory', checkout