diff options
-rw-r--r-- | ci/testcases.yaml | 2 | ||||
-rw-r--r-- | testcases/vnf/RNC/parser.py | 27 | ||||
-rw-r--r-- | utils/functest_utils.py | 21 |
3 files changed, 26 insertions, 24 deletions
diff --git a/ci/testcases.yaml b/ci/testcases.yaml index 315969ae7..221d2fcf1 100644 --- a/ci/testcases.yaml +++ b/ci/testcases.yaml @@ -257,7 +257,7 @@ tiers: scenario: '(ocl)|(nosdn)|^(os-odl)((?!bgpvpn).)*$' - name: parser - criteria: 'status == "PASS"' + criteria: 'ret == 0' blocking: false description: >- Test suite from Parser project. diff --git a/testcases/vnf/RNC/parser.py b/testcases/vnf/RNC/parser.py index 485af0e14..91d5bb06a 100644 --- a/testcases/vnf/RNC/parser.py +++ b/testcases/vnf/RNC/parser.py @@ -32,33 +32,18 @@ logger = ft_logger.Logger("parser").getLogger() def main(): - EXIT_CODE = -1 project = 'parser' case_name = 'parser-basics' cmd = 'cd %s/tests && ./functest_run.sh' % PARSER_REPO - start_time = time.time() + start_time = time.time() ret = functest_utils.execute_command(cmd, logger, exit_on_error=False) - stop_time = time.time() - duration = round(stop_time - start_time, 1) - if ret == 0: - EXIT_CODE = 0 - logger.info("parser OK") - test_status = 'OK' - else: - logger.info("parser FAILED") - test_status = 'NOK' - - details = { - 'timestart': start_time, - 'duration': duration, - 'status': test_status, - } - status = "FAIL" - if details['status'] == "OK": - status = "PASS" + status, details = functest_utils.check_test_result(case_name, + ret, + start_time, + stop_time) functest_utils.logger_test_results(logger, project, @@ -73,7 +58,7 @@ def main(): stop_time, status, details) - exit(EXIT_CODE) + exit(ret) if __name__ == '__main__': main() diff --git a/utils/functest_utils.py b/utils/functest_utils.py index b0014308e..437315241 100644 --- a/utils/functest_utils.py +++ b/utils/functest_utils.py @@ -353,16 +353,33 @@ def check_success_rate(case_name, success_rate): success_rate = float(success_rate) criteria = get_criteria_by_test(case_name) - def get_value(op): + def get_criteria_value(op): return float(criteria.split(op)[1].rstrip('%')) status = 'FAIL' ops = ['==', '>='] for op in ops: if op in criteria: - c_value = get_value(op) + c_value = get_criteria_value(op) if eval("%s %s %s" % (success_rate, op, c_value)): status = 'PASS' break return status + + +def check_test_result(test_name, ret, start_time, stop_time): + def get_criteria_value(): + return get_criteria_by_test(test_name).split('==')[1].strip() + + status = 'FAIL' + if str(ret) == get_criteria_value(): + status = 'PASS' + + details = { + 'timestart': start_time, + 'duration': round(stop_time - start_time, 1), + 'status': status, + } + + return status, details |