You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ro...@apache.org on 2020/12/29 13:41:04 UTC

[buildstream] branch no_fuse_flag created (now 1ac64da)

This is an automated email from the ASF dual-hosted git repository.

root pushed a change to branch no_fuse_flag
in repository https://gitbox.apache.org/repos/asf/buildstream.git.


      at 1ac64da  Added NO_FUSE flag to tests that need fuse

This branch includes the following new commits:

     new 1ac64da  Added NO_FUSE flag to tests that need fuse

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[buildstream] 01/01: Added NO_FUSE flag to tests that need fuse

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

root pushed a commit to branch no_fuse_flag
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit 1ac64da2f604b4330e818043d829e8791f1e5dba
Author: Phillip Smyth <ph...@codethink.co.uk>
AuthorDate: Mon Aug 20 13:58:00 2018 +0100

    Added NO_FUSE flag to tests that need fuse
---
 tests/artifactcache/expiry.py              | 7 +++++++
 tests/artifactcache/junctions.py           | 2 ++
 tests/examples/autotools.py                | 4 +++-
 tests/examples/developing.py               | 3 ++-
 tests/examples/first-project.py            | 4 ++--
 tests/examples/flatpak-autotools.py        | 3 ++-
 tests/examples/integration-commands.py     | 5 +++--
 tests/examples/junctions.py                | 3 ++-
 tests/examples/running-commands.py         | 5 +++--
 tests/format/assertion.py                  | 3 +++
 tests/format/include.py                    | 3 +++
 tests/format/listdirectiveerrors.py        | 3 +++
 tests/format/optionarch.py                 | 3 +++
 tests/format/optionbool.py                 | 3 +++
 tests/format/optioneltmask.py              | 3 +++
 tests/format/optionenum.py                 | 3 +++
 tests/format/optionexports.py              | 3 +++
 tests/format/optionflags.py                | 3 +++
 tests/format/options.py                    | 3 +++
 tests/format/project.py                    | 3 +++
 tests/format/projectoverrides.py           | 3 +++
 tests/format/variables.py                  | 3 +++
 tests/frontend/buildcheckout.py            | 2 ++
 tests/frontend/buildtrack.py               | 2 ++
 tests/frontend/compose_splits.py           | 3 +++
 tests/frontend/cross_junction_workspace.py | 4 ++++
 tests/frontend/fetch.py                    | 3 +++
 tests/frontend/logging.py                  | 3 +++
 tests/frontend/mirror.py                   | 3 +++
 tests/frontend/overlaps.py                 | 3 +++
 tests/frontend/pull.py                     | 2 ++
 tests/frontend/push.py                     | 3 +++
 tests/frontend/show.py                     | 3 +++
 tests/frontend/track.py                    | 2 ++
 tests/frontend/track_cross_junction.py     | 3 +++
 tests/frontend/workspace.py                | 2 ++
 tests/integration/autotools.py             | 4 +++-
 tests/integration/build-uid.py             | 4 ++--
 tests/integration/cachedfail.py            | 5 ++---
 tests/integration/cmake.py                 | 4 ++--
 tests/integration/compose-symlinks.py      | 4 ++--
 tests/integration/compose.py               | 4 ++--
 tests/integration/import.py                | 4 ++--
 tests/integration/make.py                  | 4 ++--
 tests/integration/manual.py                | 3 ++-
 tests/integration/pip.py                   | 4 ++--
 tests/integration/sandbox-bwrap.py         | 3 ++-
 tests/integration/script.py                | 4 ++--
 tests/integration/shell.py                 | 3 ++-
 tests/integration/source-determinism.py    | 3 +++
 tests/integration/stack.py                 | 3 ++-
 tests/integration/symlinks.py              | 3 ++-
 tests/integration/workspace.py             | 4 ++--
 tests/loader/junctions.py                  | 3 +++
 tests/pipeline/load.py                     | 3 +++
 tests/pipeline/preflight.py                | 3 +++
 tests/plugins/filter.py                    | 3 +++
 tests/sandboxes/missing-command.py         | 3 +++
 tests/sources/git.py                       | 4 +++-
 tests/sources/local.py                     | 2 ++
 tests/sources/patch.py                     | 2 ++
 tests/sources/remote.py                    | 2 ++
 tests/sources/tar.py                       | 3 ++-
 tests/sources/zip.py                       | 3 +++
 tests/testutils/site.py                    | 1 +
 65 files changed, 169 insertions(+), 39 deletions(-)

