Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: tools/test.py

Issue 7491050: Fix report printing in test.py script. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2008 the V8 project authors. All rights reserved. 3 # Copyright 2008 the V8 project authors. All rights reserved.
4 # Redistribution and use in source and binary forms, with or without 4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are 5 # modification, are permitted provided that the following conditions are
6 # met: 6 # met:
7 # 7 #
8 # * Redistributions of source code must retain the above copyright 8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above 10 # * Redistributions in binary form must reproduce the above
(...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 if options.special_command: 1276 if options.special_command:
1277 options.special_command += " --test" 1277 options.special_command += " --test"
1278 else: 1278 else:
1279 options.special_command = "@--test" 1279 options.special_command = "@--test"
1280 if options.noprof: 1280 if options.noprof:
1281 options.scons_flags.append("prof=off") 1281 options.scons_flags.append("prof=off")
1282 options.scons_flags.append("profilingsupport=off") 1282 options.scons_flags.append("profilingsupport=off")
1283 return True 1283 return True
1284 1284
1285 1285
1286 def DoSkip(case):
1287 return (SKIP in case.outcomes) or (SLOW in case.outcomes)
1288
1289
1286 REPORT_TEMPLATE = """\ 1290 REPORT_TEMPLATE = """\
1287 Total: %(total)i tests 1291 Total: %(total)i tests
1288 * %(skipped)4d tests will be skipped 1292 * %(skipped)4d tests will be skipped
1293 * %(timeout)4d tests are expected to timeout sometimes
1289 * %(nocrash)4d tests are expected to be flaky but not crash 1294 * %(nocrash)4d tests are expected to be flaky but not crash
1290 * %(pass)4d tests are expected to pass 1295 * %(pass)4d tests are expected to pass
1291 * %(fail_ok)4d tests are expected to fail that we won't fix 1296 * %(fail_ok)4d tests are expected to fail that we won't fix
1292 * %(fail)4d tests are expected to fail that we should fix\ 1297 * %(fail)4d tests are expected to fail that we should fix\
1293 """ 1298 """
1294 1299
1295 def PrintReport(cases): 1300 def PrintReport(cases):
1296 def IsFlaky(o): 1301 def IsFlaky(o):
1297 return (PASS in o) and (FAIL in o) and (not CRASH in o) and (not OKAY in o) 1302 return (PASS in o) and (FAIL in o) and (not CRASH in o) and (not OKAY in o)
1298 def IsFailOk(o): 1303 def IsFailOk(o):
1299 return (len(o) == 2) and (FAIL in o) and (OKAY in o) 1304 return (len(o) == 2) and (FAIL in o) and (OKAY in o)
1300 unskipped = [c for c in cases if not SKIP in c.outcomes] 1305 unskipped = [c for c in cases if not DoSkip(c)]
1301 print REPORT_TEMPLATE % { 1306 print REPORT_TEMPLATE % {
1302 'total': len(cases), 1307 'total': len(cases),
1303 'skipped': len(cases) - len(unskipped), 1308 'skipped': len(cases) - len(unskipped),
1309 'timeout': len([t for t in unskipped if TIMEOUT in t.outcomes]),
1304 'nocrash': len([t for t in unskipped if IsFlaky(t.outcomes)]), 1310 'nocrash': len([t for t in unskipped if IsFlaky(t.outcomes)]),
1305 'pass': len([t for t in unskipped if list(t.outcomes) == [PASS]]), 1311 'pass': len([t for t in unskipped if list(t.outcomes) == [PASS]]),
1306 'fail_ok': len([t for t in unskipped if IsFailOk(t.outcomes)]), 1312 'fail_ok': len([t for t in unskipped if IsFailOk(t.outcomes)]),
1307 'fail': len([t for t in unskipped if list(t.outcomes) == [FAIL]]) 1313 'fail': len([t for t in unskipped if list(t.outcomes) == [FAIL]])
1308 } 1314 }
1309 1315
1310 1316
1311 class Pattern(object): 1317 class Pattern(object):
1312 1318
1313 def __init__(self, pattern): 1319 def __init__(self, pattern):
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
1465 print "--- begin source: %s ---" % test.GetLabel() 1471 print "--- begin source: %s ---" % test.GetLabel()
1466 source = test.GetSource().strip() 1472 source = test.GetSource().strip()
1467 print source 1473 print source
1468 print "--- end source: %s ---" % test.GetLabel() 1474 print "--- end source: %s ---" % test.GetLabel()
1469 return 0 1475 return 0
1470 1476
1471 if options.warn_unused: 1477 if options.warn_unused:
1472 for rule in globally_unused_rules: 1478 for rule in globally_unused_rules:
1473 print "Rule for '%s' was not used." % '/'.join([str(s) for s in rule.path] ) 1479 print "Rule for '%s' was not used." % '/'.join([str(s) for s in rule.path] )
1474 1480
1481 if not options.isolates:
1482 all_cases = [c for c in all_cases if not c.TestsIsolates()]
1483
1475 if options.report: 1484 if options.report:
1476 PrintReport(all_cases) 1485 PrintReport(all_cases)
1477 1486
1478 result = None 1487 result = None
1479 def DoSkip(case):
1480 return SKIP in case.outcomes or SLOW in case.outcomes
1481 cases_to_run = [ c for c in all_cases if not DoSkip(c) ] 1488 cases_to_run = [ c for c in all_cases if not DoSkip(c) ]
1482 if not options.isolates:
1483 cases_to_run = [c for c in cases_to_run if not c.TestsIsolates()]
1484 if len(cases_to_run) == 0: 1489 if len(cases_to_run) == 0:
1485 print "No tests to run." 1490 print "No tests to run."
1486 return 0 1491 return 0
1487 else: 1492 else:
1488 try: 1493 try:
1489 start = time.time() 1494 start = time.time()
1490 if RunTestCases(cases_to_run, options.progress, options.j): 1495 if RunTestCases(cases_to_run, options.progress, options.j):
1491 result = 0 1496 result = 0
1492 else: 1497 else:
1493 result = 1 1498 result = 1
(...skipping 13 matching lines...) Expand all
1507 for entry in timed_tests[:20]: 1512 for entry in timed_tests[:20]:
1508 t = FormatTime(entry.duration) 1513 t = FormatTime(entry.duration)
1509 sys.stderr.write("%4i (%s) %s\n" % (index, t, entry.GetLabel())) 1514 sys.stderr.write("%4i (%s) %s\n" % (index, t, entry.GetLabel()))
1510 index += 1 1515 index += 1
1511 1516
1512 return result 1517 return result
1513 1518
1514 1519
1515 if __name__ == '__main__': 1520 if __name__ == '__main__':
1516 sys.exit(Main()) 1521 sys.exit(Main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698