Tristan Van Berkom pushed to branch valentindavid/cli_integration_source_determinism at BuildStream / buildstream
Commits:
-
56096b60
by Chandan Singh at 2018-08-24T02:12:03Z
-
86e4729d
by Tristan Van Berkom at 2018-08-24T06:42:03Z
-
d88568ef
by Valentin David at 2018-08-24T06:48:08Z
3 changed files:
Changes:
... | ... | @@ -36,6 +36,11 @@ source_dist: |
36 | 36 |
- tar -ztf dist/*
|
37 | 37 |
- tarball=$(cd dist && echo $(ls *))
|
38 | 38 |
|
39 |
+ # Verify that the source distribution tarball can be installed correctly
|
|
40 |
+ #
|
|
41 |
+ - pip3 install dist/*.tar.gz
|
|
42 |
+ - bst --version
|
|
43 |
+ |
|
39 | 44 |
# unpack tarball as `dist/buildstream` directory
|
40 | 45 |
- |
|
41 | 46 |
cat > dist/unpack.sh << EOF
|
... | ... | @@ -2,7 +2,8 @@ import os |
2 | 2 |
import pytest
|
3 | 3 |
|
4 | 4 |
from buildstream import _yaml, utils
|
5 |
-from tests.testutils import cli, create_repo, ALL_REPO_KINDS
|
|
5 |
+from tests.testutils import create_repo, ALL_REPO_KINDS
|
|
6 |
+from tests.testutils import cli_integration as cli
|
|
6 | 7 |
|
7 | 8 |
|
8 | 9 |
DATA_DIR = os.path.join(
|
... | ... | @@ -28,7 +29,7 @@ def create_test_directory(*path, mode=0o644): |
28 | 29 |
@pytest.mark.integration
|
29 | 30 |
@pytest.mark.datafiles(DATA_DIR)
|
30 | 31 |
@pytest.mark.parametrize("kind", [(kind) for kind in ALL_REPO_KINDS] + ['local'])
|
31 |
-def test_deterministic_source_umask(cli, tmpdir, datafiles, kind):
|
|
32 |
+def test_deterministic_source_umask(cli, tmpdir, datafiles, kind, integration_cache):
|
|
32 | 33 |
project = str(datafiles)
|
33 | 34 |
element_name = 'list'
|
34 | 35 |
element_path = os.path.join(project, 'elements', element_name)
|
... | ... | @@ -91,14 +92,16 @@ def test_deterministic_source_umask(cli, tmpdir, datafiles, kind): |
91 | 92 |
return f.read()
|
92 | 93 |
finally:
|
93 | 94 |
os.umask(old_umask)
|
94 |
- cli.remove_artifact_from_cache(project, element_name)
|
|
95 |
+ cache_dir = os.path.join(integration_cache, 'artifacts')
|
|
96 |
+ cli.remove_artifact_from_cache(project, element_name,
|
|
97 |
+ cache_dir=cache_dir)
|
|
95 | 98 |
|
96 | 99 |
assert get_value_for_umask(0o022) == get_value_for_umask(0o077)
|
97 | 100 |
|
98 | 101 |
|
99 | 102 |
@pytest.mark.integration
|
100 | 103 |
@pytest.mark.datafiles(DATA_DIR)
|
101 |
-def test_deterministic_source_local(cli, tmpdir, datafiles):
|
|
104 |
+def test_deterministic_source_local(cli, tmpdir, datafiles, integration_cache):
|
|
102 | 105 |
"""Only user rights should be considered for local source.
|
103 | 106 |
"""
|
104 | 107 |
project = str(datafiles)
|
... | ... | @@ -150,6 +153,8 @@ def test_deterministic_source_local(cli, tmpdir, datafiles): |
150 | 153 |
with open(os.path.join(checkoutdir, 'ls-l'), 'r') as f:
|
151 | 154 |
return f.read()
|
152 | 155 |
finally:
|
153 |
- cli.remove_artifact_from_cache(project, element_name)
|
|
156 |
+ cache_dir = os.path.join(integration_cache, 'artifacts')
|
|
157 |
+ cli.remove_artifact_from_cache(project, element_name,
|
|
158 |
+ cache_dir=cache_dir)
|
|
154 | 159 |
|
155 | 160 |
assert get_value_for_mask(0o7777) == get_value_for_mask(0o0700)
|
... | ... | @@ -198,8 +198,10 @@ class Cli(): |
198 | 198 |
for key, val in config.items():
|
199 | 199 |
self.config[key] = val
|
200 | 200 |
|
201 |
- def remove_artifact_from_cache(self, project, element_name):
|
|
202 |
- cache_dir = os.path.join(project, 'cache', 'artifacts')
|
|
201 |
+ def remove_artifact_from_cache(self, project, element_name,
|
|
202 |
+ *, cache_dir=None):
|
|
203 |
+ if not cache_dir:
|
|
204 |
+ cache_dir = os.path.join(project, 'cache', 'artifacts')
|
|
203 | 205 |
|
204 | 206 |
cache_dir = os.path.join(cache_dir, 'cas', 'refs', 'heads')
|
205 | 207 |
|