diff --git a/tests/artifactcache/expiry.py b/tests/artifactcache/expiry.py
index 9c74eb1..1b1f673 100644
--- a/tests/artifactcache/expiry.py
+++ b/tests/artifactcache/expiry.py
@@ -6,6 +6,7 @@ from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 
 from tests.testutils import cli, create_element_size
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 
 DATA_DIR = os.path.join(
@@ -16,6 +17,7 @@ DATA_DIR = os.path.join(
 
 # Ensure that the cache successfully removes an old artifact if we do
 # not have enough space left.
+@pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 @pytest.mark.datafiles(DATA_DIR)
 def test_artifact_expires(cli, datafiles, tmpdir):
     project = os.path.join(datafiles.dirname, datafiles.basename)
@@ -52,6 +54,7 @@ def test_artifact_expires(cli, datafiles, tmpdir):
 
 # Ensure that we don't end up deleting the whole cache (or worse) if
 # we try to store an artifact that is too large to fit in the quota.
+@pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 @pytest.mark.parametrize('size', [
     # Test an artifact that is obviously too large
     (500000),
@@ -76,6 +79,7 @@ def test_artifact_too_large(cli, datafiles, tmpdir, size):
     res.assert_main_error(ErrorDomain.STREAM, None)
 
 
+@pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 @pytest.mark.datafiles(DATA_DIR)
 def test_expiry_order(cli, datafiles, tmpdir):
     project = os.path.join(datafiles.dirname, datafiles.basename)
@@ -130,6 +134,7 @@ def test_expiry_order(cli, datafiles, tmpdir):
 # Ensure that we don't accidentally remove an artifact from something
 # in the current build pipeline, because that would be embarassing,
 # wouldn't it?
+@pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 @pytest.mark.datafiles(DATA_DIR)
 def test_keep_dependencies(cli, datafiles, tmpdir):
     project = os.path.join(datafiles.dirname, datafiles.basename)
@@ -175,6 +180,7 @@ def test_keep_dependencies(cli, datafiles, tmpdir):
 
 
 # Assert that we never delete a dependency required for a build tree
+@pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 @pytest.mark.datafiles(DATA_DIR)
 def test_never_delete_dependencies(cli, datafiles, tmpdir):
     project = os.path.join(datafiles.dirname, datafiles.basename)
@@ -221,6 +227,7 @@ def test_never_delete_dependencies(cli, datafiles, tmpdir):
 
 # Ensure that only valid cache quotas make it through the loading
 # process.
+@pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 @pytest.mark.parametrize("quota,success", [
     ("1", True),
     ("1K", True),
diff --git a/tests/artifactcache/junctions.py b/tests/artifactcache/junctions.py
index 378d007..1a942b9 100644
--- a/tests/artifactcache/junctions.py
+++ b/tests/artifactcache/junctions.py
@@ -2,6 +2,7 @@ import os
 import shutil
 import pytest
 from tests.testutils import cli, create_artifact_share
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 from buildstream import _yaml
 
@@ -36,6 +37,7 @@ def project_set_artifacts(project, url):
     _yaml.dump(_yaml.node_sanitize(project_config), filename=project_conf_file)
 
 
+@pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 @pytest.mark.datafiles(DATA_DIR)
 def test_push_pull(cli, tmpdir, datafiles):
     project = os.path.join(str(datafiles), 'foo')
diff --git a/tests/examples/autotools.py b/tests/examples/autotools.py
index c774776..2ecdc69 100644
--- a/tests/examples/autotools.py
+++ b/tests/examples/autotools.py
@@ -3,9 +3,11 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-from tests.testutils.site import IS_LINUX
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)), '..', '..', 'doc', 'examples', 'autotools'
diff --git a/tests/examples/developing.py b/tests/examples/developing.py
index 4c488d9..d73379d 100644
--- a/tests/examples/developing.py
+++ b/tests/examples/developing.py
@@ -4,9 +4,10 @@ import pytest
 import tests.testutils.patch as patch
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-from tests.testutils.site import IS_LINUX
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)), '..', '..', 'doc', 'examples', 'developing'
diff --git a/tests/examples/first-project.py b/tests/examples/first-project.py
index dac1814..33d5155 100644
--- a/tests/examples/first-project.py
+++ b/tests/examples/first-project.py
@@ -3,10 +3,10 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-from tests.testutils.site import IS_LINUX
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/examples/flatpak-autotools.py b/tests/examples/flatpak-autotools.py
index 3965725..cc5a783 100644
--- a/tests/examples/flatpak-autotools.py
+++ b/tests/examples/flatpak-autotools.py
@@ -3,10 +3,11 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-from tests.testutils.site import IS_LINUX
 
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/examples/integration-commands.py b/tests/examples/integration-commands.py
index 32ef763..626f2e7 100644
--- a/tests/examples/integration-commands.py
+++ b/tests/examples/integration-commands.py
@@ -3,10 +3,11 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-from tests.testutils.site import IS_LINUX
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)), '..', '..', 'doc', 'examples', 'integration-commands'
 )
