Revision 3e4c5c32
b/snf-tools/synnefo_tools/burnin.py | ||
---|---|---|
75 | 75 |
def addSuccess(self, test): |
76 | 76 |
super(BurninTestResult, self).addSuccess(test) |
77 | 77 |
if self.showAll: |
78 |
if test.result_dict:
|
|
78 |
if hasattr(test, 'result_dict'):
|
|
79 | 79 |
run_details = test.result_dict |
80 | 80 |
|
81 | 81 |
self.stream.write("\n") |
... | ... | |
91 | 91 |
super(BurninTestResult, self).addError(test, err) |
92 | 92 |
if self.showAll: |
93 | 93 |
self.stream.writeln("ERROR") |
94 |
if hasattr(test, 'result_dict'): |
|
95 |
run_details = test.result_dict |
|
94 | 96 |
|
95 |
run_details = test.result_dict |
|
96 |
|
|
97 |
self.stream.write("\n") |
|
98 |
for i in run_details: |
|
99 |
self.stream.write("%s : %s \n" % (i, run_details[i])) |
|
100 |
self.stream.write("\n") |
|
97 |
self.stream.write("\n") |
|
98 |
for i in run_details: |
|
99 |
self.stream.write("%s : %s \n" % (i, run_details[i])) |
|
100 |
self.stream.write("\n") |
|
101 | 101 |
|
102 | 102 |
elif self.dots: |
103 | 103 |
self.stream.write('E') |
... | ... | |
107 | 107 |
super(BurninTestResult, self).addFailure(test, err) |
108 | 108 |
if self.showAll: |
109 | 109 |
self.stream.writeln("FAIL") |
110 |
if hasattr(test, 'result_dict'): |
|
111 |
run_details = test.result_dict |
|
110 | 112 |
|
111 |
run_details = test.result_dict |
|
112 |
|
|
113 |
self.stream.write("\n") |
|
114 |
for i in run_details: |
|
115 |
self.stream.write("%s : %s \n" % (i, run_details[i])) |
|
116 |
self.stream.write("\n") |
|
113 |
self.stream.write("\n") |
|
114 |
for i in run_details: |
|
115 |
self.stream.write("%s : %s \n" % (i, run_details[i])) |
|
116 |
self.stream.write("\n") |
|
117 | 117 |
|
118 | 118 |
elif self.dots: |
119 | 119 |
self.stream.write('F') |
... | ... | |
1470 | 1470 |
else: |
1471 | 1471 |
raise Exception("Cannot handle msg: %s" % msg) |
1472 | 1472 |
|
1473 |
def _run_cases_in_series(cases,image_folder): |
|
1474 |
"""Run instances of TestCase in series""" |
|
1475 |
|
|
1476 |
for case in cases: |
|
1477 |
|
|
1478 |
test = case.__name__ |
|
1479 |
|
|
1480 |
log.info(yellow + '* Starting testcase: %s' %test + normal) |
|
1481 |
log_file = os.path.join(image_folder, 'details_' + |
|
1482 |
(case.__name__) + "_" + |
|
1483 |
TEST_RUN_ID + '.log') |
|
1484 |
fail_file = os.path.join(image_folder, 'failed_' + |
|
1485 |
(case.__name__) + "_" + |
|
1486 |
TEST_RUN_ID + '.log') |
|
1487 |
error_file = os.path.join(image_folder, 'error_' + |
|
1488 |
(case.__name__) + "_" + |
|
1489 |
TEST_RUN_ID + '.log') |
|
1490 |
|
|
1491 |
f = open(log_file, "w") |
|
1492 |
fail = open(fail_file, "w") |
|
1493 |
error = open(error_file, "w") |
|
1494 |
|
|
1495 |
suite = unittest.TestLoader().loadTestsFromTestCase(case) |
|
1496 |
runner = unittest.TextTestRunner(f, verbosity=2, failfast=True, resultclass=BurninTestResult) |
|
1497 |
result = runner.run(suite) |
|
1498 |
|
|
1499 |
for res in result.errors: |
|
1500 |
log.error("snf-burnin encountered an error in " \ |
|
1501 |
"testcase: %s" %test) |
|
1502 |
log.error("See log for details") |
|
1503 |
error.write(str(res[0]) + '\n') |
|
1504 |
error.write(str(res[0].shortDescription()) + '\n') |
|
1505 |
error.write('\n') |
|
1506 |
|
|
1507 |
for res in result.failures: |
|
1508 |
log.error("snf-burnin failed in testcase: %s" %test) |
|
1509 |
log.error("See log for details") |
|
1510 |
fail.write(str(res[0]) + '\n') |
|
1511 |
fail.write(str(res[0].shortDescription()) + '\n') |
|
1512 |
fail.write('\n') |
|
1513 |
if NOFAILFAST == False: |
|
1514 |
sys.exit() |
|
1515 |
|
|
1516 |
if (len(result.failures) == 0) and (len(result.errors) == 0): |
|
1517 |
log.debug("Passed testcase: %s" %test) |
|
1518 |
|
|
1519 |
|
|
1473 | 1520 |
|
1474 | 1521 |
def _run_cases_in_parallel(cases, fanout, image_folder): |
1475 | 1522 |
"""Run instances of TestCase in parallel, in a number of distinct processes |
... | ... | |
1933 | 1980 |
image_folder = os.path.join(test_folder, imageid) |
1934 | 1981 |
os.mkdir(image_folder) |
1935 | 1982 |
|
1936 |
_run_cases_in_parallel(seq_cases, opts.fanout, image_folder) |
|
1983 |
if opts.fanout>1: |
|
1984 |
_run_cases_in_parallel(seq_cases, opts.fanout, image_folder) |
|
1985 |
else: |
|
1986 |
_run_cases_in_series(seq_cases,image_folder) |
|
1937 | 1987 |
|
1938 | 1988 |
if __name__ == "__main__": |
1939 | 1989 |
sys.exit(main()) |
Also available in: Unified diff