From ade405eae012629b397cdc0c88f2044ee64f9c31 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Wed, 19 Oct 2016 01:51:25 +0200 Subject: [PATCH] ignore security.selinux xattrs, fixes #1735 they fail the FUSE tests on centos7. --- borg/testsuite/__init__.py | 13 +++++++++++-- borg/testsuite/archiver.py | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/borg/testsuite/__init__.py b/borg/testsuite/__init__.py index 6b85538b4..8e09771d7 100644 --- a/borg/testsuite/__init__.py +++ b/borg/testsuite/__init__.py @@ -35,6 +35,15 @@ if sys.platform.startswith('netbsd'): setup_logging() +def no_selinux(x): + # selinux fails our FUSE tests, thus ignore selinux xattrs + SELINUX_KEY = 'security.selinux' + if isinstance(x, dict): + return {k: v for k, v in x.items() if k != SELINUX_KEY} + if isinstance(x, list): + return [k for k in x if k != SELINUX_KEY] + + class BaseTestCase(unittest.TestCase): """ """ @@ -87,8 +96,8 @@ class BaseTestCase(unittest.TestCase): else: d1.append(round(s1.st_mtime_ns, st_mtime_ns_round)) d2.append(round(s2.st_mtime_ns, st_mtime_ns_round)) - d1.append(get_all(path1, follow_symlinks=False)) - d2.append(get_all(path2, follow_symlinks=False)) + d1.append(no_selinux(get_all(path1, follow_symlinks=False))) + d2.append(no_selinux(get_all(path2, follow_symlinks=False))) self.assert_equal(d1, d2) for sub_diff in diff.subdirs.values(): self._assert_dirs_equal_cmp(sub_diff) diff --git a/borg/testsuite/archiver.py b/borg/testsuite/archiver.py index 8508639e0..4a470c2bf 100644 --- a/borg/testsuite/archiver.py +++ b/borg/testsuite/archiver.py @@ -26,7 +26,7 @@ from ..key import RepoKey, KeyfileKey, Passphrase from ..keymanager import RepoIdMismatch, NotABorgKeyFile from ..remote import RemoteRepository, PathNotAllowed from ..repository import Repository -from . import BaseTestCase, changedir, environment_variable +from . import BaseTestCase, changedir, environment_variable, no_selinux try: import llfuse @@ -1067,7 +1067,7 @@ class ArchiverTestCase(ArchiverTestCaseBase): in_fn = 'input/fusexattr' out_fn = os.path.join(mountpoint, 'input', 'fusexattr') if not xattr.XATTR_FAKEROOT and xattr.is_enabled(self.input_path): - assert xattr.listxattr(out_fn) == ['user.foo', ] + assert no_selinux(xattr.listxattr(out_fn)) == ['user.foo', ] assert xattr.getxattr(out_fn, 'user.foo') == b'bar' else: assert xattr.listxattr(out_fn) == []