diff options
author | Yan <yanxk.fnst@fujitsu.com> | 2023-03-31 09:22:11 +0800 |
---|---|---|
committer | Yan <yanxk.fnst@fujitsu.com> | 2023-03-31 09:22:11 +0800 |
commit | e0371eee986998087c4e75acb48039dcec2c6283 (patch) | |
tree | 0e6461388002ba6f1bb6c0b59640d31bce2d4c0e | |
parent | 0124d938848301f8768d715b20dc1c4af486dd33 (diff) |
agl-test-framework: add LOG_MODE options
add new options: "default", "slim", "clear".
users can use export LOG_MODE="" to control how the
framework would delete all its temp files or folders.
"default": no influence, nothing would be removed.
"slim": test self-owned temp files and folders removed.
"clear": clean up each and every temp files and folders.
Bug-AGL: SPEC-4733
Signed-off-by: Yan <yanxk.fnst@fujitsu.com>
Change-Id: Ia3d8c2a971bbf97749448f732e848d9d15193459
-rwxr-xr-x | agl-test | 23 | ||||
-rw-r--r-- | plugins/agl_test_base.py | 25 | ||||
-rw-r--r-- | plugins/agl_test_utils.py | 9 |
3 files changed, 57 insertions, 0 deletions
@@ -26,6 +26,27 @@ then fi echo "STRESS_LEVEL: $STRESS_LEVEL" +# default logging mode is default +if [[ ! $LOG_MODE ]] +then + export LOG_MODE="default" +fi + +case $LOG_MODE in + "default") + ;; + "slim") + ;; + "clear") + ;; + *) + echo "Unrecognized LOG_MODE, setting to default..." + export LOG_MODE="default" + ;; +esac + +echo "LOG_MODE: $LOG_MODE" + # default test without dangerous marker moption="-m " if [[ $* =~ ${moption} ]] @@ -36,3 +57,5 @@ else fi python3 -c "import plugins.agl_test_report as report; report.generate_total_summary_files('${current_time}')" + +python3 -c "import plugins.agl_test_utils as utils; utils.rm_all_tmp()" diff --git a/plugins/agl_test_base.py b/plugins/agl_test_base.py index b30f841..1491f64 100644 --- a/plugins/agl_test_base.py +++ b/plugins/agl_test_base.py @@ -1,6 +1,8 @@ import pytest import os import json +import pathlib +import shutil import plugins.agl_test_utils as utils import plugins.agl_test_conf as conf @@ -111,6 +113,9 @@ class AGLBaseTest: #Write json data to html report.change_json_to_html(self.name) + #Clean temp files and folders + self.clean_self_tmp() + def precheck(self): return True; @@ -133,3 +138,23 @@ class AGLBaseTest: test_suites[self.name] = test_info json.dump(test_suites,f) f.close() + + def prepare_local_log_mode(self): + # Get env 'LOG_MODE' + env_dist=os.environ + local_log_mode = str(env_dist.get("LOG_MODE")) + return local_log_mode + + def clean_self_tmp(self): + path = self.get_temp_logdir() + log_mode = self.prepare_local_log_mode() + if log_mode == "slim" or log_mode == "clear": + # leave <path>/log and report.json as essential + folderObj = pathlib.Path(path) + for element in folderObj.iterdir(): + if element.name != "log" and element.name != "report.json": + # check delete_file_path file type + if element.is_file(): + element.unlink() + elif element.is_dir(): + shutil.rmtree(path) diff --git a/plugins/agl_test_utils.py b/plugins/agl_test_utils.py index b1204a0..e2799f1 100644 --- a/plugins/agl_test_utils.py +++ b/plugins/agl_test_utils.py @@ -1,3 +1,5 @@ +import os +import shutil import subprocess from plugins.agl_test_conf import REPORT_LOGS_DIR @@ -29,3 +31,10 @@ def printe(msg): def printd(msg): # TODO print("==== DEBUG: " + msg) + +# delete entire temp log folder +def rm_all_tmp(): + env_dist=os.environ + mode = str(env_dist.get("LOG_MODE")) + if mode == "clear": + shutil.rmtree(TMP_LOGS_DIR) |