diff options
author | 2016-09-22 21:56:54 -0400 | |
---|---|---|
committer | 2016-09-30 05:30:22 -0400 | |
commit | 39942dc9c5bc152a6ed20534755cc0dc38d85ede (patch) | |
tree | 8d4a980e7454b26cd97216a8e91de6c947692e9a /scripts/run.py | |
parent | c554b6951f8ee8298d3f8ae8f53ba468dbf4c164 (diff) |
Use template to unify commands in functest/yardstick
JIRA: DOVETAIL-19
1. use jinja2 to unify commands in config files
2. it simplify the process of test execution, put the dissimilarity in config
3. add precondition/postcondition for functest/yardstick config
Change-Id: Ib996b11ea065b61910b34b78191bb7b1ffd92e59
Signed-off-by: Leo Wang <grakiss.wanglei@huawei.com>
Diffstat (limited to 'scripts/run.py')
-rwxr-xr-x | scripts/run.py | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/scripts/run.py b/scripts/run.py index 9b59f76f..2afdfc7e 100755 --- a/scripts/run.py +++ b/scripts/run.py @@ -15,13 +15,15 @@ import time import utils.dovetail_logger as dt_logger import utils.dovetail_utils as dt_utils -logger = dt_logger.Logger('run.py').getLogger() + from container import Container from testcase import * from report import * from conf.dovetail_config import * +logger = dt_logger.Logger('run.py').getLogger() + def load_scenario(scenario): Scenario.load() return Scenario.get(SCENARIO_NAMING_FMT % scenario) @@ -30,10 +32,8 @@ def load_testcase(): Testcase.load() def run_functest(testcase, container_id): - sub_cmd = dovetail_config[testcase.script_type()]['testcase']['pre_cmd'] - Container.exec_cmd(container_id, sub_cmd) - sub_cmd = dovetail_config[testcase.script_type()]['testcase']['exec_cmd'] % testcase.script_testcase() - Container.exec_cmd(container_id, sub_cmd) + for cmd in testcase.cmds: + Container.exec_cmd(container_id, cmd) def run_yardstick(testcase, container_id): type = testcase.script_type() @@ -51,23 +51,35 @@ def run_test(scenario): for testcase_name in scenario['testcase_list']: logger.info('>>[testcase]: %s' % (testcase_name)) testcase = Testcase.get(testcase_name) - run_test = True + run_testcase = True if testcase.exceed_max_retry_times(): - run_test = False + run_testcase = False if testcase.script_result_acquired(): - run_test = False + run_testcase = False - if run_test: + if run_testcase: Container.pull_image(testcase.script_type()) container_id = Container.create(testcase.script_type()) logger.debug('container id:%s' % container_id) - if testcase.script_type() == 'functest': - run_functest(testcase, container_id) + if not Testcase.prepared(testcase.script_type()): + cmds = Testcase.pre_condition(testcase.script_type())['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: - run_yardstick(testcase, container_id) + if testcase.script_type() == 'functest': + run_functest(testcase, container_id) + else: + run_yardstick(testcase, container_id) + + #testcase.post_condition() Container.clean(container_id) |