Changeset 53bb8f1 for tests/test.py
- Timestamp:
- Mar 12, 2019, 3:00:54 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 30e32b2, a2545593
- Parents:
- 9d9a451 (diff), 91d6584 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/test.py
r9d9a451 r53bb8f1 121 121 # running test functions 122 122 ################################################################################ 123 # fix the absolute paths in the output 124 def fixoutput( fname ): 125 if not is_ascii(fname): 126 return 127 128 file_replace(fname, "%s/" % settings.SRCDIR, "") 129 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) 130 131 131 132 # logic to run a single test and return the result (No handling of printing or other test framework logic) … … 143 144 144 145 # build, skipping to next test on error 145 before = time.time() 146 make_ret, _ = make( test.target(), 147 redirects = "2> %s 1> /dev/null" % out_file, 148 error_file = err_file 149 ) 150 after = time.time() 151 152 comp_dur = after - before 153 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 149 # if the make command succeds continue otherwise skip to diff 154 150 run_dur = None 155 156 # if the make command succeds continue otherwise skip to diff 157 if make_ret == 0 or settings.dry_run: 158 before = time.time() 159 if settings.dry_run or fileIsExecutable(exe_file) : 160 # run test 161 retcode, _ = sh("timeout %d %s > %s 2>&1" % (settings.timeout.single, exe_file, out_file), input = in_file) 162 else : 163 # simply cat the result into the output 164 retcode, _ = sh("cat %s > %s" % (exe_file, out_file)) 165 166 after = time.time() 167 run_dur = after - before 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) 168 159 else: 169 retcode, _ = sh("mv %s %s" % (err_file, out_file)) 170 171 172 if retcode == 0: 173 # fixoutput(out_file) 160 retcode = mv(err_file, out_file) 161 162 if success(retcode): 174 163 if settings.generating : 175 164 # if we are ounly generating the output we still need to check that the test actually exists 176 if no t settings.dry_run and fileContainsOnly(out_file, "make: *** No rule to make target `%s'. Stop." %test.target()) :177 retcode = 1 ;165 if noRule(out_file, test.target()) : 166 retcode = 1 178 167 error = "\t\tNo make target for test %s!" % test.target() 179 sh("rm %s" % out_file, False)168 rm(out_file) 180 169 else: 181 170 error = None … … 188 177 error = myfile.read() 189 178 179 ret, info = coreInfo(exe_file) 180 error = error + info 181 182 190 183 191 184 # clean the executable 192 sh("rm -f %s > /dev/null 2>&1" % test.target())193 194 return retcode, error, [comp_dur , run_dur]185 rm(exe_file) 186 187 return retcode, error, [comp_dur.duration, run_dur.duration if run_dur else None] 195 188 196 189 # run a single test and handle the errors, outputs, printing, exception handling, etc. … … 199 192 with SignalHandling(): 200 193 # print formated name 201 name_txt = "%2 0s " % t.name194 name_txt = "%24s " % t.name 202 195 203 196 retcode, error, duration = run_single_test(t) … … 263 256 allTests = listTests( options.include, options.exclude ) 264 257 258 265 259 # if user wants all tests than no other treatement of the test list is required 266 260 if options.all or options.list or options.list_comp or options.include :
Note:
See TracChangeset
for help on using the changeset viewer.