Set and save stop_check_rc after each decision to stop test execution II
Change-Id: I7a8ca3df2b56c71746dd03fca0da054a2e9ba1fd
diff --git a/bin/plug_ins/Stop/cp_stop_check b/bin/plug_ins/Stop/cp_stop_check
index fcbd9c0..11527c9 100755
--- a/bin/plug_ins/Stop/cp_stop_check
+++ b/bin/plug_ins/Stop/cp_stop_check
@@ -103,6 +103,17 @@
return True
+def stop_check():
+ r"""
+ Stop this program with the stop check return code.
+ """
+
+ if MASTER_PID != PROGRAM_PID:
+ stop_check_rc = stop_test_rc
+ save_plug_in_value(stop_check_rc)
+ exit(stop_test_rc)
+
+
def rest_fail():
r"""
If STOP_REST_FAIL, then this function will determine whether REST commands
@@ -126,13 +137,14 @@
set_mod_global(keyword_string)
cmd_buf = create_robot_cmd_string("extended/run_keyword.robot",
- OPENBMC_HOST, keyword_string,
+ OPENBMC_HOST, REST_USERNAME,
+ REST_PASSWORD, keyword_string,
lib_file_path, quiet, test_mode, debug,
outputdir, output, log, report, loglevel)
if not robot_cmd_fnc(cmd_buf):
print_timen("The caller wishes to stop test execution if REST" +
" commands are failing.")
- exit(stop_test_rc)
+ stop_check()
print_timen("REST commands are working so no reason as of yet to stop" +
" the test.")
@@ -153,7 +165,7 @@
if shell_rc == stop_test_rc:
print_timen("The caller wishes to stop test execution based on the" +
" presence of certain esel entries.")
- exit(stop_test_rc)
+ stop_check()
def main():
@@ -178,21 +190,21 @@
if STOP_COMMAND.upper() == "FAIL":
if AUTOBOOT_BOOT_SUCCESS == "0":
print_timen("The caller wishes to stop after each boot failure.")
- exit(stop_test_rc)
+ stop_check()
elif STOP_COMMAND.upper() == "ALL":
print_timen("The caller wishes to stop after each boot test.")
- exit(stop_test_rc)
+ stop_check()
elif len(STOP_COMMAND) > 0:
shell_rc, out_buf = cmd_fnc_u(STOP_COMMAND, quiet=quiet, show_err=0)
if shell_rc != 0:
print_timen("The caller wishes to stop test execution.")
- exit(stop_test_rc)
+ stop_check()
qprint_timen("The caller does not wish to stop the test run.")
return True
-# Main
+# Main
if not main():
exit(1)
diff --git a/lib/gen_misc.py b/lib/gen_misc.py
index ef0710d..0dc0d64 100755
--- a/lib/gen_misc.py
+++ b/lib/gen_misc.py
@@ -592,3 +592,23 @@
"""
return [str(stack_frame[3]) for stack_frame in inspect.stack()]
+
+
+def username():
+ r"""
+ Return the username for the current process.
+ """
+
+ username = os.environ.get("USER", "")
+ if username != "":
+ return username
+ user_num = str(os.geteuid())
+ try:
+ username = os.getlogin()
+ except OSError:
+ if user_num == "0":
+ username = "root"
+ else:
+ username = "?"
+
+ return username
diff --git a/lib/gen_plug_in_utils.py b/lib/gen_plug_in_utils.py
index 769e73e..9af1be3 100755
--- a/lib/gen_plug_in_utils.py
+++ b/lib/gen_plug_in_utils.py
@@ -45,7 +45,7 @@
Example excerpt of resulting dictionary:
plug_var_dict:
- [AUTOBOOT_BASE_TOOL_DIR_PATH]: /fspmount/
+ [AUTOBOOT_BASE_TOOL_DIR_PATH]: /tmp/
[AUTOBOOT_BB_LEVEL]: <blank>
[AUTOBOOT_BOOT_FAIL]: 0
...
@@ -146,7 +146,7 @@
package_name>_ in upper case letters.).
Example excerpt of output:
- AUTOBOOT_BASE_TOOL_DIR_PATH=/fspmount/
+ AUTOBOOT_BASE_TOOL_DIR_PATH=/tmp/
AUTOBOOT_BB_LEVEL=
AUTOBOOT_BOOT_FAIL=0
AUTOBOOT_BOOT_FAIL_THRESHOLD=1000000
@@ -385,14 +385,15 @@
BASE_TOOL_DIR_PATH = \
gm.add_trailing_slash(os.environ.get(PLUG_VAR_PREFIX
- + "BASE_TOOL_DIR_PATH",
- "/fspmount/"))
+ + "_BASE_TOOL_DIR_PATH",
+ "/tmp/"))
NICKNAME = os.environ.get("AUTOBOOT_OPENBMC_NICKNAME", "")
if NICKNAME == "":
NICKNAME = os.environ["AUTOIPL_FSP1_NICKNAME"]
MASTER_PID = os.environ[PLUG_VAR_PREFIX + "_MASTER_PID"]
- return BASE_TOOL_DIR_PATH + os.environ["USER"] + "/" + NICKNAME + "/" +\
- plug_in_package_name + "/" + MASTER_PID + "/"
+ gp.pvars(BASE_TOOL_DIR_PATH, NICKNAME, plug_in_package_name, MASTER_PID)
+ return BASE_TOOL_DIR_PATH + gm.username() + "/" + NICKNAME + "/" +\
+ plug_in_package_name + "/" + str(MASTER_PID) + "/"
def create_plug_in_save_dir(plug_in_package_name=None):