Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
was for stateful MC, remove this
[simgrid.git] / teshsuite / smpi / MBI / simgrid.py
index 8d84521..907abc8 100644 (file)
@@ -3,9 +3,10 @@
 
 import re
 import os
-from MBIutils import *
+import subprocess
+import MBIutils as mbi
 
-class Tool(AbstractTool):
+class Tool(mbi.AbstractTool):
     def identify(self):
         return "SimGrid wrapper"
 
@@ -30,8 +31,8 @@ class Tool(AbstractTool):
         os.chdir(here)
 
 
-    def ensure_image(self):
-        AbstractTool.ensure_image(self, "-x simgrid")
+    def ensure_image(self, params=None, dockerparams=None):
+        mbi.AbstractTool.ensure_image(self, "-x simgrid")
 
     def setup(self, rootdir):
         os.environ['PATH'] = os.environ['PATH'] + ":" + rootdir + "/builds/SimGrid/bin"
@@ -48,13 +49,13 @@ class Tool(AbstractTool):
                 outfile.write(' <cluster id="acme" prefix="node-" radical="0-99" suffix="" speed="1Gf" bw="125MBps" lat="50us"/>\n')
                 outfile.write('</platform>\n')
 
-        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("mpirun", "smpirun -wrapper simgrid-mc -platform ./cluster.xml -analyze --cfg=smpi/barrier-finalization: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}",
+        mbi.run_cmd(
+            buildcmd=f"smpicc {filename} -trace-call-location -g -o {binary}",
             execcmd=execcmd,
             cachefile=cachefile,
             filename=filename,
@@ -63,7 +64,7 @@ class Tool(AbstractTool):
             batchinfo=batchinfo)
 
     def teardown(self):
-        subprocess.run("find -type f -a -executable | xargs rm -f", shell=True, check=True) # Remove generated cruft (binary files)
+        subprocess.run("find -type f -a -executable -exec 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):
@@ -75,7 +76,7 @@ class Tool(AbstractTool):
         with open(f'{cachefile}.txt' if os.path.exists(f'{cachefile}.txt') else f'logs/simgrid/{cachefile}.txt', 'r') as infile:
             output = infile.read()
 
-        if re.search('Compilation of .*? raised an error \(retcode: ', output):
+        if re.search(r'Compilation of .*? raised an error \(retcode: ', output):
             return 'UNIMPLEMENTED'
 
         if re.search('MBI_MSG_RACE', output):
@@ -100,7 +101,7 @@ class Tool(AbstractTool):
         if re.search('DFS exploration ended.', output):
             return 'OK'
 
-        print (f">>>>[ INCONCLUSIVE ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ({cachefile})")
+        print(f">>>>[ INCONCLUSIVE ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ({cachefile})")
         print(output)
-        print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
+        print("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
         return 'other'