Handle macOS filesystem sometimes setting lower digits to zero.

pull/8794/head
Jussi Pakkanen 4 years ago
parent 2dc8d1d626
commit cb085f3eb3
  1. 16
      test cases/common/14 configure file/check_file.py

@ -3,6 +3,16 @@
import os
import sys
def permit_osx_workaround(m1, m2):
import platform
if platform.system().lower() != 'darwin':
return False
if m2 % 10000 != 0:
return False
if m1//10000 != m2//10000:
return False
return True
if len(sys.argv) == 2:
assert(os.path.exists(sys.argv[1]))
elif len(sys.argv) == 3:
@ -12,7 +22,11 @@ elif len(sys.argv) == 3:
m2 = os.stat(f2).st_mtime_ns
# Compare only os.stat()
if m1 != m2:
raise RuntimeError(f'mtime of {f1!r} () != mtime of {m1!r} ()')
# Under macOS the lower four digits sometimes get assigned
# zero, even though shutil.copy2 should preserve metadata.
# Just have to accept it, I guess.
if not permit_osx_workaround(m1, m2):
raise RuntimeError(f'mtime of {f1!r} ({m1!r}) != mtime of {f2!r} ({m2!r})')
import filecmp
if not filecmp.cmp(f1, f2):
raise RuntimeError(f'{f1!r} != {f2!r}')

Loading…
Cancel
Save