diff --git a/tests/examples/junctions.py b/tests/examples/junctions.py
index d2a6538..af708df 100644
--- a/tests/examples/junctions.py
+++ b/tests/examples/junctions.py
@@ -3,9 +3,10 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-from tests.testutils.site import IS_LINUX
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)), '..', '..', 'doc', 'examples', 'junctions'
diff --git a/tests/examples/running-commands.py b/tests/examples/running-commands.py
index 95f645d..6839814 100644
--- a/tests/examples/running-commands.py
+++ b/tests/examples/running-commands.py
@@ -3,10 +3,11 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-from tests.testutils.site import IS_LINUX
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)), '..', '..', 'doc', 'examples', 'running-commands'
 )
diff --git a/tests/format/assertion.py b/tests/format/assertion.py
index 42f69b7..64eef1e 100644
--- a/tests/format/assertion.py
+++ b/tests/format/assertion.py
@@ -2,6 +2,9 @@ import os
 import pytest
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.join(
diff --git a/tests/format/include.py b/tests/format/include.py
index 36e723e..0c01e6a 100644
--- a/tests/format/include.py
+++ b/tests/format/include.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils import cli, generate_junction, create_repo
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 # Project directory
diff --git a/tests/format/listdirectiveerrors.py b/tests/format/listdirectiveerrors.py
index 4a2de86..8690932 100644
--- a/tests/format/listdirectiveerrors.py
+++ b/tests/format/listdirectiveerrors.py
@@ -2,6 +2,9 @@ import os
 import pytest
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
diff --git a/tests/format/optionarch.py b/tests/format/optionarch.py
index 4c126aa..f2a5df6 100644
--- a/tests/format/optionarch.py
+++ b/tests/format/optionarch.py
@@ -4,6 +4,9 @@ from contextlib import contextmanager
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
diff --git a/tests/format/optionbool.py b/tests/format/optionbool.py
index f02f0ee..18eb787 100644
--- a/tests/format/optionbool.py
+++ b/tests/format/optionbool.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
diff --git a/tests/format/optioneltmask.py b/tests/format/optioneltmask.py
index b49eee8..271902e 100644
--- a/tests/format/optioneltmask.py
+++ b/tests/format/optioneltmask.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
diff --git a/tests/format/optionenum.py b/tests/format/optionenum.py
index 6990ad9..b63fba1 100644
--- a/tests/format/optionenum.py
+++ b/tests/format/optionenum.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
diff --git a/tests/format/optionexports.py b/tests/format/optionexports.py
index 26eadc6..43ed1d7 100644
--- a/tests/format/optionexports.py
+++ b/tests/format/optionexports.py
@@ -2,6 +2,9 @@ import os
 import pytest
 from buildstream import _yaml
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
diff --git a/tests/format/optionflags.py b/tests/format/optionflags.py
index 3585f5e..82f974d 100644
--- a/tests/format/optionflags.py
+++ b/tests/format/optionflags.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
diff --git a/tests/format/options.py b/tests/format/options.py
index 2076106..88a14b3 100644
--- a/tests/format/options.py
+++ b/tests/format/options.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.join(
diff --git a/tests/format/project.py b/tests/format/project.py
index df1a236..aa9404c 100644
--- a/tests/format/project.py
+++ b/tests/format/project.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils import cli, filetypegenerator
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 # Project directory
diff --git a/tests/format/projectoverrides.py b/tests/format/projectoverrides.py
index d63b0a2..8e5a148 100644
--- a/tests/format/projectoverrides.py
+++ b/tests/format/projectoverrides.py
@@ -3,6 +3,9 @@ import os
 import pytest
 from buildstream import _yaml
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.join(
diff --git a/tests/format/variables.py b/tests/format/variables.py
index d570bf0..cbcab11 100644
--- a/tests/format/variables.py
+++ b/tests/format/variables.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 # Project directory
diff --git a/tests/frontend/buildcheckout.py b/tests/frontend/buildcheckout.py
index d0f52d6..cdb2738 100644
--- a/tests/frontend/buildcheckout.py
+++ b/tests/frontend/buildcheckout.py
@@ -3,12 +3,14 @@ import tarfile
 import hashlib
 import pytest
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS, generate_junction
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 
 from . import configure_project
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/buildtrack.py b/tests/frontend/buildtrack.py
index 3f0a3ad..72b77f0 100644
--- a/tests/frontend/buildtrack.py
+++ b/tests/frontend/buildtrack.py
@@ -5,12 +5,14 @@ import itertools
 
 import pytest
 from tests.testutils import cli, create_repo
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain
 
 from . import configure_project
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/compose_splits.py b/tests/frontend/compose_splits.py
index b5a2e76..f2a017c 100644
--- a/tests/frontend/compose_splits.py
+++ b/tests/frontend/compose_splits.py
@@ -1,6 +1,9 @@
 import os
 import pytest
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.join(
diff --git a/tests/frontend/cross_junction_workspace.py b/tests/frontend/cross_junction_workspace.py
index eb2bc2e..35310d4 100644
--- a/tests/frontend/cross_junction_workspace.py
+++ b/tests/frontend/cross_junction_workspace.py
@@ -1,7 +1,11 @@
 import os
+import pytest
 from tests.testutils import cli, create_repo
+from tests.testutils.site import IS_LINUX, NO_FUSE
 from buildstream import _yaml
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 
 def prepare_junction_project(cli, tmpdir):
     main_project = tmpdir.join("main")
diff --git a/tests/frontend/fetch.py b/tests/frontend/fetch.py
index e896f4a..2ebc829 100644
--- a/tests/frontend/fetch.py
+++ b/tests/frontend/fetch.py
@@ -1,12 +1,15 @@
 import os
 import pytest
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS, generate_junction
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 
 from . import configure_project
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 # Project directory
 TOP_DIR = os.path.dirname(os.path.realpath(__file__))
 DATA_DIR = os.path.join(TOP_DIR, 'project')
diff --git a/tests/frontend/logging.py b/tests/frontend/logging.py
index 4c70895..9c1c45f 100644
--- a/tests/frontend/logging.py
+++ b/tests/frontend/logging.py
@@ -2,10 +2,13 @@ import os
 import pytest
 import re
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/mirror.py b/tests/frontend/mirror.py
index f37cc18..ea20094 100644
--- a/tests/frontend/mirror.py
+++ b/tests/frontend/mirror.py
@@ -2,10 +2,13 @@ import os
 import pytest
 
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS, generate_junction
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 # Project directory
 TOP_DIR = os.path.dirname(os.path.realpath(__file__))
 DATA_DIR = os.path.join(TOP_DIR, 'project')
diff --git a/tests/frontend/overlaps.py b/tests/frontend/overlaps.py
index 36e15ac..6a88017 100644
--- a/tests/frontend/overlaps.py
+++ b/tests/frontend/overlaps.py
@@ -1,9 +1,12 @@
 import os
 import pytest
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
 from buildstream._exceptions import ErrorDomain
 from buildstream import _yaml
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/pull.py b/tests/frontend/pull.py
index 9d2d5d1..c00e9a2 100644
--- a/tests/frontend/pull.py
+++ b/tests/frontend/pull.py
@@ -2,7 +2,9 @@ import os
 import shutil
 import pytest
 from tests.testutils import cli, create_artifact_share, generate_junction
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 # Project directory
 DATA_DIR = os.path.join(
diff --git a/tests/frontend/push.py b/tests/frontend/push.py
index 6ee301e..782133b 100644
--- a/tests/frontend/push.py
+++ b/tests/frontend/push.py
@@ -4,9 +4,12 @@ import pytest
 from buildstream._exceptions import ErrorDomain
 from tests.testutils import cli, create_artifact_share, create_element_size
 from tests.testutils import generate_junction
+from tests.testutils.site import IS_LINUX, NO_FUSE
 from . import configure_project
 
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/show.py b/tests/frontend/show.py
index ac2e714..4f00380 100644
--- a/tests/frontend/show.py
+++ b/tests/frontend/show.py
@@ -4,11 +4,14 @@ import shutil
 import itertools
 import pytest
 from tests.testutils import cli, generate_junction
+from tests.testutils.site import IS_LINUX, NO_FUSE
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 
 from . import configure_project
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/track.py b/tests/frontend/track.py
index 73b63ec..f619c2e 100644
--- a/tests/frontend/track.py
+++ b/tests/frontend/track.py
@@ -1,12 +1,14 @@
 import os
 import pytest
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS, generate_junction
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from buildstream import _yaml
 
 from . import configure_project
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 # Project directory
 TOP_DIR = os.path.dirname(os.path.realpath(__file__))
 DATA_DIR = os.path.join(TOP_DIR, 'project')
diff --git a/tests/frontend/track_cross_junction.py b/tests/frontend/track_cross_junction.py
index 423edbd..5559b7c 100644
--- a/tests/frontend/track_cross_junction.py
+++ b/tests/frontend/track_cross_junction.py
@@ -1,8 +1,11 @@
 import os
 import pytest
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS, generate_junction
+from tests.testutils.site import IS_LINUX, NO_FUSE
 from buildstream import _yaml
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 
 def generate_element(repo, element_path, dep_name=None):
     element = {
diff --git a/tests/frontend/workspace.py b/tests/frontend/workspace.py
index fff9bf0..6115b6f 100644
--- a/tests/frontend/workspace.py
+++ b/tests/frontend/workspace.py
@@ -4,11 +4,13 @@ import shutil
 import subprocess
 from ruamel.yaml.comments import CommentedSet
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain, LoadError, LoadErrorReason
 from buildstream._workspaces import BST_WORKSPACE_FORMAT_VERSION
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 repo_kinds = [(kind) for kind in ALL_REPO_KINDS]
 
 # Project directory
diff --git a/tests/integration/autotools.py b/tests/integration/autotools.py
index 0c9ac6c..31dfba5 100644
--- a/tests/integration/autotools.py
+++ b/tests/integration/autotools.py
@@ -3,10 +3,12 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/build-uid.py b/tests/integration/build-uid.py
index 6894304..3782ccc 100644
--- a/tests/integration/build-uid.py
+++ b/tests/integration/build-uid.py
@@ -5,10 +5,10 @@ from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-from tests.testutils.site import IS_LINUX
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/cachedfail.py b/tests/integration/cachedfail.py
index f4cabb3..0938229 100644
--- a/tests/integration/cachedfail.py
+++ b/tests/integration/cachedfail.py
@@ -5,11 +5,10 @@ from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain
 
 from tests.testutils import cli_integration as cli, create_artifact_share
-from tests.testutils.site import IS_LINUX
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
-
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/cmake.py b/tests/integration/cmake.py
index 8f017e7..e6b9095 100644
--- a/tests/integration/cmake.py
+++ b/tests/integration/cmake.py
@@ -3,10 +3,10 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
-
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/compose-symlinks.py b/tests/integration/compose-symlinks.py
index bf279fa..e6eb0c1 100644
--- a/tests/integration/compose-symlinks.py
+++ b/tests/integration/compose-symlinks.py
@@ -7,10 +7,10 @@ from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import walk_dir
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
-
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/compose.py b/tests/integration/compose.py
index 00c80d5..488cbbe 100644
--- a/tests/integration/compose.py
+++ b/tests/integration/compose.py
@@ -7,10 +7,10 @@ from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import walk_dir
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
-
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/import.py b/tests/integration/import.py
index 6925a0a..b3a31fe 100644
--- a/tests/integration/import.py
+++ b/tests/integration/import.py
@@ -5,10 +5,10 @@ from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import walk_dir
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
-
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/make.py b/tests/integration/make.py
index 6928cfd..18323f4 100644
--- a/tests/integration/make.py
+++ b/tests/integration/make.py
@@ -3,10 +3,10 @@ import pytest
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
-
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/manual.py b/tests/integration/manual.py
index e71ccdd..d3acf7d 100644
--- a/tests/integration/manual.py
+++ b/tests/integration/manual.py
@@ -4,9 +4,10 @@ import pytest
 from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/integration/pip.py b/tests/integration/pip.py
index 6c6de8b..c8c9e45 100644
--- a/tests/integration/pip.py
+++ b/tests/integration/pip.py
@@ -6,10 +6,10 @@ from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
-
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/sandbox-bwrap.py b/tests/integration/sandbox-bwrap.py
index 7d2a184..01c8dd6 100644
--- a/tests/integration/sandbox-bwrap.py
+++ b/tests/integration/sandbox-bwrap.py
@@ -4,9 +4,10 @@ import pytest
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
 from tests.testutils.site import HAVE_BWRAP
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/integration/script.py b/tests/integration/script.py
index 88226c0..3b9d80c 100644
--- a/tests/integration/script.py
+++ b/tests/integration/script.py
@@ -4,10 +4,10 @@ import pytest
 from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
-
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/integration/shell.py b/tests/integration/shell.py
index 18953aa..f2df885 100644
--- a/tests/integration/shell.py
+++ b/tests/integration/shell.py
@@ -5,9 +5,10 @@ from buildstream import _yaml
 from buildstream._exceptions import ErrorDomain
 
 from tests.testutils import cli_integration as cli
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/integration/source-determinism.py b/tests/integration/source-determinism.py
index b60bc25..1bf445b 100644
--- a/tests/integration/source-determinism.py
+++ b/tests/integration/source-determinism.py
@@ -3,6 +3,9 @@ import pytest
 
 from buildstream import _yaml, utils
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/integration/stack.py b/tests/integration/stack.py
index 9444fbb..fa75c1a 100644
--- a/tests/integration/stack.py
+++ b/tests/integration/stack.py
@@ -4,9 +4,10 @@ import pytest
 from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/integration/symlinks.py b/tests/integration/symlinks.py
index 18bd724..f301c13 100644
--- a/tests/integration/symlinks.py
+++ b/tests/integration/symlinks.py
@@ -6,9 +6,10 @@ from buildstream import _yaml
 
 from tests.testutils import cli_integration as cli
 from tests.testutils.integration import assert_contains
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/integration/workspace.py b/tests/integration/workspace.py
index 102d053..28b6f92 100644
--- a/tests/integration/workspace.py
+++ b/tests/integration/workspace.py
@@ -3,11 +3,11 @@ import pytest
 
 from buildstream import _yaml
 from tests.testutils import cli_integration as cli
-from tests.testutils.site import IS_LINUX
 from tests.testutils.integration import walk_dir
-
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 pytestmark = pytest.mark.integration
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/loader/junctions.py b/tests/loader/junctions.py
index a02961f..2d527f9 100644
--- a/tests/loader/junctions.py
+++ b/tests/loader/junctions.py
@@ -6,6 +6,9 @@ from buildstream import _yaml, ElementError
 from buildstream._exceptions import LoadError, LoadErrorReason
 from tests.testutils import cli, create_repo
 from tests.testutils.site import HAVE_GIT
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/pipeline/load.py b/tests/pipeline/load.py
index 29ceb6d..178e827 100644
--- a/tests/pipeline/load.py
+++ b/tests/pipeline/load.py
@@ -3,6 +3,9 @@ import pytest
 from buildstream._exceptions import ErrorDomain
 from buildstream import _yaml
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/pipeline/preflight.py b/tests/pipeline/preflight.py
index 4692d09..229a688 100644
--- a/tests/pipeline/preflight.py
+++ b/tests/pipeline/preflight.py
@@ -3,6 +3,9 @@ import pytest
 
 from buildstream._exceptions import ErrorDomain
 from tests.testutils.runcli import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/plugins/filter.py b/tests/plugins/filter.py
index 4a5ff34..4750cfe 100644
--- a/tests/plugins/filter.py
+++ b/tests/plugins/filter.py
@@ -4,6 +4,9 @@ import shutil
 from tests.testutils import cli, create_repo, ALL_REPO_KINDS
 from buildstream._exceptions import ErrorDomain
 from buildstream import _yaml
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/sandboxes/missing-command.py b/tests/sandboxes/missing-command.py
index 8f210bc..cc06308 100644
--- a/tests/sandboxes/missing-command.py
+++ b/tests/sandboxes/missing-command.py
@@ -4,6 +4,9 @@ import pytest
 from buildstream._exceptions import ErrorDomain
 
 from tests.testutils import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
+
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 DATA_DIR = os.path.join(
diff --git a/tests/sources/git.py b/tests/sources/git.py
index ef18e3c..f3d4d04 100644
--- a/tests/sources/git.py
+++ b/tests/sources/git.py
@@ -5,13 +5,15 @@ from buildstream._exceptions import ErrorDomain
 from buildstream import _yaml
 
 from tests.testutils import cli, create_repo
-from tests.testutils.site import HAVE_GIT
+from tests.testutils.site import HAVE_GIT, IS_LINUX, NO_FUSE
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     'git',
 )
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 
 @pytest.mark.skipif(HAVE_GIT is False, reason="git is not available")
 @pytest.mark.datafiles(os.path.join(DATA_DIR, 'template'))
diff --git a/tests/sources/local.py b/tests/sources/local.py
index de12473..3b96a07 100644
--- a/tests/sources/local.py
+++ b/tests/sources/local.py
@@ -3,11 +3,13 @@ import pytest
 
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils import cli, filetypegenerator
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     'local',
 )
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 @pytest.mark.datafiles(os.path.join(DATA_DIR, 'basic'))
diff --git a/tests/sources/patch.py b/tests/sources/patch.py
index 39d4336..f58f252 100644
--- a/tests/sources/patch.py
+++ b/tests/sources/patch.py
@@ -3,11 +3,13 @@ import pytest
 
 from buildstream._exceptions import ErrorDomain, LoadErrorReason
 from tests.testutils import cli, filetypegenerator
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     'patch',
 )
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 @pytest.mark.datafiles(os.path.join(DATA_DIR, 'basic'))
diff --git a/tests/sources/remote.py b/tests/sources/remote.py
index d396839..d8b7301 100644
--- a/tests/sources/remote.py
+++ b/tests/sources/remote.py
@@ -5,11 +5,13 @@ import pytest
 from buildstream._exceptions import ErrorDomain
 from buildstream import _yaml
 from tests.testutils import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     'remote',
 )
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 def generate_project(project_dir, tmpdir):
diff --git a/tests/sources/tar.py b/tests/sources/tar.py
index fb02de3..b6dbe39 100644
--- a/tests/sources/tar.py
+++ b/tests/sources/tar.py
@@ -7,13 +7,14 @@ import subprocess
 from buildstream._exceptions import ErrorDomain
 from buildstream import _yaml
 from tests.testutils import cli
-from tests.testutils.site import HAVE_LZIP
+from tests.testutils.site import HAVE_LZIP, IS_LINUX, NO_FUSE
 from . import list_dir_contents
 
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     'tar',
 )
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
 
 
 def _assemble_tar(workingdir, srcdir, dstfile):
diff --git a/tests/sources/zip.py b/tests/sources/zip.py
index a168d52..b62ca12 100644
--- a/tests/sources/zip.py
+++ b/tests/sources/zip.py
@@ -5,6 +5,7 @@ import zipfile
 from buildstream._exceptions import ErrorDomain
 from buildstream import _yaml
 from tests.testutils import cli
+from tests.testutils.site import IS_LINUX, NO_FUSE
 from . import list_dir_contents
 
 DATA_DIR = os.path.join(
@@ -12,6 +13,8 @@ DATA_DIR = os.path.join(
     'zip',
 )
 
+pytestmark = pytest.mark.skipif(IS_LINUX and NO_FUSE, reason='FUSE not supported on this system')
+
 
 def _assemble_zip(workingdir, dstfile):
     old_dir = os.getcwd()
diff --git a/tests/testutils/site.py b/tests/testutils/site.py
index 7dc01a6..7fe44c4 100644
--- a/tests/testutils/site.py
+++ b/tests/testutils/site.py
@@ -49,3 +49,4 @@ except ImportError:
     HAVE_ARPY = False
 
 IS_LINUX = os.getenv('BST_FORCE_BACKEND', sys.platform).startswith('linux')
+NO_FUSE = not os.path.exists('/dev/fuse')