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
This commit is contained in:
Rayyan Ansari 2022-12-18 13:59:11 +00:00
parent 66a407ff9f
commit cf61e7d58a
1 changed files with 9 additions and 1 deletions

View File

@ -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