tests: Require ninja 1.9 on CI

Also, print messages when we have to enable the timestamp resolution
workaround.
pull/5835/head
Nirbheek Chauhan 5 years ago committed by Jussi Pakkanen
parent 48f3495178
commit 35732dfaa1
  1. 28
      run_tests.py

@ -213,6 +213,8 @@ def get_backend_commands(backend, debug=False):
NINJA_1_9_OR_NEWER = True
else:
print('Found ninja <1.9, tests will run slower')
if 'CI' in os.environ:
raise RuntimeError('Require ninja >= 1.9 when running on Meson CI')
break
cmd = [ninja_cmd, '-w', 'dupbuild=err', '-d', 'explain']
if cmd[0] is None:
@ -229,16 +231,24 @@ def get_backend_commands(backend, debug=False):
def ensure_backend_detects_changes(backend):
global NINJA_1_9_OR_NEWER
# We're using ninja >= 1.9 which has QuLogic's patch for sub-1s resolution
# timestamps and not running on HFS+ which only stores dates in seconds:
# https://developer.apple.com/legacy/library/technotes/tn/tn1150.html#HFSPlusDates
# FIXME: Upgrade Travis image to Apple FS when that becomes available
if NINJA_1_9_OR_NEWER and not mesonlib.is_osx():
if backend is not Backend.ninja:
return
# This is needed to increase the difference between build.ninja's
# timestamp and the timestamp of whatever you changed due to a Ninja
# bug: https://github.com/ninja-build/ninja/issues/371
if backend is Backend.ninja:
need_workaround = False
# We're not running on HFS+ which only stores dates in seconds:
# https://developer.apple.com/legacy/library/technotes/tn/tn1150.html#HFSPlusDates
# XXX: Upgrade Travis image to Apple FS when that becomes available
# TODO: Detect HFS+ vs APFS
if mesonlib.is_osx():
print('Running on HFS+, enabling timestamp resolution workaround')
need_workaround = True
# We're using ninja >= 1.9 which has QuLogic's patch for sub-1s resolution
# timestamps
if not NINJA_1_9_OR_NEWER:
print('Don\'t have ninja >= 1.9, enabling timestamp resolution workaround')
need_workaround = True
# Increase the difference between build.ninja's timestamp and the timestamp
# of whatever you changed: https://github.com/ninja-build/ninja/issues/371
if need_workaround:
time.sleep(1)
def run_mtest_inprocess(commandlist):

Loading…
Cancel
Save