Jonathan Maw pushed to branch jonathan/wsl-tests at BuildStream / buildstream
Commits:
-
582d1be3
by Jonathan Maw at 2019-01-25T15:31:12Z
-
55b54249
by Jonathan Maw at 2019-01-25T15:31:43Z
-
0418974c
by Jonathan Maw at 2019-01-25T15:32:40Z
-
b6f52152
by Jonathan Maw at 2019-01-25T15:33:51Z
24 changed files:
- .gitlab-ci.yml
- conftest.py
- tests/integration/autotools.py
- tests/integration/build-tree.py
- tests/integration/build-uid.py
- tests/integration/cachedfail.py
- tests/integration/cmake.py
- tests/integration/compose.py
- tests/integration/make.py
- tests/integration/manual.py
- tests/integration/messages.py
- tests/integration/pip_element.py
- tests/integration/pip_source.py
- tests/integration/pullbuildtrees.py
- tests/integration/script.py
- tests/integration/shell.py
- tests/integration/sockets.py
- tests/integration/source-determinism.py
- tests/integration/stack.py
- tests/integration/symlinks.py
- tests/integration/workspace.py
- tests/sandboxes/missing-command.py
- tests/testutils/filetypegenerator.py
- tests/testutils/site.py
Changes:
... | ... | @@ -157,6 +157,20 @@ lint: |
157 | 157 |
except:
|
158 | 158 |
- schedules
|
159 | 159 |
|
160 |
+tests-wsl:
|
|
161 |
+ stage: test
|
|
162 |
+ variables:
|
|
163 |
+ LC_ALL: C.UTF-8
|
|
164 |
+ LANG: C.UTF-8
|
|
165 |
+ tags:
|
|
166 |
+ - wsl
|
|
167 |
+ before_script:
|
|
168 |
+ - mount
|
|
169 |
+ - df -h
|
|
170 |
+ |
|
171 |
+ script:
|
|
172 |
+ - tox
|
|
173 |
+ |
|
160 | 174 |
# Automatically build documentation for every commit, we want to know
|
161 | 175 |
# if building documentation fails even if we're not deploying it.
|
162 | 176 |
docs:
|
... | ... | @@ -58,6 +58,7 @@ class IntegrationCache(): |
58 | 58 |
# Use the same sources every time
|
59 | 59 |
self.sources = os.path.join(cache, 'sources')
|
60 | 60 |
|
61 |
+ os.makedirs(cache, exist_ok=True)
|
|
61 | 62 |
# Create a temp directory for the duration of the test for
|
62 | 63 |
# the artifacts directory
|
63 | 64 |
try:
|
... | ... | @@ -3,7 +3,7 @@ import pytest |
3 | 3 |
|
4 | 4 |
from tests.testutils import cli_integration as cli
|
5 | 5 |
from tests.testutils.integration import assert_contains
|
6 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
6 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
7 | 7 |
|
8 | 8 |
|
9 | 9 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -19,6 +19,7 @@ DATA_DIR = os.path.join( |
19 | 19 |
# amhello project for this.
|
20 | 20 |
@pytest.mark.integration
|
21 | 21 |
@pytest.mark.datafiles(DATA_DIR)
|
22 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
22 | 23 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
23 | 24 |
def test_autotools_build(cli, tmpdir, datafiles):
|
24 | 25 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
... | ... | @@ -42,6 +43,7 @@ def test_autotools_build(cli, tmpdir, datafiles): |
42 | 43 |
# amhello project for this.
|
43 | 44 |
@pytest.mark.integration
|
44 | 45 |
@pytest.mark.datafiles(DATA_DIR)
|
46 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
45 | 47 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
46 | 48 |
def test_autotools_confroot_build(cli, tmpdir, datafiles):
|
47 | 49 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
... | ... | @@ -63,6 +65,7 @@ def test_autotools_confroot_build(cli, tmpdir, datafiles): |
63 | 65 |
|
64 | 66 |
# Test running an executable built with autotools
|
65 | 67 |
@pytest.mark.datafiles(DATA_DIR)
|
68 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
66 | 69 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
67 | 70 |
def test_autotools_run(cli, tmpdir, datafiles):
|
68 | 71 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
... | ... | @@ -3,7 +3,7 @@ import pytest |
3 | 3 |
import shutil
|
4 | 4 |
|
5 | 5 |
from tests.testutils import cli, cli_integration, create_artifact_share
|
6 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
6 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
7 | 7 |
from buildstream._exceptions import ErrorDomain
|
8 | 8 |
|
9 | 9 |
|
... | ... | @@ -17,6 +17,7 @@ DATA_DIR = os.path.join( |
17 | 17 |
|
18 | 18 |
|
19 | 19 |
@pytest.mark.datafiles(DATA_DIR)
|
20 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
20 | 21 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
21 | 22 |
def test_buildtree_staged(cli_integration, tmpdir, datafiles):
|
22 | 23 |
# We can only test the non interacitve case
|
... | ... | @@ -35,6 +36,7 @@ def test_buildtree_staged(cli_integration, tmpdir, datafiles): |
35 | 36 |
|
36 | 37 |
|
37 | 38 |
@pytest.mark.datafiles(DATA_DIR)
|
39 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
38 | 40 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
39 | 41 |
def test_buildtree_staged_forced_true(cli_integration, tmpdir, datafiles):
|
40 | 42 |
# Test that if we ask for a build tree it is there.
|
... | ... | @@ -52,6 +54,7 @@ def test_buildtree_staged_forced_true(cli_integration, tmpdir, datafiles): |
52 | 54 |
|
53 | 55 |
|
54 | 56 |
@pytest.mark.datafiles(DATA_DIR)
|
57 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
55 | 58 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
56 | 59 |
def test_buildtree_staged_if_available(cli_integration, tmpdir, datafiles):
|
57 | 60 |
# Test that a build tree can be correctly detected.
|
... | ... | @@ -69,6 +72,7 @@ def test_buildtree_staged_if_available(cli_integration, tmpdir, datafiles): |
69 | 72 |
|
70 | 73 |
|
71 | 74 |
@pytest.mark.datafiles(DATA_DIR)
|
75 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
72 | 76 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
73 | 77 |
def test_buildtree_staged_forced_false(cli_integration, tmpdir, datafiles):
|
74 | 78 |
# Test that if we ask not to have a build tree it is not there
|
... | ... | @@ -87,6 +91,7 @@ def test_buildtree_staged_forced_false(cli_integration, tmpdir, datafiles): |
87 | 91 |
|
88 | 92 |
|
89 | 93 |
@pytest.mark.datafiles(DATA_DIR)
|
94 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
90 | 95 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
91 | 96 |
def test_buildtree_from_failure(cli_integration, tmpdir, datafiles):
|
92 | 97 |
# Test that we can use a build tree after a failure
|
... | ... | @@ -108,6 +113,7 @@ def test_buildtree_from_failure(cli_integration, tmpdir, datafiles): |
108 | 113 |
# Check that build shells work when pulled from a remote cache
|
109 | 114 |
# This is to roughly simulate remote execution
|
110 | 115 |
@pytest.mark.datafiles(DATA_DIR)
|
116 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
111 | 117 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
112 | 118 |
def test_buildtree_pulled(cli, tmpdir, datafiles):
|
113 | 119 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
... | ... | @@ -143,6 +149,7 @@ def test_buildtree_pulled(cli, tmpdir, datafiles): |
143 | 149 |
|
144 | 150 |
# This test checks for correct behaviour if a buildtree is not present.
|
145 | 151 |
@pytest.mark.datafiles(DATA_DIR)
|
152 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
146 | 153 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
147 | 154 |
def test_buildtree_options(cli, tmpdir, datafiles):
|
148 | 155 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
... | ... | @@ -5,7 +5,7 @@ from buildstream import _yaml |
5 | 5 |
|
6 | 6 |
from tests.testutils import cli_integration as cli
|
7 | 7 |
from tests.testutils.integration import assert_contains
|
8 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
8 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
9 | 9 |
|
10 | 10 |
|
11 | 11 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -56,6 +56,7 @@ def test_build_uid_in_project(cli, tmpdir, datafiles): |
56 | 56 |
|
57 | 57 |
@pytest.mark.datafiles(DATA_DIR)
|
58 | 58 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
59 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
59 | 60 |
def test_build_uid_default(cli, tmpdir, datafiles):
|
60 | 61 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
61 | 62 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -7,7 +7,7 @@ from buildstream._exceptions import ErrorDomain |
7 | 7 |
from conftest import clean_platform_cache
|
8 | 8 |
|
9 | 9 |
from tests.testutils import cli_integration as cli, create_artifact_share
|
10 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
10 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
11 | 11 |
|
12 | 12 |
|
13 | 13 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -21,6 +21,7 @@ DATA_DIR = os.path.join( |
21 | 21 |
|
22 | 22 |
@pytest.mark.datafiles(DATA_DIR)
|
23 | 23 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
24 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
24 | 25 |
def test_build_checkout_cached_fail(cli, tmpdir, datafiles):
|
25 | 26 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
26 | 27 |
element_path = os.path.join(project, 'elements', 'element.bst')
|
... | ... | @@ -65,6 +66,7 @@ def test_build_checkout_cached_fail(cli, tmpdir, datafiles): |
65 | 66 |
|
66 | 67 |
@pytest.mark.datafiles(DATA_DIR)
|
67 | 68 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
69 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
68 | 70 |
def test_build_depend_on_cached_fail(cli, tmpdir, datafiles):
|
69 | 71 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
70 | 72 |
dep_path = os.path.join(project, 'elements', 'dep.bst')
|
... | ... | @@ -124,6 +126,7 @@ def test_build_depend_on_cached_fail(cli, tmpdir, datafiles): |
124 | 126 |
|
125 | 127 |
|
126 | 128 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
129 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
127 | 130 |
@pytest.mark.datafiles(DATA_DIR)
|
128 | 131 |
@pytest.mark.parametrize("on_error", ("continue", "quit"))
|
129 | 132 |
def test_push_cached_fail(cli, tmpdir, datafiles, on_error):
|
... | ... | @@ -3,7 +3,7 @@ import pytest |
3 | 3 |
|
4 | 4 |
from tests.testutils import cli_integration as cli
|
5 | 5 |
from tests.testutils.integration import assert_contains
|
6 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
6 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
7 | 7 |
|
8 | 8 |
|
9 | 9 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -17,6 +17,7 @@ DATA_DIR = os.path.join( |
17 | 17 |
|
18 | 18 |
@pytest.mark.datafiles(DATA_DIR)
|
19 | 19 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
20 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
20 | 21 |
def test_cmake_build(cli, tmpdir, datafiles):
|
21 | 22 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
22 | 23 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -33,6 +34,7 @@ def test_cmake_build(cli, tmpdir, datafiles): |
33 | 34 |
|
34 | 35 |
@pytest.mark.datafiles(DATA_DIR)
|
35 | 36 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
37 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
36 | 38 |
def test_cmake_confroot_build(cli, tmpdir, datafiles):
|
37 | 39 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
38 | 40 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -49,6 +51,7 @@ def test_cmake_confroot_build(cli, tmpdir, datafiles): |
49 | 51 |
|
50 | 52 |
@pytest.mark.datafiles(DATA_DIR)
|
51 | 53 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
54 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
52 | 55 |
def test_cmake_run(cli, tmpdir, datafiles):
|
53 | 56 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
54 | 57 |
element_name = 'cmake/cmakehello.bst'
|
... | ... | @@ -7,7 +7,7 @@ from buildstream import _yaml |
7 | 7 |
|
8 | 8 |
from tests.testutils import cli_integration as cli
|
9 | 9 |
from tests.testutils.integration import walk_dir
|
10 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
10 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
11 | 11 |
|
12 | 12 |
|
13 | 13 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -76,6 +76,7 @@ def create_compose_element(name, path, config={}): |
76 | 76 |
'/usr/share/doc/amhello/README'])
|
77 | 77 |
])
|
78 | 78 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
79 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
79 | 80 |
def test_compose_include(cli, tmpdir, datafiles, include_domains,
|
80 | 81 |
exclude_domains, expected):
|
81 | 82 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
... | ... | @@ -3,7 +3,7 @@ import pytest |
3 | 3 |
|
4 | 4 |
from tests.testutils import cli_integration as cli
|
5 | 5 |
from tests.testutils.integration import assert_contains
|
6 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
6 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
7 | 7 |
|
8 | 8 |
|
9 | 9 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -20,6 +20,7 @@ DATA_DIR = os.path.join( |
20 | 20 |
@pytest.mark.integration
|
21 | 21 |
@pytest.mark.datafiles(DATA_DIR)
|
22 | 22 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
23 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
23 | 24 |
def test_make_build(cli, tmpdir, datafiles):
|
24 | 25 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
25 | 26 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -38,6 +39,7 @@ def test_make_build(cli, tmpdir, datafiles): |
38 | 39 |
# Test running an executable built with make
|
39 | 40 |
@pytest.mark.datafiles(DATA_DIR)
|
40 | 41 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
42 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
41 | 43 |
def test_make_run(cli, tmpdir, datafiles):
|
42 | 44 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
43 | 45 |
element_name = 'make/makehello.bst'
|
... | ... | @@ -4,7 +4,7 @@ import pytest |
4 | 4 |
from buildstream import _yaml
|
5 | 5 |
|
6 | 6 |
from tests.testutils import cli_integration as cli
|
7 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
7 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
8 | 8 |
|
9 | 9 |
|
10 | 10 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -33,6 +33,7 @@ def create_manual_element(name, path, config, variables, environment): |
33 | 33 |
|
34 | 34 |
@pytest.mark.datafiles(DATA_DIR)
|
35 | 35 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
36 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
36 | 37 |
def test_manual_element(cli, tmpdir, datafiles):
|
37 | 38 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
38 | 39 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -67,6 +68,7 @@ strip |
67 | 68 |
|
68 | 69 |
@pytest.mark.datafiles(DATA_DIR)
|
69 | 70 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
71 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
70 | 72 |
def test_manual_element_environment(cli, tmpdir, datafiles):
|
71 | 73 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
72 | 74 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -97,6 +99,7 @@ def test_manual_element_environment(cli, tmpdir, datafiles): |
97 | 99 |
|
98 | 100 |
@pytest.mark.datafiles(DATA_DIR)
|
99 | 101 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
102 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
100 | 103 |
def test_manual_element_noparallel(cli, tmpdir, datafiles):
|
101 | 104 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
102 | 105 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -132,6 +135,7 @@ def test_manual_element_noparallel(cli, tmpdir, datafiles): |
132 | 135 |
|
133 | 136 |
@pytest.mark.datafiles(DATA_DIR)
|
134 | 137 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
138 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
135 | 139 |
def test_manual_element_logging(cli, tmpdir, datafiles):
|
136 | 140 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
137 | 141 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -24,7 +24,7 @@ from buildstream import _yaml |
24 | 24 |
from buildstream._exceptions import ErrorDomain
|
25 | 25 |
|
26 | 26 |
from tests.testutils import cli_integration as cli
|
27 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
27 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
28 | 28 |
|
29 | 29 |
|
30 | 30 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -40,6 +40,7 @@ DATA_DIR = os.path.join( |
40 | 40 |
@pytest.mark.integration
|
41 | 41 |
@pytest.mark.datafiles(DATA_DIR)
|
42 | 42 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
43 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
43 | 44 |
def test_disable_message_lines(cli, tmpdir, datafiles):
|
44 | 45 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
45 | 46 |
element_path = os.path.join(project, 'elements')
|
... | ... | @@ -76,6 +77,7 @@ def test_disable_message_lines(cli, tmpdir, datafiles): |
76 | 77 |
@pytest.mark.integration
|
77 | 78 |
@pytest.mark.datafiles(DATA_DIR)
|
78 | 79 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
80 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
79 | 81 |
def test_disable_error_lines(cli, tmpdir, datafiles):
|
80 | 82 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
81 | 83 |
element_path = os.path.join(project, 'elements')
|
... | ... | @@ -6,7 +6,7 @@ from buildstream import _yaml |
6 | 6 |
|
7 | 7 |
from tests.testutils import cli_integration as cli
|
8 | 8 |
from tests.testutils.integration import assert_contains
|
9 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
9 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
10 | 10 |
|
11 | 11 |
|
12 | 12 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -20,6 +20,7 @@ DATA_DIR = os.path.join( |
20 | 20 |
|
21 | 21 |
@pytest.mark.datafiles(DATA_DIR)
|
22 | 22 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
23 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
23 | 24 |
def test_pip_build(cli, tmpdir, datafiles):
|
24 | 25 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
25 | 26 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -57,6 +58,7 @@ def test_pip_build(cli, tmpdir, datafiles): |
57 | 58 |
# Test running an executable built with pip
|
58 | 59 |
@pytest.mark.datafiles(DATA_DIR)
|
59 | 60 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
61 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
60 | 62 |
def test_pip_run(cli, tmpdir, datafiles):
|
61 | 63 |
# Create and build our test element
|
62 | 64 |
test_pip_build(cli, tmpdir, datafiles)
|
... | ... | @@ -6,7 +6,7 @@ from buildstream import _yaml |
6 | 6 |
from tests.testutils import cli_integration as cli
|
7 | 7 |
from tests.testutils.python_repo import setup_pypi_repo
|
8 | 8 |
from tests.testutils.integration import assert_contains
|
9 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
9 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
10 | 10 |
|
11 | 11 |
|
12 | 12 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -74,6 +74,7 @@ def test_pip_source_import(cli, tmpdir, datafiles, setup_pypi_repo): |
74 | 74 |
|
75 | 75 |
@pytest.mark.datafiles(DATA_DIR)
|
76 | 76 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
77 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
77 | 78 |
def test_pip_source_build(cli, tmpdir, datafiles, setup_pypi_repo):
|
78 | 79 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
79 | 80 |
element_path = os.path.join(project, 'elements')
|
... | ... | @@ -4,7 +4,7 @@ import pytest |
4 | 4 |
|
5 | 5 |
from tests.testutils import cli, cli_integration as cli2, create_artifact_share
|
6 | 6 |
from tests.testutils.integration import assert_contains
|
7 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
7 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
8 | 8 |
from buildstream._exceptions import ErrorDomain, LoadErrorReason
|
9 | 9 |
|
10 | 10 |
|
... | ... | @@ -32,6 +32,7 @@ def default_state(cli, tmpdir, share): |
32 | 32 |
@pytest.mark.integration
|
33 | 33 |
@pytest.mark.datafiles(DATA_DIR)
|
34 | 34 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
35 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
35 | 36 |
def test_pullbuildtrees(cli2, tmpdir, datafiles):
|
36 | 37 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
37 | 38 |
element_name = 'autotools/amhello.bst'
|
... | ... | @@ -4,7 +4,7 @@ import pytest |
4 | 4 |
from buildstream import _yaml
|
5 | 5 |
|
6 | 6 |
from tests.testutils import cli_integration as cli
|
7 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
7 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
8 | 8 |
|
9 | 9 |
|
10 | 10 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -32,6 +32,7 @@ def create_script_element(name, path, config={}, variables={}): |
32 | 32 |
|
33 | 33 |
@pytest.mark.datafiles(DATA_DIR)
|
34 | 34 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
35 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
35 | 36 |
def test_script(cli, tmpdir, datafiles):
|
36 | 37 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
37 | 38 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -60,6 +61,7 @@ def test_script(cli, tmpdir, datafiles): |
60 | 61 |
|
61 | 62 |
@pytest.mark.datafiles(DATA_DIR)
|
62 | 63 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
64 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
63 | 65 |
def test_script_root(cli, tmpdir, datafiles):
|
64 | 66 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
65 | 67 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -92,6 +94,7 @@ def test_script_root(cli, tmpdir, datafiles): |
92 | 94 |
|
93 | 95 |
@pytest.mark.datafiles(DATA_DIR)
|
94 | 96 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
97 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
95 | 98 |
def test_script_no_root(cli, tmpdir, datafiles):
|
96 | 99 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
97 | 100 |
element_path = os.path.join(project, 'elements')
|
... | ... | @@ -115,6 +118,7 @@ def test_script_no_root(cli, tmpdir, datafiles): |
115 | 118 |
|
116 | 119 |
@pytest.mark.datafiles(DATA_DIR)
|
117 | 120 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
121 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
118 | 122 |
def test_script_cwd(cli, tmpdir, datafiles):
|
119 | 123 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
120 | 124 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -146,6 +150,7 @@ def test_script_cwd(cli, tmpdir, datafiles): |
146 | 150 |
|
147 | 151 |
@pytest.mark.datafiles(DATA_DIR)
|
148 | 152 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
153 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
149 | 154 |
def test_script_layout(cli, tmpdir, datafiles):
|
150 | 155 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
151 | 156 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -165,6 +170,7 @@ def test_script_layout(cli, tmpdir, datafiles): |
165 | 170 |
|
166 | 171 |
@pytest.mark.datafiles(DATA_DIR)
|
167 | 172 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
173 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
168 | 174 |
def test_regression_cache_corruption(cli, tmpdir, datafiles):
|
169 | 175 |
project = str(datafiles)
|
170 | 176 |
checkout_original = os.path.join(cli.directory, 'checkout-original')
|
... | ... | @@ -195,6 +201,7 @@ def test_regression_cache_corruption(cli, tmpdir, datafiles): |
195 | 201 |
|
196 | 202 |
@pytest.mark.datafiles(DATA_DIR)
|
197 | 203 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
204 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
198 | 205 |
def test_regression_tmpdir(cli, tmpdir, datafiles):
|
199 | 206 |
project = str(datafiles)
|
200 | 207 |
element_name = 'script/tmpdir.bst'
|
... | ... | @@ -205,6 +212,7 @@ def test_regression_tmpdir(cli, tmpdir, datafiles): |
205 | 212 |
|
206 | 213 |
@pytest.mark.datafiles(DATA_DIR)
|
207 | 214 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
215 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
208 | 216 |
def test_regression_cache_corruption_2(cli, tmpdir, datafiles):
|
209 | 217 |
project = str(datafiles)
|
210 | 218 |
checkout_original = os.path.join(cli.directory, 'checkout-original')
|
... | ... | @@ -5,7 +5,7 @@ from buildstream import _yaml |
5 | 5 |
from buildstream._exceptions import ErrorDomain
|
6 | 6 |
|
7 | 7 |
from tests.testutils import cli_integration as cli
|
8 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
8 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
9 | 9 |
|
10 | 10 |
|
11 | 11 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -50,6 +50,7 @@ def execute_shell(cli, project, command, *, config=None, mount=None, element='ba |
50 | 50 |
# executable
|
51 | 51 |
@pytest.mark.datafiles(DATA_DIR)
|
52 | 52 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
53 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
53 | 54 |
def test_shell(cli, tmpdir, datafiles):
|
54 | 55 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
55 | 56 |
|
... | ... | @@ -61,6 +62,7 @@ def test_shell(cli, tmpdir, datafiles): |
61 | 62 |
# Test running an executable directly
|
62 | 63 |
@pytest.mark.datafiles(DATA_DIR)
|
63 | 64 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
65 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
64 | 66 |
def test_executable(cli, tmpdir, datafiles):
|
65 | 67 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
66 | 68 |
|
... | ... | @@ -73,6 +75,7 @@ def test_executable(cli, tmpdir, datafiles): |
73 | 75 |
@pytest.mark.parametrize("animal", [("Horse"), ("Pony")])
|
74 | 76 |
@pytest.mark.datafiles(DATA_DIR)
|
75 | 77 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
78 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
76 | 79 |
def test_env_assign(cli, tmpdir, datafiles, animal):
|
77 | 80 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
78 | 81 |
expected = animal + '\n'
|
... | ... | @@ -93,6 +96,7 @@ def test_env_assign(cli, tmpdir, datafiles, animal): |
93 | 96 |
@pytest.mark.parametrize("animal", [("Horse"), ("Pony")])
|
94 | 97 |
@pytest.mark.datafiles(DATA_DIR)
|
95 | 98 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
99 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
96 | 100 |
def test_env_assign_expand_host_environ(cli, tmpdir, datafiles, animal):
|
97 | 101 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
98 | 102 |
expected = 'The animal is: {}\n'.format(animal)
|
... | ... | @@ -116,6 +120,7 @@ def test_env_assign_expand_host_environ(cli, tmpdir, datafiles, animal): |
116 | 120 |
@pytest.mark.parametrize("animal", [("Horse"), ("Pony")])
|
117 | 121 |
@pytest.mark.datafiles(DATA_DIR)
|
118 | 122 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
123 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
119 | 124 |
def test_env_assign_isolated(cli, tmpdir, datafiles, animal):
|
120 | 125 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
121 | 126 |
result = execute_shell(cli, project, ['/bin/sh', '-c', 'echo ${ANIMAL}'], isolate=True, config={
|
... | ... | @@ -134,6 +139,7 @@ def test_env_assign_isolated(cli, tmpdir, datafiles, animal): |
134 | 139 |
# /bin/sh)
|
135 | 140 |
@pytest.mark.datafiles(DATA_DIR)
|
136 | 141 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
142 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
137 | 143 |
def test_no_shell(cli, tmpdir, datafiles):
|
138 | 144 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
139 | 145 |
element_path = os.path.join(project, 'elements')
|
... | ... | @@ -167,6 +173,7 @@ def test_no_shell(cli, tmpdir, datafiles): |
167 | 173 |
@pytest.mark.parametrize("path", [("/etc/pony.conf"), ("/usr/share/pony/pony.txt")])
|
168 | 174 |
@pytest.mark.datafiles(DATA_DIR)
|
169 | 175 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
176 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
170 | 177 |
def test_host_files(cli, tmpdir, datafiles, path):
|
171 | 178 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
172 | 179 |
ponyfile = os.path.join(project, 'files', 'shell-mount', 'pony.txt')
|
... | ... | @@ -188,6 +195,7 @@ def test_host_files(cli, tmpdir, datafiles, path): |
188 | 195 |
@pytest.mark.parametrize("path", [("/etc"), ("/usr/share/pony")])
|
189 | 196 |
@pytest.mark.datafiles(DATA_DIR)
|
190 | 197 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
198 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
191 | 199 |
def test_host_files_expand_environ(cli, tmpdir, datafiles, path):
|
192 | 200 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
193 | 201 |
hostpath = os.path.join(project, 'files', 'shell-mount')
|
... | ... | @@ -234,6 +242,7 @@ def test_isolated_no_mount(cli, tmpdir, datafiles, path): |
234 | 242 |
@pytest.mark.parametrize("optional", [("mandatory"), ("optional")])
|
235 | 243 |
@pytest.mark.datafiles(DATA_DIR)
|
236 | 244 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
245 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
237 | 246 |
def test_host_files_missing(cli, tmpdir, datafiles, optional):
|
238 | 247 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
239 | 248 |
ponyfile = os.path.join(project, 'files', 'shell-mount', 'horsy.txt')
|
... | ... | @@ -270,6 +279,7 @@ def test_host_files_missing(cli, tmpdir, datafiles, optional): |
270 | 279 |
@pytest.mark.parametrize("path", [("/etc/pony.conf"), ("/usr/share/pony/pony.txt")])
|
271 | 280 |
@pytest.mark.datafiles(DATA_DIR)
|
272 | 281 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
282 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
273 | 283 |
def test_cli_mount(cli, tmpdir, datafiles, path):
|
274 | 284 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
275 | 285 |
ponyfile = os.path.join(project, 'files', 'shell-mount', 'pony.txt')
|
... | ... | @@ -283,6 +293,7 @@ def test_cli_mount(cli, tmpdir, datafiles, path): |
283 | 293 |
@pytest.mark.integration
|
284 | 294 |
@pytest.mark.datafiles(DATA_DIR)
|
285 | 295 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
296 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
286 | 297 |
def test_workspace_visible(cli, tmpdir, datafiles):
|
287 | 298 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
288 | 299 |
workspace = os.path.join(cli.directory, 'workspace')
|
... | ... | @@ -317,6 +328,7 @@ def test_workspace_visible(cli, tmpdir, datafiles): |
317 | 328 |
# Test that '--sysroot' works
|
318 | 329 |
@pytest.mark.datafiles(DATA_DIR)
|
319 | 330 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
331 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
320 | 332 |
def test_sysroot(cli, tmpdir, datafiles):
|
321 | 333 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
322 | 334 |
base_element = "base/base-alpine.bst"
|
... | ... | @@ -347,6 +359,7 @@ def test_sysroot(cli, tmpdir, datafiles): |
347 | 359 |
# Test system integration commands can access devices in /dev
|
348 | 360 |
@pytest.mark.datafiles(DATA_DIR)
|
349 | 361 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
362 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
350 | 363 |
def test_integration_devices(cli, tmpdir, datafiles):
|
351 | 364 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
352 | 365 |
element_name = 'integration.bst'
|
... | ... | @@ -360,6 +373,7 @@ def test_integration_devices(cli, tmpdir, datafiles): |
360 | 373 |
@pytest.mark.parametrize("build_shell", [("build"), ("nobuild")])
|
361 | 374 |
@pytest.mark.parametrize("guess_element", [True, False], ids=["guess", "no-guess"])
|
362 | 375 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
376 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
363 | 377 |
def test_integration_external_workspace(cli, tmpdir_factory, datafiles, build_shell, guess_element):
|
364 | 378 |
tmpdir = tmpdir_factory.mktemp("")
|
365 | 379 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
... | ... | @@ -5,7 +5,7 @@ from buildstream import _yaml |
5 | 5 |
|
6 | 6 |
from tests.testutils import cli_integration as cli
|
7 | 7 |
from tests.testutils.integration import assert_contains
|
8 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
8 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
9 | 9 |
|
10 | 10 |
|
11 | 11 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -18,6 +18,7 @@ DATA_DIR = os.path.join( |
18 | 18 |
|
19 | 19 |
@pytest.mark.datafiles(DATA_DIR)
|
20 | 20 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
21 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
21 | 22 |
def test_builddir_socket_ignored(cli, tmpdir, datafiles):
|
22 | 23 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
23 | 24 |
element_name = 'sockets/make-builddir-socket.bst'
|
... | ... | @@ -28,6 +29,7 @@ def test_builddir_socket_ignored(cli, tmpdir, datafiles): |
28 | 29 |
|
29 | 30 |
@pytest.mark.datafiles(DATA_DIR)
|
30 | 31 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
32 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
31 | 33 |
def test_install_root_socket_ignored(cli, tmpdir, datafiles):
|
32 | 34 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
33 | 35 |
element_name = 'sockets/make-install-root-socket.bst'
|
... | ... | @@ -4,7 +4,7 @@ import pytest |
4 | 4 |
from buildstream import _yaml, utils
|
5 | 5 |
from tests.testutils import create_repo, ALL_REPO_KINDS
|
6 | 6 |
from tests.testutils import cli_integration as cli
|
7 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
7 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
8 | 8 |
|
9 | 9 |
|
10 | 10 |
DATA_DIR = os.path.join(
|
... | ... | @@ -31,6 +31,7 @@ def create_test_directory(*path, mode=0o644): |
31 | 31 |
@pytest.mark.datafiles(DATA_DIR)
|
32 | 32 |
@pytest.mark.parametrize("kind", [(kind) for kind in ALL_REPO_KINDS] + ['local'])
|
33 | 33 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
34 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
34 | 35 |
def test_deterministic_source_umask(cli, tmpdir, datafiles, kind, integration_cache):
|
35 | 36 |
project = str(datafiles)
|
36 | 37 |
element_name = 'list.bst'
|
... | ... | @@ -104,6 +105,7 @@ def test_deterministic_source_umask(cli, tmpdir, datafiles, kind, integration_ca |
104 | 105 |
@pytest.mark.integration
|
105 | 106 |
@pytest.mark.datafiles(DATA_DIR)
|
106 | 107 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
108 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
107 | 109 |
def test_deterministic_source_local(cli, tmpdir, datafiles, integration_cache):
|
108 | 110 |
"""Only user rights should be considered for local source.
|
109 | 111 |
"""
|
... | ... | @@ -4,7 +4,7 @@ import pytest |
4 | 4 |
from buildstream import _yaml
|
5 | 5 |
|
6 | 6 |
from tests.testutils import cli_integration as cli
|
7 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
7 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
8 | 8 |
|
9 | 9 |
|
10 | 10 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -18,6 +18,7 @@ DATA_DIR = os.path.join( |
18 | 18 |
|
19 | 19 |
@pytest.mark.datafiles(DATA_DIR)
|
20 | 20 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
21 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
21 | 22 |
def test_stack(cli, tmpdir, datafiles):
|
22 | 23 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
23 | 24 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -6,7 +6,7 @@ from buildstream import _yaml |
6 | 6 |
|
7 | 7 |
from tests.testutils import cli_integration as cli
|
8 | 8 |
from tests.testutils.integration import assert_contains
|
9 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
9 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
10 | 10 |
|
11 | 11 |
|
12 | 12 |
pytestmark = pytest.mark.integration
|
... | ... | @@ -20,6 +20,7 @@ DATA_DIR = os.path.join( |
20 | 20 |
|
21 | 21 |
@pytest.mark.datafiles(DATA_DIR)
|
22 | 22 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
23 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
23 | 24 |
def test_absolute_symlinks_made_relative(cli, tmpdir, datafiles):
|
24 | 25 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
25 | 26 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -44,6 +45,7 @@ def test_absolute_symlinks_made_relative(cli, tmpdir, datafiles): |
44 | 45 |
|
45 | 46 |
@pytest.mark.datafiles(DATA_DIR)
|
46 | 47 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
48 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
47 | 49 |
def test_allow_overlaps_inside_symlink_with_dangling_target(cli, tmpdir, datafiles):
|
48 | 50 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
49 | 51 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -61,6 +63,7 @@ def test_allow_overlaps_inside_symlink_with_dangling_target(cli, tmpdir, datafil |
61 | 63 |
|
62 | 64 |
@pytest.mark.datafiles(DATA_DIR)
|
63 | 65 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
66 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
64 | 67 |
def test_detect_symlink_overlaps_pointing_outside_sandbox(cli, tmpdir, datafiles):
|
65 | 68 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
66 | 69 |
checkout = os.path.join(cli.directory, 'checkout')
|
... | ... | @@ -3,7 +3,7 @@ import pytest |
3 | 3 |
|
4 | 4 |
from buildstream import _yaml
|
5 | 5 |
from tests.testutils import cli_integration as cli
|
6 |
-from tests.testutils.site import HAVE_BWRAP, IS_LINUX
|
|
6 |
+from tests.testutils.site import HAVE_BWRAP, IS_LINUX, IS_WINDOWS
|
|
7 | 7 |
from tests.testutils.integration import walk_dir
|
8 | 8 |
|
9 | 9 |
|
... | ... | @@ -19,6 +19,7 @@ DATA_DIR = os.path.join( |
19 | 19 |
@pytest.mark.integration
|
20 | 20 |
@pytest.mark.datafiles(DATA_DIR)
|
21 | 21 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
22 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
22 | 23 |
def test_workspace_mount(cli, tmpdir, datafiles):
|
23 | 24 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
24 | 25 |
workspace = os.path.join(cli.directory, 'workspace')
|
... | ... | @@ -36,6 +37,7 @@ def test_workspace_mount(cli, tmpdir, datafiles): |
36 | 37 |
@pytest.mark.integration
|
37 | 38 |
@pytest.mark.datafiles(DATA_DIR)
|
38 | 39 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
40 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
39 | 41 |
def test_workspace_commanddir(cli, tmpdir, datafiles):
|
40 | 42 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
41 | 43 |
workspace = os.path.join(cli.directory, 'workspace')
|
... | ... | @@ -54,6 +56,7 @@ def test_workspace_commanddir(cli, tmpdir, datafiles): |
54 | 56 |
@pytest.mark.integration
|
55 | 57 |
@pytest.mark.datafiles(DATA_DIR)
|
56 | 58 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
59 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
57 | 60 |
def test_workspace_updated_dependency(cli, tmpdir, datafiles):
|
58 | 61 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
59 | 62 |
workspace = os.path.join(cli.directory, 'workspace')
|
... | ... | @@ -109,6 +112,7 @@ def test_workspace_updated_dependency(cli, tmpdir, datafiles): |
109 | 112 |
@pytest.mark.integration
|
110 | 113 |
@pytest.mark.datafiles(DATA_DIR)
|
111 | 114 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
115 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
112 | 116 |
def test_workspace_update_dependency_failed(cli, tmpdir, datafiles):
|
113 | 117 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
114 | 118 |
workspace = os.path.join(cli.directory, 'workspace')
|
... | ... | @@ -185,6 +189,7 @@ def test_workspace_update_dependency_failed(cli, tmpdir, datafiles): |
185 | 189 |
@pytest.mark.integration
|
186 | 190 |
@pytest.mark.datafiles(DATA_DIR)
|
187 | 191 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
192 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
188 | 193 |
def test_updated_dependency_nested(cli, tmpdir, datafiles):
|
189 | 194 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
190 | 195 |
workspace = os.path.join(cli.directory, 'workspace')
|
... | ... | @@ -239,6 +244,7 @@ def test_updated_dependency_nested(cli, tmpdir, datafiles): |
239 | 244 |
@pytest.mark.integration
|
240 | 245 |
@pytest.mark.datafiles(DATA_DIR)
|
241 | 246 |
@pytest.mark.skipif(IS_LINUX and not HAVE_BWRAP, reason='Only available with bubblewrap on Linux')
|
247 |
+@pytest.mark.skipif(IS_WINDOWS, reason='Not available on Windows')
|
|
242 | 248 |
def test_incremental_configure_commands_run_only_once(cli, tmpdir, datafiles):
|
243 | 249 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
244 | 250 |
workspace = os.path.join(cli.directory, 'workspace')
|
... | ... | @@ -4,6 +4,7 @@ import pytest |
4 | 4 |
from buildstream._exceptions import ErrorDomain
|
5 | 5 |
|
6 | 6 |
from tests.testutils import cli
|
7 |
+from tests.testutils.site import IS_WINDOWS
|
|
7 | 8 |
|
8 | 9 |
|
9 | 10 |
DATA_DIR = os.path.join(
|
... | ... | @@ -12,6 +13,7 @@ DATA_DIR = os.path.join( |
12 | 13 |
)
|
13 | 14 |
|
14 | 15 |
|
16 |
+@pytest.mark.skipif(IS_WINDOWS, reason="Sandboxes are not available on Windows")
|
|
15 | 17 |
@pytest.mark.datafiles(DATA_DIR)
|
16 | 18 |
def test_missing_command(cli, tmpdir, datafiles):
|
17 | 19 |
project = os.path.join(datafiles.dirname, datafiles.basename)
|
... | ... | @@ -56,7 +56,14 @@ def generate_file_types(path): |
56 | 56 |
yield
|
57 | 57 |
clean()
|
58 | 58 |
|
59 |
+ # Change directory because some systems (WSL, for example) are limited to
|
|
60 |
+ # ~100 characters in their path
|
|
61 |
+ old_dir = os.getcwd()
|
|
62 |
+ parent, child = os.path.split(path)
|
|
63 |
+ os.chdir(parent)
|
|
64 |
+ |
|
59 | 65 |
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
60 |
- s.bind(path)
|
|
66 |
+ s.bind(child)
|
|
67 |
+ os.chdir(old_dir)
|
|
61 | 68 |
yield
|
62 | 69 |
clean()
|
... | ... | @@ -4,6 +4,7 @@ |
4 | 4 |
import os
|
5 | 5 |
import subprocess
|
6 | 6 |
import sys
|
7 |
+import platform
|
|
7 | 8 |
|
8 | 9 |
from buildstream import _site, utils, ProgramNotFoundError
|
9 | 10 |
from buildstream._platform import Platform
|
... | ... | @@ -56,7 +57,7 @@ try: |
56 | 57 |
except ImportError:
|
57 | 58 |
HAVE_ARPY = False
|
58 | 59 |
|
59 |
-IS_LINUX = os.getenv('BST_FORCE_BACKEND', sys.platform).startswith('linux')
|
|
60 |
-IS_WINDOWS = (os.name == 'nt')
|
|
60 |
+IS_WINDOWS = ('Microsoft' in platform.uname().release)
|
|
61 |
+IS_LINUX = os.getenv('BST_FORCE_BACKEND', sys.platform).startswith('linux') and not IS_WINDOWS
|
|
61 | 62 |
|
62 | 63 |
MACHINE_ARCH = Platform.get_host_arch()
|