Skip to content

Commit d4230e3

Browse files
author
Tom Seddon
committed
Add a test timeout (default 3 minutes). On macOS, output on failure.
Hopefully help narrow down where test_beeb_standard gets stuck on ARM runners.
1 parent 73e6d75 commit d4230e3

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

Makefile.osx.mak

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ github_ci_macos_homebrew_ffmpeg:
4949

5050
.PHONY:_github_ci_macos_release
5151
_github_ci_macos_release:
52-
$(PYTHON3) "./etc/release/release.py" --verbose $(TARGET_ARGS) --timestamp=$(shell $(PYTHON3) "./etc/release/release2.py" print-timestamp) --gh-release $(shell $(PYTHON3) "./etc/release/release2.py" print-suffix) --ctest-jobs=1
52+
$(PYTHON3) "./etc/release/release.py" --verbose $(TARGET_ARGS) --timestamp=$(shell $(PYTHON3) "./etc/release/release2.py" print-timestamp) --gh-release $(shell $(PYTHON3) "./etc/release/release2.py" print-suffix) --ctest-jobs=1 --ctest-output-on-failure
5353

5454
.PHONY:github_ci_macos_x64
5555
github_ci_macos_x64:

etc/release/release.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,20 @@ def gh_release(release_files,options):
156156
##########################################################################
157157
##########################################################################
158158

159+
def get_ctest_args(options):
160+
args=[]
161+
162+
args+=['-j',str(options.ctest_jobs)]
163+
164+
args+=['--timeout',str(options.ctest_timeout)]
165+
166+
if options.ctest_output_on_failure: args+=['--output-on-failure']
167+
168+
return args
169+
170+
##########################################################################
171+
##########################################################################
172+
159173
def get_win32_build_folder(options):
160174
return '%s/%s%s'%(BUILD_FOLDER,
161175
FOLDER_PREFIX,
@@ -216,9 +230,9 @@ def build_win32_config(timings,options,config,colour):
216230

217231
if not options.skip_ctest:
218232
with ChangeDirectory(folder):
219-
run([get_win32_vstool_path(r'''Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\ctest.exe''',options),
220-
"-j",str(options.ctest_jobs),
221-
"-C",config])
233+
run([get_win32_vstool_path(r'''Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\ctest.exe''',options)]+
234+
get_ctest_args(options)+
235+
["-C",config])
222236

223237
run(["cmd","/c",
224238
"color"],ignore_errors=True)
@@ -340,8 +354,7 @@ def build_darwin_config(options,
340354
'--dest-dir','./src/b2/b2.app/Contents/libs/'])
341355

342356
if not options.skip_ctest:
343-
run(["ctest",
344-
"-j",str(options.ctest_jobs)])
357+
run(["ctest"]+get_ctest_args(options))
345358

346359
def copy_darwin_app(config,mount,app_name):
347360
dest=os.path.join(mount,app_name)
@@ -445,7 +458,7 @@ def build_linux_config(options,config):
445458
if not options.skip_compile: run(['ninja'])
446459

447460
if not options.skip_ctest:
448-
run(['ctest','-j',str(options.ctest_jobs)])
461+
run(['ctest']+get_ctest_args(options))
449462

450463
def build_linux(options,ifolder,rev_hash):
451464
if not options.skip_debug: build_linux_config(options,'r')
@@ -527,7 +540,9 @@ def timestamp(x): return datetime.datetime.strptime(x,"%Y%m%d-%H%M%S")
527540
parser.add_argument("--timestamp",metavar="TIMESTAMP",dest="timestamp",default=None,type=timestamp,help="set files' atime/mtime to %(metavar)s - format must be YYYYMMDD-HHMMSS")
528541
parser.add_argument("release_name",metavar="NAME",help="name for release. Embedded into executable, and used to generate output file name")
529542
parser.add_argument('--gh-release',action='store_true',help='''create GitHub release (or prerelease if not on master git branch) and upload artefacts''')
530-
parser.add_argument('--ctest-jobs',metavar='N',default=multiprocessing.cpu_count(),type=int,help='''run %(metavar) ctest jobs at once. Default: %(default)d''')
543+
parser.add_argument('--ctest-jobs',metavar='N',default=multiprocessing.cpu_count(),type=int,help='''run %(metavar)s ctest jobs at once. Default: %(default)d''')
544+
parser.add_argument('--ctest-timeout',metavar='SECONDS',default=3*60.0,type=float,help='''test timeout in seconds. Default: %(default)f''')
545+
parser.add_argument('--ctest-output-on-failure',action='store_true',help='''output anything printed by the test program if the test fails''')
531546

532547
if sys.platform=='win32':
533548
parser.add_argument('-t','--toolchain',default='vs2022',help='''Specify toolchain: vs2019, or vs2022. Default: %(default)s''')

0 commit comments

Comments
 (0)