1 | import os |
---|
2 | import sys |
---|
3 | |
---|
4 | |
---|
5 | def main(): |
---|
6 | |
---|
7 | black = lambda text: '\033[0;30m' + text + '\033[0m' |
---|
8 | red = lambda text: '\033[0;31m' + text + '\033[0m' |
---|
9 | green = lambda text: '\033[0;32m' + text + '\033[0m' |
---|
10 | yellow = lambda text: '\033[0;33m' + text + '\033[0m' |
---|
11 | blue = lambda text: '\033[0;34m' + text + '\033[0m' |
---|
12 | magenta = lambda text: '\033[0;35m' + text + '\033[0m' |
---|
13 | cyan = lambda text: '\033[0;36m' + text + '\033[0m' |
---|
14 | lgray = lambda text: '\033[0;37m' + text + '\033[0m' |
---|
15 | dgray = lambda text: '\033[1;30m' + text + '\033[0m' |
---|
16 | lred = lambda text: '\033[1;32m' + text + '\033[0m' |
---|
17 | lgreen = lambda text: '\033[1;32m' + text + '\033[0m' |
---|
18 | lyellow = lambda text: '\033[1;33m' + text + '\033[0m' |
---|
19 | lblue = lambda text: '\033[1;34m' + text + '\033[0m' |
---|
20 | lpurple = lambda text: '\033[1;35m' + text + '\033[0m' |
---|
21 | lcyan = lambda text: '\033[1;36m' + text + '\033[0m' |
---|
22 | white = lambda text: '\033[1;37m' + text + '\033[0m' |
---|
23 | |
---|
24 | default_nb_config = 7 |
---|
25 | |
---|
26 | nb_config = 1; |
---|
27 | configs = [0]*default_nb_config |
---|
28 | |
---|
29 | configs_arg = [[], [], [], [], [], [], []] |
---|
30 | |
---|
31 | f=open("user_params.def", "r") |
---|
32 | for line in f: |
---|
33 | line = line.strip() |
---|
34 | if len(line) != 0: |
---|
35 | if not line.startswith("#"): |
---|
36 | nb_config = nb_config * (line.count(",")+1) |
---|
37 | line = line.replace(",", "") |
---|
38 | line = line.replace("=", "") |
---|
39 | if line.startswith("UsingServer2"): |
---|
40 | line = line.replace("UsingServer2", "") |
---|
41 | for word in line.split(): |
---|
42 | configs[0] += 1 |
---|
43 | configs_arg[0].append('UsingServer2 = '+word) |
---|
44 | elif line.startswith("RatioServer2"): |
---|
45 | line = line.replace("RatioServer2", "") |
---|
46 | for word in line.split(): |
---|
47 | configs[1] += 1 |
---|
48 | configs_arg[1].append('RatioServer2 = '+word) |
---|
49 | elif line.startswith("NumberPoolsServer2"): |
---|
50 | line = line.replace("NumberPoolsServer2", "") |
---|
51 | for word in line.split(): |
---|
52 | configs[2] += 1 |
---|
53 | configs_arg[2].append('NumberPoolsServer2 = '+word) |
---|
54 | elif line.startswith("NumberClients"): |
---|
55 | line = line.replace("NumberClients", "") |
---|
56 | for word in line.split(): |
---|
57 | configs[3] += 1 |
---|
58 | configs_arg[3].append('NumberClients = '+word) |
---|
59 | elif line.startswith("NumberServers"): |
---|
60 | line = line.replace("NumberServers", "") |
---|
61 | for word in line.split(): |
---|
62 | configs[4] += 1 |
---|
63 | configs_arg[4].append('NumberServers = '+word) |
---|
64 | elif line.startswith("Duration"): |
---|
65 | line = line.replace("Duration", "") |
---|
66 | for word in line.split(): |
---|
67 | configs[5] += 1 |
---|
68 | configs_arg[5].append('Duration = '+word) |
---|
69 | elif line.startswith("ATMdomain"): |
---|
70 | line = line.replace("ATMdomain", "") |
---|
71 | for word in line.split(): |
---|
72 | configs[6] += 1 |
---|
73 | configs_arg[6].append('ATMdomain = '+word) |
---|
74 | |
---|
75 | |
---|
76 | for x in range(default_nb_config): |
---|
77 | if configs[x]==0: |
---|
78 | configs[x] =1 |
---|
79 | |
---|
80 | config_id=0 |
---|
81 | for i0 in range(configs[0]): |
---|
82 | hasContent0 = len(configs_arg[0])>0 |
---|
83 | for i1 in range(configs[1]): |
---|
84 | hasContent1 = len(configs_arg[1])>0 |
---|
85 | for i2 in range(configs[2]): |
---|
86 | hasContent2 = len(configs_arg[2])>0 |
---|
87 | for i3 in range(configs[3]): |
---|
88 | hasContent3 = len(configs_arg[3])>0 |
---|
89 | for i4 in range(configs[4]): |
---|
90 | hasContent4 = len(configs_arg[4])>0 |
---|
91 | for i5 in range(configs[5]): |
---|
92 | hasContent5 = len(configs_arg[5])>0 |
---|
93 | for i6 in range(configs[6]): |
---|
94 | hasContent6 = len(configs_arg[6])>0 |
---|
95 | |
---|
96 | filename = "user_param.py."+repr(config_id) |
---|
97 | g = open(filename, "w") |
---|
98 | |
---|
99 | if hasContent0: g.write(configs_arg[0][i0]+'\n') |
---|
100 | if hasContent1: g.write(configs_arg[1][i1]+'\n') |
---|
101 | if hasContent2: g.write(configs_arg[2][i2]+'\n') |
---|
102 | if hasContent3: g.write(configs_arg[3][i3]+'\n') |
---|
103 | if hasContent4: g.write(configs_arg[4][i4]+'\n') |
---|
104 | if hasContent5: g.write(configs_arg[5][i5]+'\n') |
---|
105 | if hasContent6: g.write(configs_arg[6][i6]+'\n') |
---|
106 | |
---|
107 | config_id +=1 |
---|
108 | g.close |
---|
109 | |
---|
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 | |
---|
157 | if __name__== "__main__": |
---|
158 | main() |
---|