From 41e19f703de6648c63c259bd4861b78444098879 Mon Sep 17 00:00:00 2001 From: Omar Sandoval Date: Thu, 6 Dec 2018 16:29:32 -0800 Subject: [PATCH] libbtrfsutil: fix unprivileged tests if kernel lacks support I apparently didn't test this on a pre-4.18 kernel. test_subvolume_info_unprivileged() checks for an ENOTTY, but this doesn't seem to work correctly with subTest(). test_subvolume_iterator_unprivileged() doesn't have a check at all. Add an explicit check to both before doing the actual test. Signed-off-by: Omar Sandoval Signed-off-by: David Sterba --- libbtrfsutil/python/tests/test_subvolume.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libbtrfsutil/python/tests/test_subvolume.py b/libbtrfsutil/python/tests/test_subvolume.py index 99ec97bc..b06a1d3d 100644 --- a/libbtrfsutil/python/tests/test_subvolume.py +++ b/libbtrfsutil/python/tests/test_subvolume.py @@ -168,12 +168,13 @@ class TestSubvolume(BtrfsTestCase): with drop_privs(): try: - self._test_subvolume_info(subvol, snapshot) + btrfsutil.subvolume_info(self.mountpoint) except OSError as e: if e.errno == errno.ENOTTY: self.skipTest('BTRFS_IOC_GET_SUBVOL_INFO is not available') else: raise + self._test_subvolume_info(subvol, snapshot) def test_read_only(self): for arg in self.path_or_fd(self.mountpoint): @@ -487,6 +488,13 @@ class TestSubvolume(BtrfsTestCase): try: os.chdir(self.mountpoint) with drop_privs(): + try: + list(btrfsutil.SubvolumeIterator('.')) + except OSError as e: + if e.errno == errno.ENOTTY: + self.skipTest('BTRFS_IOC_GET_SUBVOL_ROOTREF is not available') + else: + raise self._test_subvolume_iterator() finally: os.chdir(pwd)