Browse Source

testsuite: archiver: skip block device in test_transfer_upgrade

On MINGW, the S_IFBLK macro is incorrectly set as 0x3000 instead of 0x6000.
https://github.com/mingw-w64/mingw-w64/blob/v10.0.0/mingw-w64-headers/crt/sys/stat.h#L133
Rayyan Ansari 2 năm trước cách đây
mục cha
commit
cf61e7d58a
1 tập tin đã thay đổi với 9 bổ sung1 xóa
  1. 9 1
      src/borg/testsuite/archiver/transfer_cmd.py

+ 9 - 1
src/borg/testsuite/archiver/transfer_cmd.py

@@ -7,6 +7,7 @@ import unittest
 
 from ...constants import *  # NOQA
 from ...helpers.time import parse_timestamp
+from ..platform import is_win32
 from . import ArchiverTestCaseBase, RemoteArchiverTestCaseBase, ArchiverTestCaseBinaryBase, RK_ENCRYPTION, BORG_EXES
 
 
@@ -151,6 +152,11 @@ class ArchiverTestCase(ArchiverTestCaseBase):
                     # Note: size == 0 for all items without a size or chunks list (like e.g. directories)
                     # Note: healthy == True indicates the *absence* of the additional chunks_healthy list
                 del g["hlid"]
+
+                if e["type"] == "b" and is_win32:
+                    # The S_IFBLK macro is broken on MINGW
+                    del e["type"], g["type"]
+                    del e["mode"], g["mode"]
                 assert g == e
 
             if name == "archive1":
@@ -250,7 +256,9 @@ class ArchiverTestCase(ArchiverTestCaseBase):
                         assert item.group in ("root", "wheel")
                         assert "hlid" not in item
                     elif item.path.endswith("bdev_12_34"):
-                        assert stat.S_ISBLK(item.mode)
+                        if not is_win32:
+                            # The S_IFBLK macro is broken on MINGW
+                            assert stat.S_ISBLK(item.mode)
                         # looks like we can't use os.major/minor with data coming from another platform,
                         # thus we only do a rather rough check here:
                         assert "rdev" in item and item.rdev != 0