summaryrefslogtreecommitdiffstats
path: root/dovetail/run.py
diff options
context:
space:
mode:
authorLeo Wang <grakiss.wanglei@huawei.com>2016-11-29 04:21:40 -0500
committerLeo Wang <grakiss.wanglei@huawei.com>2016-12-13 02:40:02 -0500
commit1c0f19209637572d0bd50c1a3691bc18ee6fb9ee (patch)
treec8bda462d8ca8e830bb4843e46d48c1aa0a657fd /dovetail/run.py
parent0a90987741fe2b0a2cc81c5b8ffef46a8111f250 (diff)
[dovetail tool] support shell scripts for testcase validation
JIRA: DOVETAIL-46 1. for now a testcase has two kinds of validation types(functest, yardstick), and it is not enough to check the complete funcionality 2. add new validation type(shell) for extra validation of the test case to make result more accurate and more convincing. Change-Id: I45dca6b8dbd888757da163189d261f6e4dba5034 Signed-off-by: Leo Wang <grakiss.wanglei@huawei.com>
Diffstat (limited to 'dovetail/run.py')
-rwxr-xr-xdovetail/run.py32
1 files changed, 6 insertions, 26 deletions
diff --git a/dovetail/run.py b/dovetail/run.py
index d9bc0aaa..52a350e5 100755
--- a/dovetail/run.py
+++ b/dovetail/run.py
@@ -11,7 +11,6 @@
import click
import sys
import os
-import time
import utils.dovetail_logger as dt_logger
import utils.dovetail_utils as dt_utils
@@ -24,6 +23,7 @@ from report import Report
from report import FunctestCrawler, YardstickCrawler
from report import FunctestChecker, YardstickChecker
from conf.dovetail_config import DovetailConfig as dt_cfg
+from test_runner import DockerRunner, ShellRunner
def load_testsuite(testsuite):
@@ -34,9 +34,9 @@ def load_testsuite(testsuite):
def set_container_tags(option_str):
for script_tag_opt in option_str.split(','):
option_str = script_tag_opt.split(':')
- script_type = option_str[0].strip()
+ validate_type = option_str[0].strip()
script_tag = option_str[1].strip()
- dt_cfg.dovetail_config[script_type]['docker_tag'] = script_tag
+ dt_cfg.dovetail_config[validate_type]['docker_tag'] = script_tag
def load_testcase():
@@ -66,29 +66,7 @@ def run_test(testsuite, testarea, logger):
run_testcase = False
if run_testcase:
- Container.pull_image(testcase.script_type())
- container_id = Container.create(testcase.script_type())
- logger.debug('container id:%s' % container_id)
-
- if not Testcase.prepared(testcase.script_type()):
- cmds = testcase.pre_condition()['cmds']
- if cmds:
- for cmd in cmds:
- Container.exec_cmd(container_id, cmd)
- Testcase.prepared(testcase.script_type(), True)
-
- if not testcase.prepare_cmd():
- logger.error('failed to prepare testcase:%s' % testcase.name())
- else:
- start_time = time.time()
- for cmd in testcase.cmds:
- Container.exec_cmd(container_id, cmd)
- end_time = time.time()
- duration = end_time - start_time
-
- # testcase.post_condition()
-
- Container.clean(container_id)
+ testcase.run()
db_result = Report.get_result(testcase)
Report.check_result(testcase, db_result)
@@ -125,6 +103,8 @@ def create_logs():
YardstickChecker.create_log()
Testcase.create_log()
Testsuite.create_log()
+ DockerRunner.create_log()
+ ShellRunner.create_log()
def clean_results_dir():