summaryrefslogtreecommitdiffstats
path: root/dovetail/test_runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'dovetail/test_runner.py')
-rw-r--r--dovetail/test_runner.py42
1 files changed, 31 insertions, 11 deletions
diff --git a/dovetail/test_runner.py b/dovetail/test_runner.py
index 603156fe..d2697f6d 100644
--- a/dovetail/test_runner.py
+++ b/dovetail/test_runner.py
@@ -82,17 +82,13 @@ class DockerRunner(object):
exist_file_name):
return
- if not self.testcase.prepared():
- prepare_failed = False
- cmds = self.testcase.pre_condition()
- if cmds:
- for cmd in cmds:
- ret, msg = Container.exec_cmd(container_id, cmd)
- if ret != 0:
- prepare_failed = True
- break
- if not prepare_failed:
- self.testcase.prepared(True)
+ cmds = self.testcase.pre_condition()
+ if cmds:
+ for cmd in cmds:
+ ret, msg = Container.exec_cmd(container_id, cmd)
+ if ret != 0:
+ self.logger.error("Failed to exec all pre_condition cmds.")
+ break
if not self.testcase.prepare_cmd(self.type):
self.logger.error(
@@ -113,6 +109,9 @@ class DockerRunner(object):
Container.clean(container_id, self.type)
+ def save_logs(self):
+ pass
+
class FunctestRunner(DockerRunner):
@@ -120,6 +119,27 @@ class FunctestRunner(DockerRunner):
self.type = 'functest'
super(FunctestRunner, self).__init__(testcase)
+ def save_logs(self):
+ validate_testcase = self.testcase.validate_testcase()
+ test_area = self.testcase.name().split(".")[1]
+ result_path = os.path.join(os.environ["DOVETAIL_HOME"], 'results')
+ dest_path = os.path.join(result_path, test_area + '_logs')
+ dest_file = os.path.join(dest_path, self.testcase.name() + '.log')
+ if validate_testcase == 'tempest_custom':
+ source_file = os.path.join(result_path, 'tempest', 'tempest.log')
+ elif validate_testcase == 'refstack_defcore':
+ source_file = os.path.join(result_path, 'refstack', 'refstack.log')
+ elif validate_testcase == 'bgpvpn':
+ source_file = os.path.join(result_path, 'bgpvpn.log')
+ else:
+ source_file = None
+ if source_file:
+ if os.path.isfile(source_file):
+ os.renames(source_file, dest_file)
+ else:
+ self.logger.error("Tempest log file for test case {} is not "
+ "found.".format(self.testcase.name()))
+
class YardstickRunner(DockerRunner):