From 67dd3e2949915be2cbda3d05ec94a154d28b3da9 Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Wed, 27 Jan 2016 14:56:39 +0100 Subject: [PATCH] Option to redirect stderr output to a file for Tempest test The output when we run Tempest from CI is too long if there are many tests failing. This patch intends to show only the test cases that passed/failed within a table. If troubleshooting is needed, it will be a log file with all the stderr in it. Change-Id: If5b0f35463a3dae06a0c177de4dc473bfc4687c5 Signed-off-by: jose.lausuch (cherry picked from commit 9be6519eca39111295b89e9b3b0d853f95126a72) --- testcases/VIM/OpenStack/CI/libraries/run_tempest.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py index ee0a4bea8..0097a567b 100644 --- a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py +++ b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py @@ -73,6 +73,8 @@ USER_NAME = functest_yaml.get("tempest").get("identity").get("user_name") USER_PASSWORD = functest_yaml.get("tempest").get("identity").get("user_password") DEPLOYMENT_MAME = functest_yaml.get("rally").get("deployment_name") RALLY_INSTALLATION_DIR = functest_yaml.get("general").get("directories").get("dir_rally_inst") +RESULTS_DIR = functest_yaml.get("general").get("directories").get("dir_results") +TEMPEST_RESULTS_DIR = RESULTS_DIR + '/tempest' def get_info(file_result): @@ -211,7 +213,23 @@ def run_tempest(OPTION): logger.info("Starting Tempest test suite: '%s'." % OPTION) cmd_line = "rally verify start "+OPTION logger.debug('Executing command : {}'.format(cmd_line)) - subprocess.call(cmd_line, shell=True, stderr=subprocess.STDOUT) + + CI_DEBUG = os.environ.get("CI_DEBUG") + if CI_DEBUG == "true" or CI_DEBUG == "True": + subprocess.call(cmd_line, shell=True, stderr=subprocess.STDOUT) + else: + if not os.path.exists(TEMPEST_RESULTS_DIR): + os.makedirs(TEMPEST_RESULTS_DIR) + + f = open(TEMPEST_RESULTS_DIR+"/tempest.log", 'w+') + FNULL = open(os.devnull, 'w') + + subprocess.call(cmd_line, shell=True, stdout=FNULL, stderr=f) + f.close() + FNULL.close() + + cmd_line = "rally verify show" + subprocess.call(cmd_line, shell=True) cmd_line = "rally verify list" logger.debug('Executing command : {}'.format(cmd_line)) -- 2.16.6