X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ebcf5b5967286b2041615e8d777ac5edd7925b60..6b7673abe18e0ec5dd467abe9f6272e707417c22:/teshsuite/smpi/MBI/simgrid.py diff --git a/teshsuite/smpi/MBI/simgrid.py b/teshsuite/smpi/MBI/simgrid.py index 1dc6befee6..8e39b13756 100644 --- a/teshsuite/smpi/MBI/simgrid.py +++ b/teshsuite/smpi/MBI/simgrid.py @@ -1,4 +1,4 @@ -# Copyright 2021-2022. The MBI project. All rights reserved. +# Copyright 2021-2022. The MBI project. All rights reserved. # This program is free software; you can redistribute it and/or modify it under the terms of the license (GNU GPL). import re @@ -48,12 +48,10 @@ class Tool(AbstractTool): outfile.write(' \n') outfile.write('\n') - execcmd = re.sub("mpirun", "smpirun -wrapper simgrid-mc -platform ./cluster.xml -analyze --cfg=smpi/finalization-barrier:on --cfg=smpi/list-leaks:10 --cfg=model-check/max-depth:10000", execcmd) - if re.search("Concurrency", binary): # DPOR reduction in simgrid cannot deal with RMA calls as they contain mutexes - execcmd = re.sub("smpirun", "smpirun --cfg=model-check/reduction:none", execcmd) - execcmd = re.sub('\${EXE}', binary, execcmd) - execcmd = re.sub('\$zero_buffer', "--cfg=smpi/buffering:zero", execcmd) - execcmd = re.sub('\$infty_buffer', "--cfg=smpi/buffering:infty", execcmd) + execcmd = execcmd.replace("mpirun", "smpirun -wrapper simgrid-mc -platform ./cluster.xml -analyze --cfg=smpi/finalization-barrier:on --cfg=smpi/list-leaks:10 --cfg=model-check/max-depth:10000") + execcmd = execcmd.replace('${EXE}', binary) + execcmd = execcmd.replace('$zero_buffer', "--cfg=smpi/buffering:zero") + execcmd = execcmd.replace('$infty_buffer', "--cfg=smpi/buffering:infty") run_cmd( buildcmd=f"smpicc {filename} -trace-call-location -g -Wl,-znorelro -Wl,-znoseparate-code -o {binary}", @@ -64,13 +62,13 @@ class Tool(AbstractTool): timeout=timeout, batchinfo=batchinfo) - def teardown(self): + def teardown(self): subprocess.run("find -type f -a -executable | xargs rm -f", shell=True, check=True) # Remove generated cruft (binary files) subprocess.run("rm -f smpitmp-* core", shell=True, check=True) def parse(self, cachefile): if os.path.exists(f'{cachefile}.timeout') or os.path.exists(f'logs/simgrid/{cachefile}.timeout'): - outcome = 'timeout' + return 'timeout' if not (os.path.exists(f'{cachefile}.txt') or os.path.exists(f'logs/simgrid/{cachefile}.txt')): return 'failure' @@ -86,6 +84,9 @@ class Tool(AbstractTool): if re.search('MC is currently not supported here', output): return 'failure' + if re.search('Collective communication mismatch', output): + return 'Collective mismatch' + if re.search('DEADLOCK DETECTED', output): return 'deadlock' if re.search('returned MPI_ERR', output):