Changes in tests/test.py [0c13238:f7d3215]
- File:
-
- 1 edited
-
tests/test.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/test.py
r0c13238 rf7d3215 19 19 20 20 def matchTest(path): 21 match = re.search(" ^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path)21 match = re.search("%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.[\w\-_]+)?\.txt" % settings.SRCDIR, path) 22 22 if match : 23 23 test = Test() … … 34 34 # reads the directory ./.expect and indentifies the tests 35 35 def listTests( includes, excludes ): 36 includes = [canonicalPath( i ) for i in includes] if includes else None 37 excludes = [canonicalPath( i ) for i in excludes] if excludes else None 38 36 39 # tests directly in the .expect folder will always be processed 37 40 test_list = findTests() … … 121 124 # running test functions 122 125 ################################################################################ 123 def success(val): 124 return val == 0 or settings.dry_run 125 126 def isExe(file): 127 return settings.dry_run or fileIsExecutable(file) 128 129 def noRule(file, target): 130 return not settings.dry_run and fileContainsOnly(file, "make: *** No rule to make target `%s'. Stop." % target) 126 # fix the absolute paths in the output 127 def fixoutput( fname ): 128 if not is_ascii(fname): 129 return 130 131 file_replace(fname, "%s/" % settings.SRCDIR, "") 132 131 133 132 134 # logic to run a single test and return the result (No handling of printing or other test framework logic) … … 144 146 145 147 # build, skipping to next test on error 146 with Timed() as comp_dur: 147 make_ret, _ = make( test.target(), redirects = ("2> %s 1> /dev/null" % out_file), error_file = err_file ) 148 before = time.time() 149 make_ret, _ = make( test.target(), 150 redirects = "2> %s 1> /dev/null" % out_file, 151 error_file = err_file 152 ) 153 after = time.time() 154 155 comp_dur = after - before 156 157 run_dur = None 148 158 149 159 # if the make command succeds continue otherwise skip to diff 150 run_dur = None 151 if success(make_ret): 152 with Timed() as run_dur: 153 if isExe(exe_file): 154 # run test 155 retcode = run(exe_file, out_file, in_file) 156 else : 157 # simply cat the result into the output 158 retcode = cat(exe_file, out_file) 160 if make_ret == 0 or settings.dry_run: 161 before = time.time() 162 if settings.dry_run or fileIsExecutable(exe_file) : 163 # run test 164 retcode, _ = sh("timeout %d %s > %s 2>&1" % (settings.timeout.single, exe_file, out_file), input = in_file) 165 else : 166 # simply cat the result into the output 167 retcode, _ = sh("cat %s > %s" % (exe_file, out_file)) 168 169 after = time.time() 170 run_dur = after - before 159 171 else: 160 retcode = mv(err_file, out_file) 161 162 if success(retcode): 172 retcode, _ = sh("mv %s %s" % (err_file, out_file)) 173 174 175 if retcode == 0: 176 # fixoutput(out_file) 163 177 if settings.generating : 164 178 # if we are ounly generating the output we still need to check that the test actually exists 165 if no Rule(out_file,test.target()) :166 retcode = 1 179 if not settings.dry_run and fileContainsOnly(out_file, "make: *** No rule to make target `%s'. Stop." % test.target()) : 180 retcode = 1; 167 181 error = "\t\tNo make target for test %s!" % test.target() 168 rm(out_file)182 sh("rm %s" % out_file, False) 169 183 else: 170 184 error = None … … 177 191 error = myfile.read() 178 192 179 ret, info = coreInfo(exe_file)180 error = error + info181 182 183 193 184 194 # clean the executable 185 rm(exe_file)186 187 return retcode, error, [comp_dur .duration, run_dur.duration if run_dur else None]195 sh("rm -f %s > /dev/null 2>&1" % test.target()) 196 197 return retcode, error, [comp_dur, run_dur] 188 198 189 199 # run a single test and handle the errors, outputs, printing, exception handling, etc. … … 192 202 with SignalHandling(): 193 203 # print formated name 194 name_txt = "%2 4s " % t.name204 name_txt = "%20s " % t.name 195 205 196 206 retcode, error, duration = run_single_test(t) … … 256 266 allTests = listTests( options.include, options.exclude ) 257 267 258 259 268 # if user wants all tests than no other treatement of the test list is required 260 269 if options.all or options.list or options.list_comp or options.include :
Note:
See TracChangeset
for help on using the changeset viewer.