Lines Matching +full:bad +full:- +full:key +full:- +full:1
4 * SPDX-License-Identifier: Apache-2.0
12 #include <zephyr/sys/libc-hooks.h>
44 #define NUM_ITER_PER_SUITE 1
45 #define NUM_ITER_PER_TEST 1
102 if (!ret && mock_status == 1) { in cleanup_test()
103 PRINT_DATA("Test %s failed: Unused mock parameter values\n", test->name); in cleanup_test()
106 PRINT_DATA("Test %s failed: Unused mock return values\n", test->name); in cleanup_test()
117 #if defined(CONFIG_SMP) && (CONFIG_MP_MAX_NUM_CPUS > 1)
118 #define MAX_NUM_CPUHOLD (CONFIG_MP_MAX_NUM_CPUS - 1)
126 static struct cpuhold_pool_item cpuhold_pool_items[MAX_NUM_CPUHOLD + 1];
128 K_KERNEL_STACK_ARRAY_DEFINE(cpuhold_stacks, MAX_NUM_CPUHOLD + 1, CPUHOLD_STACK_SZ);
143 return -1; in find_unused_thread()
157 unsigned int key = arch_irq_lock(); in wait_for_thread_to_switch_out() local
158 volatile void **shp = (void *)&thread->switch_handle; in wait_for_thread_to_switch_out()
165 * non-null. in wait_for_thread_to_switch_out()
169 arch_irq_unlock(key); in wait_for_thread_to_switch_out()
172 /* "Holds" a CPU for use with the "1cpu" test cases. Note that we
190 __ASSERT_NO_MSG(i != -1); in cpu_hold()
200 * Busy-wait until we know the spawned thread is running to in cpu_hold()
227 unsigned int key = arch_irq_lock(); in cpu_hold() local
233 * We'll be spinning with IRQs disabled. The flush-your-FPU request in cpu_hold()
238 k_float_disable(_current_cpu->arch.fpu_owner); in cpu_hold()
246 * for long-running test cases tends to overload the CI system in cpu_hold()
250 dt = k_uptime_get_32() - start_ms; in cpu_hold()
251 zassert_true(dt < CONFIG_ZTEST_CPU_HOLD_TIME_MS, "1cpu test took too long (%d ms)", dt); in cpu_hold()
252 arch_irq_unlock(key); in cpu_hold()
254 #endif /* CONFIG_SMP && (CONFIG_MP_MAX_NUM_CPUS > 1) */
258 #if defined(CONFIG_SMP) && (CONFIG_MP_MAX_NUM_CPUS > 1) in z_impl_z_test_1cpu_start()
262 cpuhold_active = 1; in z_impl_z_test_1cpu_start()
266 /* Spawn N-1 threads to "hold" the other CPUs, waiting for in z_impl_z_test_1cpu_start()
269 for (int i = 0; i < num_cpus - 1; i++) { in z_impl_z_test_1cpu_start()
272 __ASSERT_NO_MSG(j != -1); in z_impl_z_test_1cpu_start()
285 #if defined(CONFIG_SMP) && (CONFIG_MP_MAX_NUM_CPUS > 1) in z_impl_z_test_1cpu_stop()
316 if (is_before && rule->before_each) { in run_test_rules()
317 rule->before_each(test, data); in run_test_rules()
318 } else if (!is_before && rule->after_each) { in run_test_rules()
319 rule->after_each(test, data); in run_test_rules()
328 test->test(data); in run_test_functions()
335 enum ztest_expected_result expected_result = -1; in get_final_test_result()
340 if (strcmp(expectation->test_name, test->name) == 0 && in get_final_test_result()
341 strcmp(expectation->test_suite_name, test->test_suite_name) == 0) { in get_final_test_result()
342 expected_result = expectation->expected_result; in get_final_test_result()
349 * - If we got a failure, return TC_PASS in get_final_test_result()
350 * - Otherwise force a failure in get_final_test_result()
356 * - If we got a skip, return TC_PASS in get_final_test_result()
357 * - Otherwise force a failure in get_final_test_result()
408 #include <setjmp.h> /* parasoft-suppress MISRAC2012-RULE_21_4-a MISRAC2012-RULE_21_4-b*/
426 longjmp(test_suite_fail, 1); in ztest_test_fail()
430 longjmp(test_fail, 1); in ztest_test_fail()
436 longjmp(stack_fail, 1); in ztest_test_fail()
444 longjmp(test_pass, 1); in ztest_test_pass()
448 longjmp(stack_fail, 1); in ztest_test_pass()
458 longjmp(test_skip, 1); in ztest_test_skip()
462 longjmp(stack_fail, 1); in ztest_test_skip()
484 longjmp(stack_fail, 1); in ztest_test_expect_fail()
492 TC_START(test->name); in run_test()
516 if (suite->before) { in run_test()
517 suite->before(data); in run_test()
528 if (suite->after != NULL) { in run_test()
529 suite->after(data); in run_test()
537 Z_TC_END_RESULT(ret, test->name); in run_test()
539 test_status = 1; in run_test()
551 #define FAIL_FAST 1
650 const bool config_user_mode = FIELD_GET(K_USER, test->thread_options) != 0; in test_cb()
655 if (suite->before) { in test_cb()
656 suite->before(/*data=*/c); in test_cb()
673 TC_START(test->name); in run_test()
686 k_thread_access_grant(&ztest_thread, suite, test, suite->stats); in run_test()
687 if (test->name != NULL) { in run_test()
688 k_thread_name_set(&ztest_thread, test->name); in run_test()
701 if (suite->before) { in run_test()
702 suite->before(data); in run_test()
708 if (suite->after != NULL) { in run_test()
709 suite->after(data); in run_test()
714 if (tc_spend_time > test->stats->duration_worst_ms) { in run_test()
715 test->stats->duration_worst_ms = tc_spend_time; in run_test()
739 Z_TC_END_RESULT(ret, test->name); in run_test()
741 test_status = 1; in run_test()
754 if (strcmp(name, node->name) == 0) { in ztest_find_test_suite()
764 struct ztest_unit_test *test = (prev == NULL) ? _ztest_unit_test_list_start : prev + 1; in z_ztest_get_next_test()
767 if (strcmp(suite, test->test_suite_name) == 0) { in z_ztest_get_next_test()
786 for (size_t i = num_items - 1; i > 0; i--) { in z_ztest_shuffle()
787 int j = sys_rand32_get() % (i + 1); in z_ztest_shuffle()
813 return -1; in z_ztest_run_test_suite_ptr()
821 exit(1); in z_ztest_run_test_suite_ptr()
827 TC_SUITE_START(suite->name); in z_ztest_run_test_suite_ptr()
836 if (test_result != ZTEST_RESULT_SUITE_FAIL && suite->setup != NULL) { in z_ztest_run_test_suite_ptr()
837 data = suite->setup(); in z_ztest_run_test_suite_ptr()
854 if (strcmp(suite->name, test->test_suite_name) != 0) { in z_ztest_run_test_suite_ptr()
857 if (ztest_api.should_test_run(suite->name, test->name)) { in z_ztest_run_test_suite_ptr()
858 test->stats->run_count++; in z_ztest_run_test_suite_ptr()
861 test->stats->pass_count++; in z_ztest_run_test_suite_ptr()
863 test->stats->skip_count++; in z_ztest_run_test_suite_ptr()
865 test->stats->fail_count++; in z_ztest_run_test_suite_ptr()
877 while (((test = z_ztest_get_next_test(suite->name, test)) != NULL)) { in z_ztest_run_test_suite_ptr()
878 if (ztest_api.should_test_run(suite->name, test->name)) { in z_ztest_run_test_suite_ptr()
879 test->stats->run_count++; in z_ztest_run_test_suite_ptr()
882 test->stats->pass_count++; in z_ztest_run_test_suite_ptr()
884 test->stats->skip_count++; in z_ztest_run_test_suite_ptr()
886 test->stats->fail_count++; in z_ztest_run_test_suite_ptr()
904 TC_SUITE_END(suite->name, (fail > 0 ? TC_FAIL : TC_PASS)); in z_ztest_run_test_suite_ptr()
906 if (suite->teardown != NULL) { in z_ztest_run_test_suite_ptr()
907 suite->teardown(data); in z_ztest_run_test_suite_ptr()
938 while (((test = z_ztest_get_next_test(suite->name, test)) != NULL)) { in __ztest_show_suite_summary_oneline()
940 suite_duration_worst_ms += test->stats->duration_worst_ms; in __ztest_show_suite_summary_oneline()
941 if (test->stats->skip_count == test->stats->run_count) { in __ztest_show_suite_summary_oneline()
943 } else if (test->stats->pass_count == test->stats->run_count) { in __ztest_show_suite_summary_oneline()
955 effective_total = distinct_total - distinct_skip; in __ztest_show_suite_summary_oneline()
959 passrate_minor = (expanded_passrate - passrate_major * 1000) / 10; in __ztest_show_suite_summary_oneline()
960 passrate_tail = expanded_passrate - passrate_major * 1000 - passrate_minor * 10; in __ztest_show_suite_summary_oneline()
966 TC_SUMMARY_PRINT("SUITE %s - %3d.%02d%% [%s]: pass = %d, fail = %d, " in __ztest_show_suite_summary_oneline()
969 suite->name, distinct_pass, distinct_fail, distinct_skip, distinct_total, in __ztest_show_suite_summary_oneline()
984 while (((test = z_ztest_get_next_test(suite->name, test)) != NULL)) { in __ztest_show_suite_summary_verbose()
985 if (test->stats->skip_count == test->stats->run_count) { in __ztest_show_suite_summary_verbose()
987 } else if (test->stats->pass_count == test->stats->run_count) { in __ztest_show_suite_summary_verbose()
989 } else if (test->stats->pass_count == 0) { in __ztest_show_suite_summary_verbose()
997 " - %s - [%s.%s] - (Failed %d of %d attempts)" in __ztest_show_suite_summary_verbose()
998 " - duration = %u.%03u seconds\n", in __ztest_show_suite_summary_verbose()
999 TC_RESULT_TO_STR(tc_result), test->test_suite_name, test->name, in __ztest_show_suite_summary_verbose()
1000 test->stats->run_count - test->stats->pass_count, in __ztest_show_suite_summary_verbose()
1001 test->stats->run_count, test->stats->duration_worst_ms / 1000, in __ztest_show_suite_summary_verbose()
1002 test->stats->duration_worst_ms % 1000); in __ztest_show_suite_summary_verbose()
1004 TC_SUMMARY_PRINT(" - %s - [%s.%s] duration = %u.%03u seconds\n", in __ztest_show_suite_summary_verbose()
1005 TC_RESULT_TO_STR(tc_result), test->test_suite_name, in __ztest_show_suite_summary_verbose()
1006 test->name, test->stats->duration_worst_ms / 1000, in __ztest_show_suite_summary_verbose()
1007 test->stats->duration_worst_ms % 1000); in __ztest_show_suite_summary_verbose()
1029 TC_SUMMARY_PRINT("\n------ TESTSUITE SUMMARY START ------\n\n"); in __ztest_show_suite_summary()
1037 TC_SUMMARY_PRINT("------ TESTSUITE SUMMARY END ------\n\n"); in __ztest_show_suite_summary()
1044 struct ztest_suite_stats *stats = ptr->stats; in __ztest_run_test_suite()
1053 stats->run_count++; in __ztest_run_test_suite()
1054 stats->fail_count += (fail != 0) ? 1 : 0; in __ztest_run_test_suite()
1056 stats->skip_count++; in __ztest_run_test_suite()
1142 if (suite->stats->run_count < 1) { in ztest_verify_all_test_suites_ran()
1143 PRINT_DATA("ERROR: Test suite '%s' did not run.\n", suite->name); in ztest_verify_all_test_suites_ran()
1149 suite = ztest_find_test_suite(test->test_suite_name); in ztest_verify_all_test_suites_ran()
1154 test->name, test->test_suite_name); in ztest_verify_all_test_suites_ran()
1165 if (test->stats->fail_count + test->stats->pass_count + test->stats->skip_count != in ztest_verify_all_test_suites_ran()
1166 test->stats->run_count) { in ztest_verify_all_test_suites_ran()
1167 PRINT_DATA("Bad stats for %s.%s\n", test->test_suite_name, test->name); in ztest_verify_all_test_suites_ran()
1168 test_status = 1; in ztest_verify_all_test_suites_ran()
1199 uint32_t key = irq_lock(); in main() local
1201 while (1) { in main()
1204 irq_unlock(key); in main()
1218 shell_print(sh, "%s", suite->name); in cmd_list_suites()
1231 while ((test = z_ztest_get_next_test(ptr->name, test)) != NULL) { in cmd_list_cases()
1232 shell_print(sh, "%s::%s", test->test_suite_name, test->name); in cmd_list_cases()
1244 ztest_run_all(NULL, false, 1, 1); in cmd_runall()
1262 int suite_iter = 1; in cmd_shuffle()
1263 int case_iter = 1; in cmd_shuffle()
1265 while ((opt = getopt_long(argc, argv, "s:c:", long_options, &opt_index)) != -1) { in cmd_shuffle()
1269 val = atoi(state->optarg); in cmd_shuffle()
1270 if (val < 1) { in cmd_shuffle()
1272 return -ENOEXEC; in cmd_shuffle()
1278 val = atoi(state->optarg); in cmd_shuffle()
1279 if (val < 1) { in cmd_shuffle()
1281 return -ENOEXEC; in cmd_shuffle()
1288 argv[opt_index + 1]); in cmd_shuffle()
1289 return -ENOEXEC; in cmd_shuffle()
1309 int repeat_iter = 1; in cmd_run_suite()
1311 while ((opt = getopt_long(argc, argv, "r:p:", long_options, &opt_index)) != -1) { in cmd_run_suite()
1315 val = atoi(state->optarg); in cmd_run_suite()
1316 if (val < 1) { in cmd_run_suite()
1319 return -ENOEXEC; in cmd_run_suite()
1325 param = state->optarg; in cmd_run_suite()
1330 "Invalid option or option usage: %s\n", argv[opt_index + 1]); in cmd_run_suite()
1331 return -ENOEXEC; in cmd_run_suite()
1343 if (opt_num == 1) { in cmd_run_suite()
1346 ztest_set_test_args(argv[1]); in cmd_run_suite()
1351 if (strcmp(shell_command, "run-testcase") == 0) { in cmd_run_suite()
1352 count += __ztest_run_test_suite(ptr, NULL, shuffle, 1, repeat_iter, param); in cmd_run_suite()
1353 } else if (strcmp(shell_command, "run-testsuite") == 0) { in cmd_run_suite()
1354 count += __ztest_run_test_suite(ptr, NULL, shuffle, repeat_iter, 1, NULL); in cmd_run_suite()
1371 return _ztest_suite_node_list_end - _ztest_suite_node_list_start; in testsuite_get_all_static()
1382 if ((suite->name != NULL) && (strlen(suite->name) != 0) && in suite_lookup()
1383 ((prefix == NULL) || (strncmp(prefix, suite->name, strlen(prefix)) == 0))) { in suite_lookup()
1399 entry->syntax = (suite != NULL) ? suite->name : NULL; in testsuite_list_get()
1400 entry->handler = NULL; in testsuite_list_get()
1401 entry->help = NULL; in testsuite_list_get()
1402 entry->subcmd = NULL; in testsuite_list_get()
1405 /* clang-format off */
1408 SHELL_CMD_ARG(run-all, NULL, "Run all tests", cmd_runall, 0, 0),
1413 SHELL_CMD_ARG(list-testsuites, NULL,
1415 SHELL_CMD_ARG(list-testcases, NULL,
1417 SHELL_CMD_ARG(run-testsuite, &testsuite_names,
1419 SHELL_CMD_ARG(run-testcase, NULL, "Run testcase", cmd_run_suite, 2, 2),
1422 /* clang-format on */
1459 state.boots += 1; in main()
1474 uint32_t key = irq_lock(); in main() local
1476 while (1) { in main()
1479 irq_unlock(key); in main()