Salome HOME
bos #18951 [CEA 18933] MEDReader tests
[modules/paravis.git] / src / Plugins / MEDReader / plugin / Test / medreadertestlauncher.py
1 import subprocess as sp
2 import re,sys
3
4 def LaunchMEDReaderTest(fn,baseLineDir):
5     """
6     Tuleap 18933 : wrapper over MEDReader tests. Waiting for better solution.
7     """
8     p = sp.Popen(["python3",fn,"-B",baseLineDir],stdout=sp.PIPE,stderr=sp.PIPE)
9     a,b = p.communicate()
10     if p.returncode == 0:
11         return
12
13     stringToAnalyze = a.decode("utf-8")
14     linesOfStringToAnalyze = stringToAnalyze.split('\n')
15     pat = re.compile("<DartMeasurement name=\"ImageError\" type=\"numeric/double\">[\s+]([\S]+)[\s]*</DartMeasurement>")
16     zeLine = [elt for elt in linesOfStringToAnalyze if pat.match(elt)]
17     if len(zeLine) != 1:
18         raise RuntimeError("Error for test {}".format(fn))
19     delta = float(pat.match(zeLine[0]).group(1))
20     if delta > 1:
21         raise RuntimeError("Image comparison failed : {} > 1".format(delta))
22
23 def LaunchAllTests(baseLineDir):
24     from glob import glob
25     fis = glob("testMEDReader*.py")
26     for fi in fis:
27         print(fi)
28         LaunchMEDReaderTest(fi,baseLineDir)
29
30 if __name__ == "__main__":
31     LaunchMEDReaderTest(sys.argv[1],sys.argv[2])
32