Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
teshsuite: smpi: MBI: Merge change form MBI.
[simgrid.git] / teshsuite / smpi / MBI / P2PMatchingGenerator.py
index f449148..a675d33 100755 (executable)
@@ -16,7 +16,7 @@ template = """// @{generatedby}@
 BEGIN_MPI_FEATURES
   P2P!basic: @{p2pfeature}@
   P2P!nonblocking: @{ip2pfeature}@
 BEGIN_MPI_FEATURES
   P2P!basic: @{p2pfeature}@
   P2P!nonblocking: @{ip2pfeature}@
-  P2P!persistent: @{persfeature}0@
+  P2P!persistent: @{persfeature}@
   COLL!basic: Lacking
   COLL!nonblocking: Lacking
   COLL!persistent: Lacking
   COLL!basic: Lacking
   COLL!nonblocking: Lacking
   COLL!persistent: Lacking
@@ -57,6 +57,7 @@ int main(int argc, char **argv) {
 
   @{init1}@
   @{init2}@
 
   @{init1}@
   @{init2}@
+
   if (rank == 0) {
     @{operation1}@ /* MBIERROR1 */
     @{fini1}@
   if (rank == 0) {
     @{operation1}@ /* MBIERROR1 */
     @{fini1}@
@@ -65,6 +66,9 @@ int main(int argc, char **argv) {
     @{fini2}@
   }
 
     @{fini2}@
   }
 
+  @{free1}@
+  @{free2}@
+
   MPI_Finalize();
   printf("Rank %d finished normally\\n", rank);
   return 0;
   MPI_Finalize();
   printf("Rank %d finished normally\\n", rank);
   return 0;
@@ -79,12 +83,14 @@ for p in gen.send + gen.ssend + gen.bsend + gen.recv + gen.irecv + gen.isend:
     patterns['p2pfeature'] = 'Yes' if p in gen.send + gen.bsend + gen.ssend + gen.recv else 'Lacking'
     patterns['ip2pfeature'] = 'Yes' if p in gen.isend + gen.irecv else 'Lacking'
     patterns['persfeature'] = 'Lacking'
     patterns['p2pfeature'] = 'Yes' if p in gen.send + gen.bsend + gen.ssend + gen.recv else 'Lacking'
     patterns['ip2pfeature'] = 'Yes' if p in gen.isend + gen.irecv else 'Lacking'
     patterns['persfeature'] = 'Lacking'
-    #patterns['persfeature'] = 'Yes' if p in psend + precv else 'Lacking'
+    # patterns['persfeature'] = 'Yes' if p in gen.psend + gen.precv else 'Lacking'
     patterns['p'] = p
     patterns['init1'] = gen.init[p]("1")
     patterns['init2'] = '' #gen.init[p2]("2")
     patterns['fini1'] = gen.fini[p]("1")
     patterns['fini2'] = '' #gen.fini[p2]("2")
     patterns['p'] = p
     patterns['init1'] = gen.init[p]("1")
     patterns['init2'] = '' #gen.init[p2]("2")
     patterns['fini1'] = gen.fini[p]("1")
     patterns['fini2'] = '' #gen.fini[p2]("2")
+    patterns['free1'] = gen.free[p]("1")
+    patterns['free2'] = '' #gen.free[p]("2")
     patterns['operation1'] = gen.operation[p]("1")
     patterns['operation2'] = '' #gen.operation[p2]("2")
     patterns['change_cond'] = 'rank == 1'
     patterns['operation1'] = gen.operation[p]("1")
     patterns['operation2'] = '' #gen.operation[p2]("2")
     patterns['change_cond'] = 'rank == 1'
@@ -105,6 +111,7 @@ for p in gen.send + gen.ssend + gen.bsend + gen.recv + gen.irecv + gen.isend:
     replace['errormsg'] = 'P2P mismatch. @{p}@ at @{filename}@:@{line:MBIERROR1}@ and @{p}@ at @{filename}@:@{line:MBIERROR2}@ are not matched.'
     replace['operation2'] = gen.operation[p]("1")
     replace['fini2'] = gen.fini[p]("1")
     replace['errormsg'] = 'P2P mismatch. @{p}@ at @{filename}@:@{line:MBIERROR1}@ and @{p}@ at @{filename}@:@{line:MBIERROR2}@ are not matched.'
     replace['operation2'] = gen.operation[p]("1")
     replace['fini2'] = gen.fini[p]("1")
+    #replace['free2'] = gen.free[p]("2")
     gen.make_file(template, f'CallOrdering_{p}_{p}_nok.c', replace)
 
 for s in gen.send + gen.isend + gen.ssend + gen.bsend:
     gen.make_file(template, f'CallOrdering_{p}_{p}_nok.c', replace)
 
 for s in gen.send + gen.isend + gen.ssend + gen.bsend:
@@ -114,12 +121,15 @@ for s in gen.send + gen.isend + gen.ssend + gen.bsend:
         patterns['generatedby'] = f'DO NOT EDIT: this file was generated by {os.path.basename(sys.argv[0])}. DO NOT EDIT.'
         patterns['p2pfeature'] = 'Yes' if s in gen.send or r in gen.recv else 'Lacking'
         patterns['ip2pfeature'] = 'Yes' if s in gen.isend or r in gen.irecv else 'Lacking'
         patterns['generatedby'] = f'DO NOT EDIT: this file was generated by {os.path.basename(sys.argv[0])}. DO NOT EDIT.'
         patterns['p2pfeature'] = 'Yes' if s in gen.send or r in gen.recv else 'Lacking'
         patterns['ip2pfeature'] = 'Yes' if s in gen.isend or r in gen.irecv else 'Lacking'
+        patterns['persfeature'] = 'Lacking'
         patterns['s'] = s
         patterns['r'] = r
         patterns['init1'] = gen.init[s]("1")
         patterns['init2'] = gen.init[r]("2")
         patterns['fini1'] = gen.fini[s]("1")
         patterns['fini2'] = gen.fini[r]("2")
         patterns['s'] = s
         patterns['r'] = r
         patterns['init1'] = gen.init[s]("1")
         patterns['init2'] = gen.init[r]("2")
         patterns['fini1'] = gen.fini[s]("1")
         patterns['fini2'] = gen.fini[r]("2")
+        patterns['free1'] = gen.free[s]("1")
+        patterns['free2'] = gen.free[r]("2")
         patterns['operation1'] = gen.operation[s]("1")
         patterns['operation2'] = gen.operation[r]("2")
         patterns['change_cond'] = '(rank == 1) && (its_raining)'
         patterns['operation1'] = gen.operation[s]("1")
         patterns['operation2'] = gen.operation[r]("2")
         patterns['change_cond'] = '(rank == 1) && (its_raining)'