X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cc309f0bc25802386a5f6d8bf2cfc487139ca1e3..5a006fa396cfcc8a91a8284f0d625b2a9a2565c9:/teshsuite/smpi/MBI/P2PMatchingGenerator.py diff --git a/teshsuite/smpi/MBI/P2PMatchingGenerator.py b/teshsuite/smpi/MBI/P2PMatchingGenerator.py index b7e7f66669..a675d335cb 100755 --- a/teshsuite/smpi/MBI/P2PMatchingGenerator.py +++ b/teshsuite/smpi/MBI/P2PMatchingGenerator.py @@ -16,7 +16,7 @@ template = """// @{generatedby}@ 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 @@ -57,6 +57,7 @@ int main(int argc, char **argv) { @{init1}@ @{init2}@ + if (rank == 0) { @{operation1}@ /* MBIERROR1 */ @{fini1}@ @@ -65,6 +66,9 @@ int main(int argc, char **argv) { @{fini2}@ } + @{free1}@ + @{free2}@ + MPI_Finalize(); printf("Rank %d finished normally\\n", rank); return 0; @@ -79,18 +83,20 @@ 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['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['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' # Generate the incorrect matching with one call - replace = patterns + replace = patterns.copy() replace['shortdesc'] = 'Point to point @{p}@ is not matched' replace['longdesc'] = 'Process 0 calls @{p}@ and is not matched' replace['outcome'] = 'ERROR: CallMatching' @@ -98,13 +104,14 @@ for p in gen.send + gen.ssend + gen.bsend + gen.recv + gen.irecv + gen.isend: gen.make_file(template, f'CallOrdering_{p}_nok.c', replace) # Generate the incorrect matching with two calls - replace = patterns + replace = patterns.copy() replace['shortdesc'] = 'Both point to point @{p}@ are not matched' replace['longdesc'] = 'Processes 0 and 1 both call @{p}@ which are not matched' replace['outcome'] = 'ERROR: CallMatching' 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: @@ -114,18 +121,21 @@ 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['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['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)' # Generate the incorrect matching because of the conditional - replace = patterns + replace = patterns.copy() replace['shortdesc'] = 'Point to point @{r}@ is never called.' replace['longdesc'] = 'Point to point @{r}@ is never executed. Process 1 calls MPI_Finalize and causes a deadlock.' replace['outcome'] = 'ERROR: CallMatching'