def valid_dir_path(var_name, *args, **kwargs): var_value, args, kwargs = valid_init(var_name, *args, **kwargs) error_message = \ gv.valid_dir_path(var_value, *args, var_name=var_name, **kwargs) process_error_message(error_message)
def init_robot_test_base_dir_path(): r""" Initialize and validate the environment variable, ROBOT_TEST_BASE_DIR_PATH and set corresponding global variable ROBOT_TEST_RUNNING_FROM_SB. If ROBOT_TEST_BASE_DIR_PATH is already set, this function will merely validate it. This function will also set environment variable ROBOT_TEST_RUNNING_FROM_SB when ROBOT_TEST_BASE_DIR_PATH is not pre-set. """ # ROBOT_TEST_BASE_DIR_PATH will be set as follows: # This function will determine whether we are running in a user sandbox # or from a standard apolloxxx environment. # - User sandbox: # If there is a <developer's home dir>/git/openbmc-test-automation/, # ROBOT_TEST_BASE_DIR_PATH will be set to that path. Otherwise, we set it # to <program dir path>/git/openbmc-test-automation/ # - Not in user sandbox: # ROBOT_TEST_BASE_DIR_PATH will be set to <program dir # path>/git/openbmc-test-automation/ ROBOT_TEST_BASE_DIR_PATH = os.environ.get('ROBOT_TEST_BASE_DIR_PATH', "") ROBOT_TEST_RUNNING_FROM_SB = \ int(os.environ.get('ROBOT_TEST_RUNNING_FROM_SB', "0")) if ROBOT_TEST_BASE_DIR_PATH == "": # ROBOT_TEST_BASE_DIR_PATH was not set by user/caller. AUTOIPL_VERSION = os.environ.get('AUTOIPL_VERSION', '') if AUTOIPL_VERSION == "": ROBOT_TEST_BASE_DIR_PATH = base_path else: suffix = "git/openbmc-test-automation/" # Determine whether we're running out of a developer sandbox or # simply out of an apolloxxx/bin path. shell_rc, out_buf = gc.shell_cmd('dirname $(which gen_print.py)', quiet=(not debug), print_output=0) executable_base_dir_path = os.path.realpath(out_buf.rstrip()) + "/" apollo_dir_path = os.environ['AUTO_BASE_PATH'] + AUTOIPL_VERSION +\ "/bin/" developer_home_dir_path = re.sub('/sandbox.*', '', executable_base_dir_path) developer_home_dir_path = \ gm.add_trailing_slash(developer_home_dir_path) gp.dprint_vars(executable_base_dir_path, developer_home_dir_path, apollo_dir_path) ROBOT_TEST_RUNNING_FROM_SB = 0 if executable_base_dir_path != apollo_dir_path: ROBOT_TEST_RUNNING_FROM_SB = 1 gp.dprint_vars(ROBOT_TEST_RUNNING_FROM_SB) ROBOT_TEST_BASE_DIR_PATH = developer_home_dir_path + suffix if not os.path.isdir(ROBOT_TEST_BASE_DIR_PATH): gp.dprint_timen("NOTE: Sandbox directory " + ROBOT_TEST_BASE_DIR_PATH + " does not" + " exist.") # Fall back to the apollo dir path. ROBOT_TEST_BASE_DIR_PATH = apollo_dir_path + suffix else: # Use to the apollo dir path. ROBOT_TEST_BASE_DIR_PATH = apollo_dir_path + suffix if not gv.valid_value(ROBOT_TEST_BASE_DIR_PATH): return False gp.dprint_vars(ROBOT_TEST_RUNNING_FROM_SB, ROBOT_TEST_BASE_DIR_PATH) if not gv.valid_dir_path(ROBOT_TEST_BASE_DIR_PATH): return False ROBOT_TEST_BASE_DIR_PATH = gm.add_trailing_slash(ROBOT_TEST_BASE_DIR_PATH) gm.set_mod_global(ROBOT_TEST_BASE_DIR_PATH) os.environ['ROBOT_TEST_BASE_DIR_PATH'] = ROBOT_TEST_BASE_DIR_PATH gm.set_mod_global(ROBOT_TEST_RUNNING_FROM_SB) os.environ['ROBOT_TEST_RUNNING_FROM_SB'] = str(ROBOT_TEST_RUNNING_FROM_SB)