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:05 UTC

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

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')