From cf61e7d58ae3b3e2fcdc7d9261a23833ac6da7a6 Mon Sep 17 00:00:00 2001 From: Rayyan Ansari Date: Sun, 18 Dec 2022 13:59:11 +0000 Subject: [PATCH] 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 --- src/borg/testsuite/archiver/transfer_cmd.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/borg/testsuite/archiver/transfer_cmd.py b/src/borg/testsuite/archiver/transfer_cmd.py index acc978101..b0a520266 100644 --- a/src/borg/testsuite/archiver/transfer_cmd.py +++ b/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