source: XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/setup.py @ 1729

Last change on this file since 1729 was 1729, checked in by yushan, 5 years ago

GENERIC_TESTCASE : Each configuration is considered now as an independent test

File size: 5.2 KB
Line 
1import os
2import sys
3
4
5def main():
6
7
8        black = lambda text: '\033[0;30m' + text + '\033[0m'
9        red = lambda text: '\033[0;31m' + text + '\033[0m'
10        green = lambda text: '\033[0;32m' + text + '\033[0m'
11        yellow = lambda text: '\033[0;33m' + text + '\033[0m'
12        blue = lambda text: '\033[0;34m' + text + '\033[0m'
13        magenta = lambda text: '\033[0;35m' + text + '\033[0m'
14        cyan = lambda text: '\033[0;36m' + text + '\033[0m'
15        lgray = lambda text: '\033[0;37m' + text + '\033[0m'
16        dgray = lambda text: '\033[1;30m' + text + '\033[0m'
17        lred = lambda text: '\033[1;32m' + text + '\033[0m'
18        lgreen = lambda text: '\033[1;32m' + text + '\033[0m'
19        lyellow = lambda text: '\033[1;33m' + text + '\033[0m'
20        lblue = lambda text: '\033[1;34m' + text + '\033[0m'
21        lpurple = lambda text: '\033[1;35m' + text + '\033[0m'
22        lcyan = lambda text: '\033[1;36m' + text + '\033[0m'
23        white = lambda text: '\033[1;37m' + text + '\033[0m'
24
25        default_nb_config = 7
26
27        nb_config = 1;
28        configs = [0]*default_nb_config
29         
30        configs_arg = [[], [], [], [], [], [], []] 
31
32        f=open("user_params.def", "r")
33        for line in f:
34                line = line.strip()
35                if len(line) != 0:
36                        if not line.startswith("#"):
37                                nb_config = nb_config * (line.count(",")+1)
38                                line = line.replace(",", "")
39                                line = line.replace("=", "")
40                                if line.startswith("UsingServer2"):
41                                        line = line.replace("UsingServer2", "")
42                                        for word in line.split():
43                                                configs[0] += 1
44                                                configs_arg[0].append('UsingServer2 = '+word)
45                                elif line.startswith("RatioServer2"):
46                                        line = line.replace("RatioServer2", "")
47                                        for word in line.split():
48                                                configs[1] += 1
49                                                configs_arg[1].append('RatioServer2 = '+word)
50                                elif line.startswith("NumberPoolsServer2"):
51                                        line = line.replace("NumberPoolsServer2", "")
52                                        for word in line.split():
53                                                configs[2] += 1
54                                                configs_arg[2].append('NumberPoolsServer2 = '+word)
55                                elif line.startswith("NumberClients"):
56                                        line = line.replace("NumberClients", "")
57                                        for word in line.split():
58                                                configs[3] += 1
59                                                configs_arg[3].append('NumberClients = '+word)
60                                elif line.startswith("NumberServers"):
61                                        line = line.replace("NumberServers", "")
62                                        for word in line.split():
63                                                configs[4] += 1
64                                                configs_arg[4].append('NumberServers = '+word)
65                                elif line.startswith("Duration"):
66                                        line = line.replace("Duration", "")
67                                        for word in line.split():
68                                                configs[5] += 1
69                                                configs_arg[5].append('Duration = '+word)
70                                elif line.startswith("ATMdomain"):
71                                        line = line.replace("ATMdomain", "")
72                                        for word in line.split():
73                                                configs[6] += 1
74                                                configs_arg[6].append('ATMdomain = '+word)
75
76                               
77        for x in range(default_nb_config):
78                if configs[x]==0:
79                        configs[x] =1
80
81        config_id=0
82        for i0 in range(configs[0]):
83                hasContent0 = len(configs_arg[0])>0
84                for i1 in range(configs[1]):
85                        hasContent1 = len(configs_arg[1])>0
86                        for i2 in range(configs[2]):
87                                hasContent2 = len(configs_arg[2])>0
88                                for i3 in range(configs[3]):
89                                        hasContent3 = len(configs_arg[3])>0
90                                        for i4 in range(configs[4]):
91                                                hasContent4 = len(configs_arg[4])>0
92                                                for i5 in range(configs[5]):
93                                                        hasContent5 = len(configs_arg[5])>0
94                                                        for i6 in range(configs[6]):
95                                                                hasContent6 = len(configs_arg[6])>0
96
97                                                                filename = "user_param.py."+repr(config_id)
98                                                                g = open(filename, "w")
99
100                                                                if hasContent0: g.write(configs_arg[0][i0]+'\n')
101                                                                if hasContent1: g.write(configs_arg[1][i1]+'\n')
102                                                                if hasContent2: g.write(configs_arg[2][i2]+'\n')
103                                                                if hasContent3: g.write(configs_arg[3][i3]+'\n')
104                                                                if hasContent4: g.write(configs_arg[4][i4]+'\n')
105                                                                if hasContent5: g.write(configs_arg[5][i5]+'\n')
106                                                                if hasContent6: g.write(configs_arg[6][i6]+'\n')
107                                                       
108                                                                config_id +=1
109                                                                g.close
110
111
112        f=open("CMakeLists.txt", "w")
113        f.write("##############################\n")
114        f.write("# file generated by setup.py #\n")
115        f.write("#      DO NOT modify         #\n")
116        f.write("##############################\n\n")
117        f.write("cmake_minimum_required(VERSION 2.8.12.2)\n\n")
118        f.write("project(generic_testcase)\n\n")
119        f.write("find_package(PythonInterp REQUIRED)\n\n")
120        f.write("enable_testing()\n\n")
121        dirpath = os.getcwd()
122        foldername = os.path.basename(os.getcwd())
123        print(foldername)
124
125
126        for x in range(nb_config):
127                f.write("add_test( NAME "+foldername+"_config"+repr(x)+'\n')
128                f.write("          COMMAND ${PYTHON_EXECUTABLE}\n")
129                f.write("          ${CMAKE_CURRENT_BINARY_DIR}/run_test_"+repr(x)+".py\n")
130                f.write("          "+foldername+"_config"+repr(x)+")\n\n")
131
132                g=open("run_test_"+repr(x)+".py", "w")
133                g.write("##############################\n")
134                g.write("# file generated by setup.py #\n")
135                g.write("#      DO NOT modify         #\n")
136                g.write("##############################\n\n")
137                g.write("import os\n")
138                g.write("import sys\n")
139                g.write("def main():\n")
140                g.write("       os.system(\'rm -f user_param.py\')\n")
141                g.write("       os.system(\'cp user_param.py."+repr(x)+" user_param.py\')\n")
142                g.write("       os.system(\'./run_sub_test.sh\')\n")
143                g.write("if __name__== \"__main__\":\n")
144                g.write("       main()\n")
145                g.close
146                 
147        f.close
148
149        f=open("report.txt", "w")
150        g=open("report.html", "w")
151        f.write("\n\n\nin "+cyan(foldername)+" ...\n\n")
152        g.write("<br><br><br><p>in <font color=\"blue\">"+foldername+"</font> ...</p><br><br>")
153        f.close
154        g.close
155
156
157if __name__== "__main__":
158  main()
Note: See TracBrowser for help on using the repository browser.