本文整理汇总了Python中mbed_greentea.mbed_greentea_log.gt_logger.gt_log_tab函数的典型用法代码示例。如果您正苦于以下问题:Python gt_log_tab函数的具体用法?Python gt_log_tab怎么用?Python gt_log_tab使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了gt_log_tab函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: list_binaries_for_targets
def list_binaries_for_targets(build_dir='./build', verbose_footer=False):
"""! Prints tests in target directories, only if tests exist.
@param build_dir Yotta default build directory where tests will be
@param verbose_footer Prints additional "how to use" Greentea footer
@details Skips empty / no tests for target directories.
"""
dir = build_dir
sub_dirs = [os.path.join(dir, o) for o in os.listdir(dir) if os.path.isdir(os.path.join(dir, o))] \
if os.path.exists(dir) else []
def count_tests():
result = 0
for sub_dir in sub_dirs:
test_list = load_ctest_testsuite(sub_dir, binary_type='')
if len(test_list):
for test in test_list:
result += 1
return result
if count_tests():
for sub_dir in sub_dirs:
target_name = sub_dir.split(os.sep)[-1]
gt_logger.gt_log("available tests for target '%s', location '%s'"% (target_name, os.path.abspath(os.path.join(build_dir, sub_dir))))
test_list = load_ctest_testsuite(sub_dir, binary_type='')
if len(test_list):
for test in sorted(test_list):
gt_logger.gt_log_tab("test '%s'"% test)
else:
gt_logger.gt_log_warn("no tests found in current location")
if verbose_footer:
print
print "Example: execute 'mbedgt -t TARGET_NAME -n TEST_NAME' to run test TEST_NAME for target TARGET_NAME"
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:33,代码来源:cmake_handlers.py
示例2: get_mbed_targets_from_yotta
def get_mbed_targets_from_yotta(mbed_classic_name):
"""! Function is using 'yotta search' command to fetch matching mbed device target's name
@return Function returns list of possible targets or empty list if value not found
@details Example:
$ yt search -k mbed-target:k64f target
frdm-k64f-gcc 0.0.16: Official mbed build target for the mbed frdm-k64f development board.
frdm-k64f-armcc 0.0.10: Official mbed build target for the mbed frdm-k64f development board, using the armcc toolchain.
Note: Function prints on console
"""
result = []
cmd = ['yotta', '--plain', 'search', '-k', 'mbed-target:%s'% mbed_classic_name.lower().strip(), 'target']
gt_logger.gt_log("yotta search for mbed-target '%s'"% gt_logger.gt_bright(mbed_classic_name.lower().strip()))
gt_logger.gt_log_tab("calling yotta: %s"% " ".join(cmd))
_stdout, _stderr, _ret = run_cli_process(cmd)
if not _ret:
for line in _stdout.splitlines():
yotta_target_name = parse_yotta_search_cmd_output(line)
if yotta_target_name:
if yotta_target_name and yotta_target_name not in result:
result.append(yotta_target_name)
gt_logger.gt_log_tab("found target '%s'" % gt_logger.gt_bright(yotta_target_name))
else:
gt_logger.gt_log_err("calling yotta search failed!")
return result
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:25,代码来源:mbed_target_info.py
示例3: get_binary_host_tests_dir
def get_binary_host_tests_dir(binary_path, level=2):
"""! Checks if in binary test group has host_tests directory
@param binary_path Path to binary in test specification
@param level How many directories above test host_tests dir exists
@return Path to host_tests dir in group binary belongs too, None if not found
"""
try:
binary_path_norm = os.path.normpath(binary_path)
current_path_norm = os.path.normpath(os.getcwd())
host_tests_path = binary_path_norm.split(os.sep)[:-level] + ['host_tests']
build_dir_candidates = ['BUILD', '.build']
idx = None
for build_dir_candidate in build_dir_candidates:
if build_dir_candidate in host_tests_path:
idx = host_tests_path.index(build_dir_candidate)
break
if idx is None:
msg = 'The following directories were not in the path: %s' % (', '.join(build_dir_candidates))
raise Exception(msg)
# Cut /<build dir>/tests/TOOLCHAIN/TARGET
host_tests_path = host_tests_path[:idx] + host_tests_path[idx+4:]
host_tests_path = os.sep.join(host_tests_path)
except Exception as e:
gt_logger.gt_log_warn("there was a problem while looking for host_tests directory")
gt_logger.gt_log_tab("level %d, path: %s"% (level, binary_path))
gt_logger.gt_log_tab(str(e))
return None
if os.path.isdir(host_tests_path):
return host_tests_path
return None
开发者ID:LiyouZhou,项目名称:greentea,代码行数:34,代码来源:mbed_test_api.py
示例4: get_mbed_targets_from_yotta_local_module
def get_mbed_targets_from_yotta_local_module(mbed_classic_name, yotta_targets_path='./yotta_targets'):
"""! Function is parsing local yotta targets to fetch matching mbed device target's name
@return Function returns list of possible targets or empty list if value not found
"""
result = []
if os.path.exists(yotta_targets_path):
# All local diorectories with yotta targets
target_dirs = [target_dir_name for target_dir_name in os.listdir(yotta_targets_path) if os.path.isdir(os.path.join(yotta_targets_path, target_dir_name))]
gt_logger.gt_log("local yotta target search in '%s' for compatible mbed-target '%s'"% (gt_logger.gt_bright(yotta_targets_path), gt_logger.gt_bright(mbed_classic_name.lower().strip())))
for target_dir in target_dirs:
path = os.path.join(yotta_targets_path, target_dir, 'target.json')
try:
with open(path, 'r') as data_file:
target_json_data = json.load(data_file)
yotta_target_name = parse_mbed_target_from_target_json(mbed_classic_name, target_json_data)
if yotta_target_name:
target_dir_name = os.path.join(yotta_targets_path, target_dir)
gt_logger.gt_log_tab("inside '%s' found compatible target '%s'"% (gt_logger.gt_bright(target_dir_name), gt_logger.gt_bright(yotta_target_name)))
result.append(yotta_target_name)
except IOError as e:
gt_logger.gt_log_err(str(e))
return result
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:25,代码来源:mbed_target_info.py
示例5: merge_multiple_test_specifications_from_file_list
def merge_multiple_test_specifications_from_file_list(test_spec_file_name_list):
"""! For each file in test_spec_file_name_list merge all test specifications into one
@param test_spec_file_name_list List of paths to different test specifications
@return TestSpec object with all test specification data inside
"""
def copy_builds_between_test_specs(source, destination):
"""! Copies build key-value pairs between two test_spec dicts
@param source Source dictionary
@param destination Dictionary with will be applied with 'builds' key-values
@return Dictionary with merged source
"""
result = destination.copy()
if 'builds' in source and 'builds' in destination:
for k in source['builds']:
result['builds'][k] = source['builds'][k]
return result
merged_test_spec = {}
for test_spec_file in test_spec_file_name_list:
gt_logger.gt_log_tab("using '%s'"% test_spec_file)
try:
with open(test_spec_file, 'r') as f:
test_spec_data = json.load(f)
merged_test_spec = copy_builds_between_test_specs(merged_test_spec, test_spec_data)
except Exception as e:
gt_logger.gt_log_err("Unexpected error while processing '%s' test specification file"% test_spec_file)
gt_logger.gt_log_tab(str(e))
merged_test_spec = {}
test_spec = TestSpec()
test_spec.parse(merged_test_spec)
return test_spec
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:33,代码来源:mbed_test_api.py
示例6: get_mbed_target_call_yotta_target
def get_mbed_target_call_yotta_target():
"""! Calls yotta's 'yotta target' command to get information about
"""
cmd = ['yotta', '--plain', 'target']
gt_logger.gt_log("checking yotta target in current directory")
gt_logger.gt_log_tab("calling yotta: %s"% " ".join(cmd))
_stdout, _stderr, _ret = run_cli_process(cmd)
return _stdout, _stderr, _ret
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:8,代码来源:mbed_target_info.py
示例7: format_before_run
def format_before_run(cmd, format, verbose=False):
if format:
# We will expand first
cmd_expand = GreenteaCliTestHook.expand_parameters(cmd, format)
if cmd_expand:
cmd = cmd_expand
if verbose:
gt_logger.gt_log_tab("hook expanded: %s"% cmd)
cmd = cmd.format(**format)
if verbose:
gt_logger.gt_log_tab("hook formated: %s"% cmd)
return cmd
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:13,代码来源:mbed_greentea_hooks.py
示例8: list_binaries_for_builds
def list_binaries_for_builds(test_spec, verbose_footer=False):
"""! Parse test spec and list binaries (BOOTABLE) in lexicographical order
@param test_spec Test specification object
@param verbose_footer Prints additional "how to use" Greentea footer
"""
test_builds = test_spec.get_test_builds()
for tb in test_builds:
gt_logger.gt_log("available tests for built '%s', location '%s'"% (tb.get_name(), tb.get_path()))
for tc in sorted(tb.get_tests().keys()):
gt_logger.gt_log_tab("test '%s'"% tc)
if verbose_footer:
print
print "Example: execute 'mbedgt -t BUILD_NAME -n TEST_NAME' to run test TEST_NAME for build TARGET_NAME in current test specification"
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:14,代码来源:cmake_handlers.py
示例9: run_command
def run_command(cmd):
"""! Runs command and prints proc stdout on screen
@paran cmd List with command line to execute e.g. ['ls', '-l]
@return Value returned by subprocess.Popen, if failed return None
"""
try:
p = Popen(cmd,
stdout=PIPE,
stderr=STDOUT)
except OSError as e:
gt_logger.gt_log_err("run_host_test.run_command(%s) failed!"% str(cmd))
gt_logger.gt_log_tab(str(e))
return None
return p
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:14,代码来源:mbed_test_api.py
示例10: get_coverage_data
def get_coverage_data(build_path, output):
# Example GCOV output
# [1456840876.73][CONN][RXD] {{__coverage_start;c:\Work\core-util/source/PoolAllocator.cpp.gcda;6164636772393034c2733f32...a33e...b9}}
gt_logger.gt_log("checking for GCOV data...")
re_gcov = re.compile(r"^\[(\d+\.\d+)\][^\{]+\{\{(__coverage_start);([^;]+);([^}]+)\}\}$")
for line in output.splitlines():
m = re_gcov.search(line)
if m:
_, _, gcov_path, gcov_payload = m.groups()
try:
bin_gcov_payload = coverage_pack_hex_payload(gcov_payload)
coverage_dump_file(build_path, gcov_path, bin_gcov_payload)
except Exception as e:
gt_logger.gt_log_err("error while handling GCOV data: " + str(e))
gt_logger.gt_log_tab("storing %d bytes in '%s'"% (len(bin_gcov_payload), gcov_path))
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:15,代码来源:mbed_test_api.py
示例11: run
def run(self, format=None):
"""! Runs hook after command is formated with in-place {tags}
@format Pass format dictionary to replace hook {tags} with real values
@param format Used to format string with cmd, notation used is e.g: {build_name}
"""
gt_logger.gt_log("hook '%s' execution"% self.name)
cmd = self.format_before_run(self.cmd, format)
gt_logger.gt_log_tab("hook command: %s"% cmd)
(_stdout, _stderr, ret) = self.run_cli_process(cmd)
if _stdout:
print _stdout
if ret:
gt_logger.gt_log_err("hook exited with error: %d, dumping stderr..."% ret)
print _stderr
return ret
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:15,代码来源:mbed_greentea_hooks.py
示例12: get_mbed_target_from_current_dir
def get_mbed_target_from_current_dir():
"""! Function uses yotta target command to check current target
@return Returns current target or None if target not found (e.g. not yotta package)
"""
result = None
cmd = ['yotta', '--plain', 'target']
gt_logger.gt_log("checking yotta target in current directory")
gt_logger.gt_log_tab("calling yotta: %s"% " ".join(cmd))
_stdout, _stderr, _ret = run_cli_process(cmd)
if not _ret:
for line in _stdout.splitlines():
target = parse_yotta_target_cmd_output(line)
if target:
result = target
break
return result
开发者ID:panche85,项目名称:greentea,代码行数:16,代码来源:mbed_target_info.py
示例13: build_with_yotta
def build_with_yotta(yotta_target_name, verbose = False, build_to_release = False, build_to_debug = False):
cmd = ["yotta"] # "yotta %s --target=%s,* build"
if verbose:
cmd.append("-v")
cmd.append("--target=%s,*"% yotta_target_name)
cmd.append("build")
if build_to_release:
cmd.append("-r")
elif build_to_debug:
cmd.append("-d")
gt_logger.gt_log("building your sources and tests with yotta...")
gt_logger.gt_log_tab("calling yotta: %s"% (" ".join(cmd)))
yotta_result, yotta_ret = run_cli_command(cmd, shell=False, verbose=verbose)
if yotta_result:
gt_logger.gt_log("yotta build for target '%s' was successful"% gt_logger.gt_bright(yotta_target_name))
else:
gt_logger.gt_log_err("yotta build failed!")
return yotta_result, yotta_ret
开发者ID:HamedSiasi,项目名称:greentea,代码行数:19,代码来源:mbed_yotta_api.py
示例14: filter_ready_devices
def filter_ready_devices(mbeds_list):
"""! Filters list of MUTs to check if all MUTs are correctly detected with mbed-ls module.
@details This function logs a lot to help users figure out root cause of their problems
@param mbeds_list List of MUTs to verify
@return Tuple of (MUTS detected correctly, MUTs not detected fully)
"""
ready_mbed_devices = [] # Devices which can be used (are fully detected)
not_ready_mbed_devices = [] # Devices which can't be used (are not fully detected)
gt_logger.gt_log("detected %d device%s" % (len(mbeds_list), "s" if len(mbeds_list) != 1 else ""))
for mut in mbeds_list:
if not all(mut.values()):
gt_logger.gt_log_err("mbed-ls was unable to enumerate correctly all properties of the device!")
gt_logger.gt_log_tab(
"check with 'mbedls -j' command if all properties of your device are enumerated properly"
)
for prop in mut:
if not mut[prop]:
# Adding MUT to NOT DETECTED FULLY list
if mut not in not_ready_mbed_devices:
not_ready_mbed_devices.append(mut)
gt_logger.gt_log_err("mbed-ls property '%s' is '%s'" % (prop, str(mut[prop])))
if prop == "serial_port":
gt_logger.gt_log_tab("check if your serial port driver is correctly installed!")
if prop == "mount_point":
gt_logger.gt_log_tab("check if your OS can detect and mount mbed device mount point!")
else:
# Adding MUT to DETECTED CORRECTLY list
ready_mbed_devices.append(mut)
return (ready_mbed_devices, not_ready_mbed_devices)
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:30,代码来源:mbed_greentea_cli.py
示例15: get_binary_host_tests_dir
def get_binary_host_tests_dir(binary_path, level=2):
"""! Checks if in binary test group has host_tests directory
@param binary_path Path to binary in test specification
@param level How many directories above test host_tests dir exists
@return Path to host_tests dir in group binary belongs too, None if not found
"""
try:
binary_path_norm = os.path.normpath(binary_path)
current_path_norm = os.path.normpath(os.getcwd())
host_tests_path = binary_path_norm.split(os.sep)[:-level] + ['host_tests']
idx = host_tests_path.index('.build')
# Cut /.build/tests/TOOLCHAIN/TARGET
host_tests_path = host_tests_path[:idx] + host_tests_path[idx+4:]
host_tests_path = os.sep.join(host_tests_path)
except Exception as e:
gt_logger.gt_log_warn("there was a problem while looking for host_tests directory")
gt_logger.gt_log_tab("level %d, path: %s"% (level, binary_path))
gt_logger.gt_log_tab(str(e))
return None
if os.path.isdir(host_tests_path):
return host_tests_path
return None
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:24,代码来源:mbed_test_api.py
示例16: create_filtered_test_list
def create_filtered_test_list(ctest_test_list, test_by_names, skip_test):
filtered_ctest_test_list = ctest_test_list
test_list = None
invalid_test_names = []
if filtered_ctest_test_list is None:
return {}
elif test_by_names:
filtered_ctest_test_list = {} # Subset of 'ctest_test_list'
test_list = test_by_names.split(',')
gt_logger.gt_log("test case filter (specified with -n option)")
for test_name in test_list:
if test_name not in ctest_test_list:
invalid_test_names.append(test_name)
else:
gt_logger.gt_log_tab("test filtered in '%s'"% gt_logger.gt_bright(test_name))
filtered_ctest_test_list[test_name] = ctest_test_list[test_name]
elif skip_test:
test_list = skip_test.split(',')
gt_logger.gt_log("test case filter (specified with -i option)")
for test_name in test_list:
if test_name not in ctest_test_list:
invalid_test_names.append(test_name)
else:
gt_logger.gt_log_tab("test '%s' skipped"% gt_logger.gt_bright(test_name))
del filtered_ctest_test_list[test_name]
if invalid_test_names:
opt_to_print = '-n' if test_by_names else 'skip-test'
gt_logger.gt_log_warn("invalid test case names (specified with '%s' option)"% opt_to_print)
for test_name in invalid_test_names:
gt_logger.gt_log_warn("test name '%s' not found in CTestTestFile.cmake (specified with '%s' option)"% (gt_logger.gt_bright(test_name),opt_to_print))
gt_logger.gt_log_tab("note: test case names are case sensitive")
gt_logger.gt_log_tab("note: see list of available test cases below")
list_binaries_for_targets(verbose_footer=False)
return filtered_ctest_test_list
开发者ID:HamedSiasi,项目名称:greentea,代码行数:37,代码来源:mbed_greentea_cli.py
示例17: create_filtered_test_list
def create_filtered_test_list(ctest_test_list, test_by_names, skip_test, test_spec=None):
"""! Filters test case list (filtered with switch -n) and return filtered list.
@ctest_test_list List iof tests, originally from CTestTestFile.cmake in yotta module. Now comes from test specification
@test_by_names Command line switch -n <test_by_names>
@skip_test Command line switch -i <skip_test>
@param test_spec Test specification object loaded with --test-spec switch
@return
"""
def filter_names_by_prefix(test_case_name_list, prefix_name):
"""!
@param test_case_name_list List of all test cases
@param prefix_name Prefix of test name we are looking for
@result Set with names of test names starting with 'prefix_name'
"""
result = list()
for test_name in test_case_name_list:
if test_name.startswith(prefix_name):
result.append(test_name)
return sorted(result)
filtered_ctest_test_list = ctest_test_list
test_list = None
invalid_test_names = []
if filtered_ctest_test_list is None:
return {}
if test_by_names:
filtered_ctest_test_list = {} # Subset of 'ctest_test_list'
test_list = test_by_names.split(",")
gt_logger.gt_log("test case filter (specified with -n option)")
for test_name in set(test_list):
if test_name.endswith("*"):
# This 'star-sufix' filter allows users to filter tests with fixed prefixes
# Example: -n 'TESTS-mbed_drivers* will filter all test cases with name starting with 'TESTS-mbed_drivers'
for test_name_filtered in filter_names_by_prefix(ctest_test_list.keys(), test_name[:-1]):
gt_logger.gt_log_tab("test filtered in '%s'" % gt_logger.gt_bright(test_name_filtered))
filtered_ctest_test_list[test_name_filtered] = ctest_test_list[test_name_filtered]
elif test_name not in ctest_test_list:
invalid_test_names.append(test_name)
else:
gt_logger.gt_log_tab("test filtered in '%s'" % gt_logger.gt_bright(test_name))
filtered_ctest_test_list[test_name] = ctest_test_list[test_name]
if skip_test:
test_list = skip_test.split(",")
gt_logger.gt_log("test case filter (specified with -i option)")
for test_name in set(test_list):
if test_name not in ctest_test_list:
invalid_test_names.append(test_name)
else:
gt_logger.gt_log_tab("test filtered out '%s'" % gt_logger.gt_bright(test_name))
del filtered_ctest_test_list[test_name]
if invalid_test_names:
opt_to_print = "-n" if test_by_names else "skip-test"
gt_logger.gt_log_warn("invalid test case names (specified with '%s' option)" % opt_to_print)
for test_name in invalid_test_names:
if test_spec:
test_spec_name = test_spec.test_spec_filename
gt_logger.gt_log_warn(
"test name '%s' not found in '%s' (specified with --test-spec option)"
% (gt_logger.gt_bright(test_name), gt_logger.gt_bright(test_spec_name))
)
else:
gt_logger.gt_log_warn(
"test name '%s' not found in CTestTestFile.cmake (specified with '%s' option)"
% (gt_logger.gt_bright(test_name), opt_to_print)
)
gt_logger.gt_log_tab("note: test case names are case sensitive")
gt_logger.gt_log_tab("note: see list of available test cases below")
# Print available test suite names (binary names user can use with -n
if test_spec:
list_binaries_for_builds(test_spec)
else:
list_binaries_for_targets()
return filtered_ctest_test_list
开发者ID:ConorPKeegan,项目名称:greentea,代码行数:80,代码来源:mbed_greentea_cli.py
示例18: run_test_thread
def run_test_thread(test_result_queue, test_queue, opts, mut, mut_info, yotta_target_name, greentea_hooks):
test_exec_retcode = 0
test_platforms_match = 0
test_report = {}
yotta_config_baudrate = None # Default serial port baudrate forced by configuration
yotta_config = YottaConfig()
yotta_config.init(yotta_target_name)
yotta_config_baudrate = yotta_config.get_baudrate()
while not test_queue.empty():
try:
test = test_queue.get(False)
except Exception as e:
gt_logger.gt_log_err(str(e))
break
test_result = 'SKIPPED'
disk = mut['mount_point']
port = mut['serial_port']
micro = mut['platform_name']
program_cycle_s = mut_info['properties']['program_cycle_s']
copy_method = opts.copy_method if opts.copy_method else 'shell'
verbose = opts.verbose_test_result_only
enum_host_tests_path = get_local_host_tests_dir(opts.enum_host_tests)
# We will force configuration specific baudrate
if port:
port = "%s:%d"% (port, yotta_config_baudrate)
test_platforms_match += 1
host_test_result = run_host_test(test['image_path'],
disk,
port,
yotta_target_name,
mut['target_id'],
micro=micro,
copy_method=copy_method,
program_cycle_s=program_cycle_s,
digest_source=opts.digest_source,
json_test_cfg=opts.json_test_configuration,
enum_host_tests_path=enum_host_tests_path,
verbose=verbose)
# Some error in htrun, abort test execution
if host_test_result < 0:
break
single_test_result, single_test_output, single_testduration, single_timeout, result_test_cases, test_cases_summary = host_test_result
test_result = single_test_result
build_path = os.path.join("./build", yotta_target_name)
build_path_abs = os.path.abspath(build_path)
if single_test_result != TEST_RESULT_OK:
test_exec_retcode += 1
if single_test_result in [TEST_RESULT_OK, TEST_RESULT_FAIL]:
if greentea_hooks:
# Test was successful
# We can execute test hook just after test is finished ('hook_test_end')
format = {
"test_name": test['test_bin'],
"test_bin_name": os.path.basename(test['image_path']),
"image_path": test['image_path'],
"build_path": build_path,
"build_path_abs": build_path_abs,
"yotta_target_name": yotta_target_name,
}
greentea_hooks.run_hook_ext('hook_test_end', format)
# Update report for optional reporting feature
test_suite_name = test['test_bin'].lower()
if yotta_target_name not in test_report:
test_report[yotta_target_name] = {}
if test_suite_name not in test_report[yotta_target_name]:
test_report[yotta_target_name][test_suite_name] = {}
if not test_cases_summary and not result_test_cases:
gt_logger.gt_log_warn("test case summary event not found")
gt_logger.gt_log_tab("no test case report present, assuming test suite to be a single test case!")
# We will map test suite result to test case to
# output valid test case in report
# Generate "artificial" test case name from test suite name#
# E.g:
# mbed-drivers-test-dev_null -> dev_null
test_case_name = test_suite_name
test_str_idx = test_suite_name.find("-test-")
if test_str_idx != -1:
test_case_name = test_case_name[test_str_idx + 6:]
gt_logger.gt_log_tab("test suite: %s"% test_suite_name)
gt_logger.gt_log_tab("test case: %s"% test_case_name)
# Test case result: OK, FAIL or ERROR
#.........这里部分代码省略.........
开发者ID:HamedSiasi,项目名称:greentea,代码行数:101,代码来源:mbed_greentea_cli.py
示例19: main_cli
def main_cli(opts, args, gt_instance_uuid=None):
"""! This is main CLI function with all command line parameters
@details This function also implements CLI workflow depending on CLI parameters inputed
@return This function doesn't return, it exits to environment with proper success code
"""
if not MBED_LMTOOLS:
gt_logger.gt_log_err("error: mbed-ls proprietary module not installed")
return (-1)
if not MBED_HOST_TESTS:
gt_logger.gt_log_err("error: mbed-host-tests proprietary module not installed")
return (-1)
# This is how you magically control colours in this piece of art software
gt_logger.colorful(not opts.plain)
# List available test binaries (names, no extension)
if opts.list_binaries:
list_binaries_for_targets()
return (0)
# Prints version and exits
if opts.version:
print_version()
return (0)
# We will load hooks from JSON file to support extra behaviour during test execution
greentea_hooks = GreenteaHooks(opts.hooks_json) if opts.hooks_json else None
# Capture alternative test console inputs, used e.g. in 'yotta test command'
if opts.digest_source:
enum_host_tests_path = get_local_host_tests_dir(opts.enum_host_tests)
host_test_result = run_host_test(None,
None,
None,
None,
None,
hooks=greentea_hooks,
digest_source=opts.digest_source,
enum_host_tests_path=enum_host_tests_path,
verbose=opts.verbose_test_result_only)
single_test_result, single_test_output, single_testduration, single_timeout, result_test_cases, test_cases_summary = host_test_result
status = TEST_RESULTS.index(single_test_result) if single_test_result in TEST_RESULTS else -1
return (status)
### Read yotta module basic information
yotta_module = YottaModule()
yotta_module.init() # Read actual yotta module data
# Check if NO greentea-client is in module.json of repo to test, if so abort
if not yotta_module.check_greentea_client():
gt_logger.gt_log("""
*****************************************************************************************
* We've noticed that NO 'greentea-client' module is specified in *
* dependency/testDependency section of this module's 'module.json' file. *
* *
* This version of Greentea requires 'greentea-client' module. *
* Please downgrade to Greentea before v0.2.0: *
* *
* $ pip install "mbed-greentea<0.2.0" --upgrade *
* *
* or port your tests to new Async model: https://github.com/ARMmbed/greentea/pull/78 *
*****************************************************************************************
""")
return (0)
### Selecting yotta targets to process
yt_targets = [] # List of yotta targets specified by user used to process during this run
if opts.list_of_targets:
yt_targets = opts.list_of_targets.split(',')
else:
# Trying to use locally set yotta target
gt_logger.gt_log("checking for yotta target in current directory")
gt_logger.gt_log_tab("reason: no --target switch set")
current_target = get_mbed_target_from_current_dir()
if current_target:
gt_logger.gt_log("assuming default target as '%s'"% gt_logger.gt_bright(current_target))
# Assuming first target printed by 'yotta search' will be used
yt_targets = [current_target]
else:
gt_logger.gt_log_tab("yotta target in current directory is not set")
gt_logger.gt_log_err("yotta target is not specified. Use '%s' or '%s' command to set target"%
(
gt_logger.gt_bright('mbedgt -t <yotta_target>'),
gt_logger.gt_bright('yotta target <yotta_target>')
))
return (-1)
### Query with mbedls for available mbed-enabled devices
gt_logger.gt_log("detecting connected mbed-enabled devices...")
# Detect devices connected to system
mbeds = mbed_lstools.create()
mbeds_list = mbeds.list_mbeds_ext()
ready_mbed_devices = [] # Devices which can be used (are fully detected)
if mbeds_list:
#.........这里部分代码省略.........
开发者ID:HamedSiasi,项目名称:greentea,代码行数:101,代码来源:mbed_greentea_cli.py
示例20: get_local_host_tests_dir
from mbed_greentea.mbed_greentea_dlm import greentea_get_app_sem
from mbed_greentea.mbed_greentea_dlm import greentea_update_kettle
from mbed_greentea.mbed_greentea_dlm import greentea_clean_kettle
from mbed_greentea.mbed_yotta_api import build_with_yotta
from mbed_greentea.mbed_greentea_hooks import GreenteaHooks
from mbed_greentea.mbed_yotta_module_parse import YottaConfig
from mbed_greentea.mbed_yotta_module_parse import YottaModule
try:
import mbed_lstools
import mbed_host_tests
except ImportError as e:
gt_logger.gt_log_err("Not all required Python modules were imported!")
gt_logger.gt_log_err(str(e))
gt_logger.gt_log("Check if:")
gt_logger.gt_log_tab("1. You've correctly installed dependency module using setup tools or pip:")
gt_logger.gt_log_tab("* python setup.py install", tab_count=2)
gt_logger.gt_log_tab("* pip install <module-name>", tab_count=2)
gt_logger.gt_log_tab("2. There are no errors preventing import in dependency modules")
gt_logger.gt_log_tab("See: https://github.com/ARMmbed/greentea#installing-greentea")
exit(-2342)
MBED_LMTOOLS = 'mbed_lstools' in sys.modules
MBED_HOST_TESTS = 'mbed_host_tests' in sys.modules
RET_NO_DEVICES = 1001
RET_YOTTA_BUILD_FAIL = -1
LOCAL_HOST_TESTS_DIR = './test/host_tests' # Used by mbedhtrun -e <dir>
def get_local_host_tests_dir(path):
"""! Forms path to local host tests. Performs additional basic checks if directory exists etc.
开发者ID:HamedSiasi,项目名称:greentea,代码行数:31,代码来源:mbed_greentea_cli.py
注:本文中的mbed_greentea.mbed_greentea_log.gt_logger.gt_log_tab函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论