extern int utc_ml_single_get_output_info_n (void);
extern int utc_ml_single_set_timeout_p (void);
extern int utc_ml_single_set_timeout_n (void);
-extern int utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p (void);
+extern int utc_ml_single_set_input_info_p (void);
+
+extern int utc_ml_single_set_input_info_n (void);
+extern int utc_ml_single_set_property_p (void);
+extern int utc_ml_single_set_property_n (void);
+extern int utc_ml_single_get_property_p (void);
+extern int utc_ml_single_get_property_n (void);
+extern int utc_ml_single_invoke_dynamic_p (void);
+extern int utc_ml_single_invoke_dynamic_n (void);
+extern int utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p (void);
extern int utc_nnstreamer_scenario_construct_destruct_pipeline_p1 (void);
extern int utc_nnstreamer_scenario_construct_destruct_pipeline_p2 (void);
+
extern int utc_nnstreamer_scenario_construct_pipeline_error_case_n1 (void);
extern int utc_nnstreamer_scenario_construct_pipeline_error_case_n2 (void);
extern int utc_nnstreamer_scenario_pipeline_state_test_p1 (void);
-
extern int utc_nnstreamer_scenario_pipeline_state_test_p2 (void);
extern int utc_nnstreamer_scenario_pipeline_state_test_p3 (void);
+
extern int utc_nnstreamer_scenario_valve_error_cases_n (void);
extern int utc_nnstreamer_scenario_sink_p1 (void);
extern int utc_nnstreamer_scenario_sink_p2 (void);
-
extern int utc_nnstreamer_scenario_sink_error_cases_n (void);
extern int utc_nnstreamer_scenario_src_p (void);
+
extern int utc_nnstreamer_scenario_src_error_case_n1 (void);
extern int utc_nnstreamer_scenario_src_error_case_n2 (void);
extern int utc_nnstreamer_scenario_src_error_case_n3 (void);
-
extern int utc_nnstreamer_scenario_switch_pipeline_p1 (void);
extern int utc_nnstreamer_scenario_switch_pipeline_p2 (void);
+
extern int utc_nnstreamer_scenario_switch_pipeline_error_cases_n (void);
extern int utc_nnstreamer_scenario_check_nnfw_availability_p (void);
extern int utc_nnstreamer_scenario_check_tensor_info_utilities_p (void);
-
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_p1 (void);
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_p2 (void);
+
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_n (void);
testcase tc_array[] = {
{"utc_ml_single_get_output_info_n", utc_ml_single_get_output_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
{"utc_ml_single_set_timeout_p", utc_ml_single_set_timeout_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
{"utc_ml_single_set_timeout_n", utc_ml_single_set_timeout_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
- {"utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p", utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_ml_single_set_input_info_p", utc_ml_single_set_input_info_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+
+ {"utc_ml_single_set_input_info_n", utc_ml_single_set_input_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_property_p", utc_ml_single_set_property_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_property_n", utc_ml_single_set_property_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_property_p", utc_ml_single_get_property_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_property_n", utc_ml_single_get_property_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_dynamic_p", utc_ml_single_invoke_dynamic_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_dynamic_n", utc_ml_single_invoke_dynamic_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p", utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_destruct_pipeline_p1", utc_nnstreamer_scenario_construct_destruct_pipeline_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_destruct_pipeline_p2", utc_nnstreamer_scenario_construct_destruct_pipeline_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_construct_pipeline_error_case_n1", utc_nnstreamer_scenario_construct_pipeline_error_case_n1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_pipeline_error_case_n2", utc_nnstreamer_scenario_construct_pipeline_error_case_n2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_pipeline_state_test_p1", utc_nnstreamer_scenario_pipeline_state_test_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_pipeline_state_test_p2", utc_nnstreamer_scenario_pipeline_state_test_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_pipeline_state_test_p3", utc_nnstreamer_scenario_pipeline_state_test_p3, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_valve_error_cases_n", utc_nnstreamer_scenario_valve_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_sink_p1", utc_nnstreamer_scenario_sink_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_sink_p2", utc_nnstreamer_scenario_sink_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_sink_error_cases_n", utc_nnstreamer_scenario_sink_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_p", utc_nnstreamer_scenario_src_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_src_error_case_n1", utc_nnstreamer_scenario_src_error_case_n1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_error_case_n2", utc_nnstreamer_scenario_src_error_case_n2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_error_case_n3", utc_nnstreamer_scenario_src_error_case_n3, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_switch_pipeline_p1", utc_nnstreamer_scenario_switch_pipeline_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_switch_pipeline_p2", utc_nnstreamer_scenario_switch_pipeline_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_switch_pipeline_error_cases_n", utc_nnstreamer_scenario_switch_pipeline_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_check_nnfw_availability_p", utc_nnstreamer_scenario_check_nnfw_availability_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_check_tensor_info_utilities_p", utc_nnstreamer_scenario_check_tensor_info_utilities_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_filter_tensorflow_lite_p1", utc_nnstreamer_scenario_filter_tensorflow_lite_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_filter_tensorflow_lite_p2", utc_nnstreamer_scenario_filter_tensorflow_lite_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_filter_tensorflow_lite_n", utc_nnstreamer_scenario_filter_tensorflow_lite_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{NULL, NULL}
};
#include "testcase.h"
#include "tct_common.h"
+extern void utc_nnstreamer_single_startup (void);
+extern void utc_nnstreamer_single_cleanup (void);
+extern void utc_nnstreamer_pipeline_startup (void);
+extern void utc_nnstreamer_pipeline_cleanup (void);
+extern void utc_nnstreamer_pipeline_sink_startup (void);
+extern void utc_nnstreamer_pipeline_sink_cleanup (void);
+extern void utc_nnstreamer_pipeline_src_startup (void);
+extern void utc_nnstreamer_pipeline_src_cleanup (void);
+extern void utc_nnstreamer_pipeline_switch_startup (void);
+extern void utc_nnstreamer_pipeline_switch_cleanup (void);
+extern void utc_nnstreamer_pipeline_valve_startup (void);
+extern void utc_nnstreamer_pipeline_valve_cleanup (void);
+extern void utc_nnstreamer_pipeline_tensor_info_startup (void);
+extern void utc_nnstreamer_pipeline_tensor_info_cleanup (void);
+extern void utc_nnstreamer_pipeline_tensor_data_startup (void);
+extern void utc_nnstreamer_pipeline_tensor_data_cleanup (void);
+extern void utc_nnstreamer_scenario_startup (void);
+extern void utc_nnstreamer_scenario_cleanup (void);
+
+extern int utc_ml_pipeline_construct_p (void);
+extern int utc_ml_pipeline_construct_n (void);
+extern int utc_ml_pipeline_destroy_p (void);
+extern int utc_ml_pipeline_destroy_n (void);
+extern int utc_ml_pipeline_get_state_p (void);
+
+extern int utc_ml_pipeline_get_state_n (void);
+extern int utc_ml_pipeline_start_p (void);
+extern int utc_ml_pipeline_start_n (void);
+extern int utc_ml_pipeline_stop_p (void);
+extern int utc_ml_pipeline_stop_n (void);
+
+extern int utc_ml_check_nnfw_availability_p (void);
+extern int utc_ml_check_nnfw_availability_n (void);
+extern int utc_ml_pipeline_sink_register_p (void);
+extern int utc_ml_pipeline_sink_register_n (void);
+extern int utc_ml_pipeline_sink_unregister_p (void);
+
+extern int utc_ml_pipeline_sink_unregister_n (void);
+extern int utc_ml_pipeline_src_get_handle_p (void);
+extern int utc_ml_pipeline_src_get_handle_n (void);
+extern int utc_ml_pipeline_src_release_handle_p (void);
+extern int utc_ml_pipeline_src_release_handle_n (void);
+
+extern int utc_ml_pipeline_src_input_data_p (void);
+extern int utc_ml_pipeline_src_input_data_n (void);
+extern int utc_ml_pipeline_src_get_tensors_info_p (void);
+extern int utc_ml_pipeline_src_get_tensors_info_n (void);
+extern int utc_ml_pipeline_switch_get_handle_p (void);
+
+extern int utc_ml_pipeline_switch_get_handle_n (void);
+extern int utc_ml_pipeline_switch_release_handle_p (void);
+extern int utc_ml_pipeline_switch_release_handle_n (void);
+extern int utc_ml_pipeline_switch_select_p (void);
+extern int utc_ml_pipeline_switch_select_n (void);
+
+extern int utc_ml_pipeline_switch_get_pad_list_p (void);
+extern int utc_ml_pipeline_switch_get_pad_list_n (void);
+extern int utc_ml_pipeline_valve_get_handle_p (void);
+extern int utc_ml_pipeline_valve_get_handle_n (void);
+extern int utc_ml_pipeline_valve_release_handle_p (void);
+
+extern int utc_ml_pipeline_valve_release_handle_n (void);
+extern int utc_ml_pipeline_valve_set_open_p (void);
+extern int utc_ml_pipeline_valve_set_open_n (void);
+extern int utc_ml_tensors_info_create_p (void);
+extern int utc_ml_tensors_info_create_n (void);
+
+extern int utc_ml_tensors_info_destroy_p (void);
+extern int utc_ml_tensors_info_destroy_n (void);
+extern int utc_ml_tensors_info_validate_p (void);
+extern int utc_ml_tensors_info_validate_n (void);
+extern int utc_ml_tensors_info_clone_p (void);
+
+extern int utc_ml_tensors_info_clone_n (void);
+extern int utc_ml_tensors_info_set_count_p (void);
+extern int utc_ml_tensors_info_set_count_n (void);
+extern int utc_ml_tensors_info_get_count_p (void);
+extern int utc_ml_tensors_info_get_count_n (void);
+
+extern int utc_ml_tensors_info_set_tensor_name_p (void);
+extern int utc_ml_tensors_info_set_tensor_name_n (void);
+extern int utc_ml_tensors_info_get_tensor_name_p (void);
+extern int utc_ml_tensors_info_get_tensor_name_n (void);
+extern int utc_ml_tensors_info_set_tensor_type_p (void);
+
+extern int utc_ml_tensors_info_set_tensor_type_n (void);
+extern int utc_ml_tensors_info_get_tensor_type_p (void);
+extern int utc_ml_tensors_info_get_tensor_type_n (void);
+extern int utc_ml_tensors_info_set_tensor_dimension_p (void);
+extern int utc_ml_tensors_info_set_tensor_dimension_n (void);
+
+extern int utc_ml_tensors_info_get_tensor_dimension_p (void);
+extern int utc_ml_tensors_info_get_tensor_dimension_n (void);
+extern int utc_ml_tensors_info_get_tensor_size_p (void);
+extern int utc_ml_tensors_info_get_tensor_size_n (void);
+extern int utc_ml_tensors_data_create_p (void);
+
+extern int utc_ml_tensors_data_create_n (void);
+extern int utc_ml_tensors_data_destroy_p (void);
+extern int utc_ml_tensors_data_destroy_n (void);
+extern int utc_ml_tensors_data_get_tensor_data_p (void);
+extern int utc_ml_tensors_data_get_tensor_data_n (void);
+
+extern int utc_ml_tensors_data_set_tensor_data_p (void);
+extern int utc_ml_tensors_data_set_tensor_data_n (void);
+extern int utc_ml_single_open_p (void);
+extern int utc_ml_single_open_n (void);
+extern int utc_ml_single_close_p (void);
+
+extern int utc_ml_single_close_n (void);
+extern int utc_ml_single_invoke_p (void);
+extern int utc_ml_single_invoke_n (void);
+extern int utc_ml_single_get_input_info_p (void);
+extern int utc_ml_single_get_input_info_n (void);
+
+extern int utc_ml_single_get_output_info_p (void);
+extern int utc_ml_single_get_output_info_n (void);
+extern int utc_ml_single_set_timeout_p (void);
+extern int utc_ml_single_set_timeout_n (void);
+extern int utc_ml_single_set_input_info_p (void);
+
+extern int utc_ml_single_set_input_info_n (void);
+extern int utc_ml_single_set_property_p (void);
+extern int utc_ml_single_set_property_n (void);
+extern int utc_ml_single_get_property_p (void);
+extern int utc_ml_single_get_property_n (void);
+
+extern int utc_ml_single_invoke_dynamic_p (void);
+extern int utc_ml_single_invoke_dynamic_n (void);
+extern int utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p (void);
+extern int utc_nnstreamer_scenario_construct_destruct_pipeline_p1 (void);
+extern int utc_nnstreamer_scenario_construct_destruct_pipeline_p2 (void);
+
+extern int utc_nnstreamer_scenario_construct_pipeline_error_case_n1 (void);
+extern int utc_nnstreamer_scenario_construct_pipeline_error_case_n2 (void);
+extern int utc_nnstreamer_scenario_pipeline_state_test_p1 (void);
+extern int utc_nnstreamer_scenario_pipeline_state_test_p2 (void);
+extern int utc_nnstreamer_scenario_pipeline_state_test_p3 (void);
+
+extern int utc_nnstreamer_scenario_valve_error_cases_n (void);
+extern int utc_nnstreamer_scenario_sink_p1 (void);
+extern int utc_nnstreamer_scenario_sink_p2 (void);
+extern int utc_nnstreamer_scenario_sink_error_cases_n (void);
+extern int utc_nnstreamer_scenario_src_p (void);
+
+extern int utc_nnstreamer_scenario_src_error_case_n1 (void);
+extern int utc_nnstreamer_scenario_src_error_case_n2 (void);
+extern int utc_nnstreamer_scenario_src_error_case_n3 (void);
+extern int utc_nnstreamer_scenario_switch_pipeline_p1 (void);
+extern int utc_nnstreamer_scenario_switch_pipeline_p2 (void);
+
+extern int utc_nnstreamer_scenario_switch_pipeline_error_cases_n (void);
+extern int utc_nnstreamer_scenario_check_nnfw_availability_p (void);
+extern int utc_nnstreamer_scenario_check_tensor_info_utilities_p (void);
+extern int utc_nnstreamer_scenario_filter_tensorflow_lite_p1 (void);
+extern int utc_nnstreamer_scenario_filter_tensorflow_lite_p2 (void);
+
+extern int utc_nnstreamer_scenario_filter_tensorflow_lite_n (void);
+
testcase tc_array[] = {
- {NULL, NULL}
+ {"utc_ml_pipeline_construct_p", utc_ml_pipeline_construct_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_construct_n", utc_ml_pipeline_construct_n, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_destroy_p", utc_ml_pipeline_destroy_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_destroy_n", utc_ml_pipeline_destroy_n, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_get_state_p", utc_ml_pipeline_get_state_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+
+ {"utc_ml_pipeline_get_state_n", utc_ml_pipeline_get_state_n, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_start_p", utc_ml_pipeline_start_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_start_n", utc_ml_pipeline_start_n, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_stop_p", utc_ml_pipeline_stop_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_stop_n", utc_ml_pipeline_stop_n, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+
+ {"utc_ml_check_nnfw_availability_p", utc_ml_check_nnfw_availability_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_check_nnfw_availability_n", utc_ml_check_nnfw_availability_n, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
+ {"utc_ml_pipeline_sink_register_p", utc_ml_pipeline_sink_register_p, utc_nnstreamer_pipeline_sink_startup, utc_nnstreamer_pipeline_sink_cleanup},
+ {"utc_ml_pipeline_sink_register_n", utc_ml_pipeline_sink_register_n, utc_nnstreamer_pipeline_sink_startup, utc_nnstreamer_pipeline_sink_cleanup},
+ {"utc_ml_pipeline_sink_unregister_p", utc_ml_pipeline_sink_unregister_p, utc_nnstreamer_pipeline_sink_startup, utc_nnstreamer_pipeline_sink_cleanup},
+
+ {"utc_ml_pipeline_sink_unregister_n", utc_ml_pipeline_sink_unregister_n, utc_nnstreamer_pipeline_sink_startup, utc_nnstreamer_pipeline_sink_cleanup},
+ {"utc_ml_pipeline_src_get_handle_p", utc_ml_pipeline_src_get_handle_p, utc_nnstreamer_pipeline_src_startup, utc_nnstreamer_pipeline_src_cleanup},
+ {"utc_ml_pipeline_src_get_handle_n", utc_ml_pipeline_src_get_handle_n, utc_nnstreamer_pipeline_src_startup, utc_nnstreamer_pipeline_src_cleanup},
+ {"utc_ml_pipeline_src_release_handle_p", utc_ml_pipeline_src_release_handle_p, utc_nnstreamer_pipeline_src_startup, utc_nnstreamer_pipeline_src_cleanup},
+ {"utc_ml_pipeline_src_release_handle_n", utc_ml_pipeline_src_release_handle_n, utc_nnstreamer_pipeline_src_startup, utc_nnstreamer_pipeline_src_cleanup},
+
+ {"utc_ml_pipeline_src_input_data_p", utc_ml_pipeline_src_input_data_p, utc_nnstreamer_pipeline_src_startup, utc_nnstreamer_pipeline_src_cleanup},
+ {"utc_ml_pipeline_src_input_data_n", utc_ml_pipeline_src_input_data_n, utc_nnstreamer_pipeline_src_startup, utc_nnstreamer_pipeline_src_cleanup},
+ {"utc_ml_pipeline_src_get_tensors_info_p", utc_ml_pipeline_src_get_tensors_info_p, utc_nnstreamer_pipeline_src_startup, utc_nnstreamer_pipeline_src_cleanup},
+ {"utc_ml_pipeline_src_get_tensors_info_n", utc_ml_pipeline_src_get_tensors_info_n, utc_nnstreamer_pipeline_src_startup, utc_nnstreamer_pipeline_src_cleanup},
+ {"utc_ml_pipeline_switch_get_handle_p", utc_ml_pipeline_switch_get_handle_p, utc_nnstreamer_pipeline_switch_startup, utc_nnstreamer_pipeline_switch_cleanup},
+
+ {"utc_ml_pipeline_switch_get_handle_n", utc_ml_pipeline_switch_get_handle_n, utc_nnstreamer_pipeline_switch_startup, utc_nnstreamer_pipeline_switch_cleanup},
+ {"utc_ml_pipeline_switch_release_handle_p", utc_ml_pipeline_switch_release_handle_p, utc_nnstreamer_pipeline_switch_startup, utc_nnstreamer_pipeline_switch_cleanup},
+ {"utc_ml_pipeline_switch_release_handle_n", utc_ml_pipeline_switch_release_handle_n, utc_nnstreamer_pipeline_switch_startup, utc_nnstreamer_pipeline_switch_cleanup},
+ {"utc_ml_pipeline_switch_select_p", utc_ml_pipeline_switch_select_p, utc_nnstreamer_pipeline_switch_startup, utc_nnstreamer_pipeline_switch_cleanup},
+ {"utc_ml_pipeline_switch_select_n", utc_ml_pipeline_switch_select_n, utc_nnstreamer_pipeline_switch_startup, utc_nnstreamer_pipeline_switch_cleanup},
+
+ {"utc_ml_pipeline_switch_get_pad_list_p", utc_ml_pipeline_switch_get_pad_list_p, utc_nnstreamer_pipeline_switch_startup, utc_nnstreamer_pipeline_switch_cleanup},
+ {"utc_ml_pipeline_switch_get_pad_list_n", utc_ml_pipeline_switch_get_pad_list_n, utc_nnstreamer_pipeline_switch_startup, utc_nnstreamer_pipeline_switch_cleanup},
+ {"utc_ml_pipeline_valve_get_handle_p", utc_ml_pipeline_valve_get_handle_p, utc_nnstreamer_pipeline_valve_startup, utc_nnstreamer_pipeline_valve_cleanup},
+ {"utc_ml_pipeline_valve_get_handle_n", utc_ml_pipeline_valve_get_handle_n, utc_nnstreamer_pipeline_valve_startup, utc_nnstreamer_pipeline_valve_cleanup},
+ {"utc_ml_pipeline_valve_release_handle_p", utc_ml_pipeline_valve_release_handle_p, utc_nnstreamer_pipeline_valve_startup, utc_nnstreamer_pipeline_valve_cleanup},
+
+ {"utc_ml_pipeline_valve_release_handle_n", utc_ml_pipeline_valve_release_handle_n, utc_nnstreamer_pipeline_valve_startup, utc_nnstreamer_pipeline_valve_cleanup},
+ {"utc_ml_pipeline_valve_set_open_p", utc_ml_pipeline_valve_set_open_p, utc_nnstreamer_pipeline_valve_startup, utc_nnstreamer_pipeline_valve_cleanup},
+ {"utc_ml_pipeline_valve_set_open_n", utc_ml_pipeline_valve_set_open_n, utc_nnstreamer_pipeline_valve_startup, utc_nnstreamer_pipeline_valve_cleanup},
+ {"utc_ml_tensors_info_create_p", utc_ml_tensors_info_create_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_create_n", utc_ml_tensors_info_create_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+
+ {"utc_ml_tensors_info_destroy_p", utc_ml_tensors_info_destroy_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_destroy_n", utc_ml_tensors_info_destroy_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_validate_p", utc_ml_tensors_info_validate_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_validate_n", utc_ml_tensors_info_validate_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_clone_p", utc_ml_tensors_info_clone_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+
+ {"utc_ml_tensors_info_clone_n", utc_ml_tensors_info_clone_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_set_count_p", utc_ml_tensors_info_set_count_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_set_count_n", utc_ml_tensors_info_set_count_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_count_p", utc_ml_tensors_info_get_count_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_count_n", utc_ml_tensors_info_get_count_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+
+ {"utc_ml_tensors_info_set_tensor_name_p", utc_ml_tensors_info_set_tensor_name_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_set_tensor_name_n", utc_ml_tensors_info_set_tensor_name_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_tensor_name_p", utc_ml_tensors_info_get_tensor_name_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_tensor_name_n", utc_ml_tensors_info_get_tensor_name_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_set_tensor_type_p", utc_ml_tensors_info_set_tensor_type_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+
+ {"utc_ml_tensors_info_set_tensor_type_n", utc_ml_tensors_info_set_tensor_type_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_tensor_type_p", utc_ml_tensors_info_get_tensor_type_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_tensor_type_n", utc_ml_tensors_info_get_tensor_type_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_set_tensor_dimension_p", utc_ml_tensors_info_set_tensor_dimension_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_set_tensor_dimension_n", utc_ml_tensors_info_set_tensor_dimension_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+
+ {"utc_ml_tensors_info_get_tensor_dimension_p", utc_ml_tensors_info_get_tensor_dimension_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_tensor_dimension_n", utc_ml_tensors_info_get_tensor_dimension_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_tensor_size_p", utc_ml_tensors_info_get_tensor_size_p, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_info_get_tensor_size_n", utc_ml_tensors_info_get_tensor_size_n, utc_nnstreamer_pipeline_tensor_info_startup, utc_nnstreamer_pipeline_tensor_info_cleanup},
+ {"utc_ml_tensors_data_create_p", utc_ml_tensors_data_create_p, utc_nnstreamer_pipeline_tensor_data_startup, utc_nnstreamer_pipeline_tensor_data_cleanup},
+
+ {"utc_ml_tensors_data_create_n", utc_ml_tensors_data_create_n, utc_nnstreamer_pipeline_tensor_data_startup, utc_nnstreamer_pipeline_tensor_data_cleanup},
+ {"utc_ml_tensors_data_destroy_p", utc_ml_tensors_data_destroy_p, utc_nnstreamer_pipeline_tensor_data_startup, utc_nnstreamer_pipeline_tensor_data_cleanup},
+ {"utc_ml_tensors_data_destroy_n", utc_ml_tensors_data_destroy_n, utc_nnstreamer_pipeline_tensor_data_startup, utc_nnstreamer_pipeline_tensor_data_cleanup},
+ {"utc_ml_tensors_data_get_tensor_data_p", utc_ml_tensors_data_get_tensor_data_p, utc_nnstreamer_pipeline_tensor_data_startup, utc_nnstreamer_pipeline_tensor_data_cleanup},
+ {"utc_ml_tensors_data_get_tensor_data_n", utc_ml_tensors_data_get_tensor_data_n, utc_nnstreamer_pipeline_tensor_data_startup, utc_nnstreamer_pipeline_tensor_data_cleanup},
+
+ {"utc_ml_tensors_data_set_tensor_data_p", utc_ml_tensors_data_set_tensor_data_p, utc_nnstreamer_pipeline_tensor_data_startup, utc_nnstreamer_pipeline_tensor_data_cleanup},
+ {"utc_ml_tensors_data_set_tensor_data_n", utc_ml_tensors_data_set_tensor_data_n, utc_nnstreamer_pipeline_tensor_data_startup, utc_nnstreamer_pipeline_tensor_data_cleanup},
+ {"utc_ml_single_open_p", utc_ml_single_open_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_open_n", utc_ml_single_open_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_close_p", utc_ml_single_close_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+
+ {"utc_ml_single_close_n", utc_ml_single_close_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_p", utc_ml_single_invoke_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_n", utc_ml_single_invoke_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_input_info_p", utc_ml_single_get_input_info_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_input_info_n", utc_ml_single_get_input_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+
+ {"utc_ml_single_get_output_info_p", utc_ml_single_get_output_info_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_output_info_n", utc_ml_single_get_output_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_timeout_p", utc_ml_single_set_timeout_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_timeout_n", utc_ml_single_set_timeout_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_input_info_p", utc_ml_single_set_input_info_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+
+ {"utc_ml_single_set_input_info_n", utc_ml_single_set_input_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_property_p", utc_ml_single_set_property_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_property_n", utc_ml_single_set_property_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_property_p", utc_ml_single_get_property_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_property_n", utc_ml_single_get_property_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+
+ {"utc_ml_single_invoke_dynamic_p", utc_ml_single_invoke_dynamic_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_dynamic_n", utc_ml_single_invoke_dynamic_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p", utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_construct_destruct_pipeline_p1", utc_nnstreamer_scenario_construct_destruct_pipeline_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_construct_destruct_pipeline_p2", utc_nnstreamer_scenario_construct_destruct_pipeline_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
+ {"utc_nnstreamer_scenario_construct_pipeline_error_case_n1", utc_nnstreamer_scenario_construct_pipeline_error_case_n1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_construct_pipeline_error_case_n2", utc_nnstreamer_scenario_construct_pipeline_error_case_n2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_pipeline_state_test_p1", utc_nnstreamer_scenario_pipeline_state_test_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_pipeline_state_test_p2", utc_nnstreamer_scenario_pipeline_state_test_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_pipeline_state_test_p3", utc_nnstreamer_scenario_pipeline_state_test_p3, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
+ {"utc_nnstreamer_scenario_valve_error_cases_n", utc_nnstreamer_scenario_valve_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_sink_p1", utc_nnstreamer_scenario_sink_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_sink_p2", utc_nnstreamer_scenario_sink_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_sink_error_cases_n", utc_nnstreamer_scenario_sink_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_src_p", utc_nnstreamer_scenario_src_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
+ {"utc_nnstreamer_scenario_src_error_case_n1", utc_nnstreamer_scenario_src_error_case_n1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_src_error_case_n2", utc_nnstreamer_scenario_src_error_case_n2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_src_error_case_n3", utc_nnstreamer_scenario_src_error_case_n3, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_switch_pipeline_p1", utc_nnstreamer_scenario_switch_pipeline_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_switch_pipeline_p2", utc_nnstreamer_scenario_switch_pipeline_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
+ {"utc_nnstreamer_scenario_switch_pipeline_error_cases_n", utc_nnstreamer_scenario_switch_pipeline_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_check_nnfw_availability_p", utc_nnstreamer_scenario_check_nnfw_availability_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_check_tensor_info_utilities_p", utc_nnstreamer_scenario_check_tensor_info_utilities_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_filter_tensorflow_lite_p1", utc_nnstreamer_scenario_filter_tensorflow_lite_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_nnstreamer_scenario_filter_tensorflow_lite_p2", utc_nnstreamer_scenario_filter_tensorflow_lite_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
+ {"utc_nnstreamer_scenario_filter_tensorflow_lite_n", utc_nnstreamer_scenario_filter_tensorflow_lite_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {NULL, NULL}
};
#endif // __TCT_NNSTREAMER-NATIVE_H__
extern int utc_ml_single_get_output_info_n (void);
extern int utc_ml_single_set_timeout_p (void);
extern int utc_ml_single_set_timeout_n (void);
-extern int utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p (void);
+extern int utc_ml_single_set_input_info_p (void);
+
+extern int utc_ml_single_set_input_info_n (void);
+extern int utc_ml_single_set_property_p (void);
+extern int utc_ml_single_set_property_n (void);
+extern int utc_ml_single_get_property_p (void);
+extern int utc_ml_single_get_property_n (void);
+extern int utc_ml_single_invoke_dynamic_p (void);
+extern int utc_ml_single_invoke_dynamic_n (void);
+extern int utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p (void);
extern int utc_nnstreamer_scenario_construct_destruct_pipeline_p1 (void);
extern int utc_nnstreamer_scenario_construct_destruct_pipeline_p2 (void);
+
extern int utc_nnstreamer_scenario_construct_pipeline_error_case_n1 (void);
extern int utc_nnstreamer_scenario_construct_pipeline_error_case_n2 (void);
extern int utc_nnstreamer_scenario_pipeline_state_test_p1 (void);
-
extern int utc_nnstreamer_scenario_pipeline_state_test_p2 (void);
extern int utc_nnstreamer_scenario_pipeline_state_test_p3 (void);
+
extern int utc_nnstreamer_scenario_valve_error_cases_n (void);
extern int utc_nnstreamer_scenario_sink_p1 (void);
extern int utc_nnstreamer_scenario_sink_p2 (void);
-
extern int utc_nnstreamer_scenario_sink_error_cases_n (void);
extern int utc_nnstreamer_scenario_src_p (void);
+
extern int utc_nnstreamer_scenario_src_error_case_n1 (void);
extern int utc_nnstreamer_scenario_src_error_case_n2 (void);
extern int utc_nnstreamer_scenario_src_error_case_n3 (void);
-
extern int utc_nnstreamer_scenario_switch_pipeline_p1 (void);
extern int utc_nnstreamer_scenario_switch_pipeline_p2 (void);
+
extern int utc_nnstreamer_scenario_switch_pipeline_error_cases_n (void);
extern int utc_nnstreamer_scenario_check_nnfw_availability_p (void);
extern int utc_nnstreamer_scenario_check_tensor_info_utilities_p (void);
-
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_p1 (void);
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_p2 (void);
+
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_n (void);
testcase tc_array[] = {
{"utc_ml_single_get_output_info_n", utc_ml_single_get_output_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
{"utc_ml_single_set_timeout_p", utc_ml_single_set_timeout_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
{"utc_ml_single_set_timeout_n", utc_ml_single_set_timeout_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
- {"utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p", utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_ml_single_set_input_info_p", utc_ml_single_set_input_info_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+
+ {"utc_ml_single_set_input_info_n", utc_ml_single_set_input_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_property_p", utc_ml_single_set_property_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_property_n", utc_ml_single_set_property_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_property_p", utc_ml_single_get_property_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_property_n", utc_ml_single_get_property_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_dynamic_p", utc_ml_single_invoke_dynamic_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_dynamic_n", utc_ml_single_invoke_dynamic_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p", utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_destruct_pipeline_p1", utc_nnstreamer_scenario_construct_destruct_pipeline_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_destruct_pipeline_p2", utc_nnstreamer_scenario_construct_destruct_pipeline_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_construct_pipeline_error_case_n1", utc_nnstreamer_scenario_construct_pipeline_error_case_n1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_pipeline_error_case_n2", utc_nnstreamer_scenario_construct_pipeline_error_case_n2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_pipeline_state_test_p1", utc_nnstreamer_scenario_pipeline_state_test_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_pipeline_state_test_p2", utc_nnstreamer_scenario_pipeline_state_test_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_pipeline_state_test_p3", utc_nnstreamer_scenario_pipeline_state_test_p3, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_valve_error_cases_n", utc_nnstreamer_scenario_valve_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_sink_p1", utc_nnstreamer_scenario_sink_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_sink_p2", utc_nnstreamer_scenario_sink_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_sink_error_cases_n", utc_nnstreamer_scenario_sink_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_p", utc_nnstreamer_scenario_src_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_src_error_case_n1", utc_nnstreamer_scenario_src_error_case_n1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_error_case_n2", utc_nnstreamer_scenario_src_error_case_n2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_error_case_n3", utc_nnstreamer_scenario_src_error_case_n3, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_switch_pipeline_p1", utc_nnstreamer_scenario_switch_pipeline_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_switch_pipeline_p2", utc_nnstreamer_scenario_switch_pipeline_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_switch_pipeline_error_cases_n", utc_nnstreamer_scenario_switch_pipeline_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_check_nnfw_availability_p", utc_nnstreamer_scenario_check_nnfw_availability_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_check_tensor_info_utilities_p", utc_nnstreamer_scenario_check_tensor_info_utilities_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_filter_tensorflow_lite_p1", utc_nnstreamer_scenario_filter_tensorflow_lite_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_filter_tensorflow_lite_p2", utc_nnstreamer_scenario_filter_tensorflow_lite_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_filter_tensorflow_lite_n", utc_nnstreamer_scenario_filter_tensorflow_lite_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{NULL, NULL}
};
extern int utc_ml_single_get_output_info_n (void);
extern int utc_ml_single_set_timeout_p (void);
extern int utc_ml_single_set_timeout_n (void);
-extern int utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p (void);
+extern int utc_ml_single_set_input_info_p (void);
+
+extern int utc_ml_single_set_input_info_n (void);
+extern int utc_ml_single_set_property_p (void);
+extern int utc_ml_single_set_property_n (void);
+extern int utc_ml_single_get_property_p (void);
+extern int utc_ml_single_get_property_n (void);
+extern int utc_ml_single_invoke_dynamic_p (void);
+extern int utc_ml_single_invoke_dynamic_n (void);
+extern int utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p (void);
extern int utc_nnstreamer_scenario_construct_destruct_pipeline_p1 (void);
extern int utc_nnstreamer_scenario_construct_destruct_pipeline_p2 (void);
+
extern int utc_nnstreamer_scenario_construct_pipeline_error_case_n1 (void);
extern int utc_nnstreamer_scenario_construct_pipeline_error_case_n2 (void);
extern int utc_nnstreamer_scenario_pipeline_state_test_p1 (void);
-
extern int utc_nnstreamer_scenario_pipeline_state_test_p2 (void);
extern int utc_nnstreamer_scenario_pipeline_state_test_p3 (void);
+
extern int utc_nnstreamer_scenario_valve_error_cases_n (void);
extern int utc_nnstreamer_scenario_sink_p1 (void);
extern int utc_nnstreamer_scenario_sink_p2 (void);
-
extern int utc_nnstreamer_scenario_sink_error_cases_n (void);
extern int utc_nnstreamer_scenario_src_p (void);
+
extern int utc_nnstreamer_scenario_src_error_case_n1 (void);
extern int utc_nnstreamer_scenario_src_error_case_n2 (void);
extern int utc_nnstreamer_scenario_src_error_case_n3 (void);
-
extern int utc_nnstreamer_scenario_switch_pipeline_p1 (void);
extern int utc_nnstreamer_scenario_switch_pipeline_p2 (void);
+
extern int utc_nnstreamer_scenario_switch_pipeline_error_cases_n (void);
extern int utc_nnstreamer_scenario_check_nnfw_availability_p (void);
extern int utc_nnstreamer_scenario_check_tensor_info_utilities_p (void);
-
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_p1 (void);
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_p2 (void);
+
extern int utc_nnstreamer_scenario_filter_tensorflow_lite_n (void);
testcase tc_array[] = {
{"utc_ml_single_get_output_info_n", utc_ml_single_get_output_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
{"utc_ml_single_set_timeout_p", utc_ml_single_set_timeout_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
{"utc_ml_single_set_timeout_n", utc_ml_single_set_timeout_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
- {"utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p", utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+ {"utc_ml_single_set_input_info_p", utc_ml_single_set_input_info_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+
+ {"utc_ml_single_set_input_info_n", utc_ml_single_set_input_info_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_property_p", utc_ml_single_set_property_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_set_property_n", utc_ml_single_set_property_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_property_p", utc_ml_single_get_property_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_get_property_n", utc_ml_single_get_property_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_dynamic_p", utc_ml_single_invoke_dynamic_p, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_ml_single_invoke_dynamic_n", utc_ml_single_invoke_dynamic_n, utc_nnstreamer_single_startup, utc_nnstreamer_single_cleanup},
+ {"utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p", utc_nnstreamer_scenario_construct_destruct_empty_pipeline_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_destruct_pipeline_p1", utc_nnstreamer_scenario_construct_destruct_pipeline_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_destruct_pipeline_p2", utc_nnstreamer_scenario_construct_destruct_pipeline_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_construct_pipeline_error_case_n1", utc_nnstreamer_scenario_construct_pipeline_error_case_n1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_construct_pipeline_error_case_n2", utc_nnstreamer_scenario_construct_pipeline_error_case_n2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_pipeline_state_test_p1", utc_nnstreamer_scenario_pipeline_state_test_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_pipeline_state_test_p2", utc_nnstreamer_scenario_pipeline_state_test_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_pipeline_state_test_p3", utc_nnstreamer_scenario_pipeline_state_test_p3, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_valve_error_cases_n", utc_nnstreamer_scenario_valve_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_sink_p1", utc_nnstreamer_scenario_sink_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_sink_p2", utc_nnstreamer_scenario_sink_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_sink_error_cases_n", utc_nnstreamer_scenario_sink_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_p", utc_nnstreamer_scenario_src_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_src_error_case_n1", utc_nnstreamer_scenario_src_error_case_n1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_error_case_n2", utc_nnstreamer_scenario_src_error_case_n2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_src_error_case_n3", utc_nnstreamer_scenario_src_error_case_n3, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_switch_pipeline_p1", utc_nnstreamer_scenario_switch_pipeline_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_switch_pipeline_p2", utc_nnstreamer_scenario_switch_pipeline_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_switch_pipeline_error_cases_n", utc_nnstreamer_scenario_switch_pipeline_error_cases_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_check_nnfw_availability_p", utc_nnstreamer_scenario_check_nnfw_availability_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_check_tensor_info_utilities_p", utc_nnstreamer_scenario_check_tensor_info_utilities_p, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
-
{"utc_nnstreamer_scenario_filter_tensorflow_lite_p1", utc_nnstreamer_scenario_filter_tensorflow_lite_p1, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{"utc_nnstreamer_scenario_filter_tensorflow_lite_p2", utc_nnstreamer_scenario_filter_tensorflow_lite_p2, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
+
{"utc_nnstreamer_scenario_filter_tensorflow_lite_n", utc_nnstreamer_scenario_filter_tensorflow_lite_n, utc_nnstreamer_scenario_startup, utc_nnstreamer_scenario_cleanup},
{NULL, NULL}
};
void utc_nnstreamer_pipeline_sink_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
*/
void utc_nnstreamer_pipeline_sink_cleanup(void)
{
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
+
status = ml_pipeline_destroy (handle);
g_free (pipeline);
void utc_nnstreamer_pipeline_src_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
*/
void utc_nnstreamer_pipeline_src_cleanup(void)
{
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
status = ml_pipeline_stop (handle);
status = ml_pipeline_destroy (handle);
void utc_nnstreamer_pipeline_switch_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
*/
void utc_nnstreamer_pipeline_switch_cleanup(void)
{
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
status = ml_pipeline_destroy (handle);
g_free (pipeline);
void utc_nnstreamer_pipeline_tensor_data_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
*/
void utc_nnstreamer_pipeline_tensor_data_cleanup(void)
{
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
g_free (pipeline);
}
void utc_nnstreamer_pipeline_tensor_info_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
*/
void utc_nnstreamer_pipeline_tensor_info_cleanup(void)
{
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
}
/**
void utc_nnstreamer_pipeline_valve_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
*/
void utc_nnstreamer_pipeline_valve_cleanup(void)
{
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
status = ml_pipeline_destroy (handle);
g_free (pipeline);
}
* @since_tizen 5.5
* @description called before the specific test cases
*/
-void utc_nnstreamer_pipeline_startup (void)
+void utc_nnstreamer_pipeline_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
* @since_tizen 5.5
* @description called before the specific test cases
*/
-void utc_nnstreamer_pipeline_cleanup (void)
+void utc_nnstreamer_pipeline_cleanup(void)
{
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
}
/**
{
bool result;
IS_SUPPORT_FEATURE;
+
int status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_ANY, &result);
assert_eq (status, ML_ERROR_NONE);
status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_NPU, &result);
assert_eq (status, ML_ERROR_NONE);
+ status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_CPU, &result);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_CPU_NEON, &result);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_GPU, &result);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_NPU_MOVIDIUS, &result);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_NPU_EDGE_TPU, &result);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_NPU_VIVANTE, &result);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_check_nnfw_availability (ML_NNFW_TYPE_NNFW, ML_NNFW_HW_NPU_SR, &result);
+ assert_eq (status, ML_ERROR_NONE);
+
return 0;
}
void utc_nnstreamer_scenario_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
*/
void utc_nnstreamer_scenario_cleanup(void)
{
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
}
/**
void utc_nnstreamer_single_startup(void)
{
int ret = system_info_get_platform_bool(FEATURE_ML, &feature_ml);
- if (ret != ML_ERROR_NONE || !feature_ml) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml) {
FPRINTF("[%s][%d][%s] feature machine_learning is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
ret = system_info_get_platform_bool(FEATURE_ML_INFERENCE, &feature_ml_inf);
- if (ret != ML_ERROR_NONE || !feature_ml_inf) {
+ if (ret != SYSTEM_INFO_ERROR_NONE || !feature_ml_inf) {
FPRINTF("[%s][%d][%s] feature machine_learning.inference is not supported!\\n", __FILE__, __LINE__, __FUNCTION__);
return;
}
*/
void utc_nnstreamer_single_cleanup(void)
{
- FPRINTF("[%s][%d][%s] [CLEANUP]\\n", __FILE__, __LINE__, __FUNCTION__);
+ if (!feature_ml || !feature_ml_inf) {
+ return;
+ }
+
g_free (test_model);
}
return 0;
}
+
+/**
+ * @testcase utc_ml_single_set_input_info_p
+ * @since_tizen 6.0
+ * @description Test setting input info after model loaded
+ */
+int utc_ml_single_set_input_info_p (void)
+{
+ IS_SUPPORT_FEATURE;
+ ml_single_h single;
+ ml_tensors_info_h in_info;
+ ml_tensor_dimension res_dim;
+ int status;
+
+ gchar *test_model;
+
+ char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+
+ char *model_file = "add.tflite";
+ char *model_file_path = NULL;
+
+ if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE ))
+ {
+ int model_path_len = strlen(pszValue) + strlen(model_file) + 10;
+ model_file_path = (char*)malloc(model_path_len);
+ CHECK_HANDLE(model_file_path,"malloc:failure:utc_ml_single_set_input_info_p");
+ snprintf(model_file_path, model_path_len, "%s/res/res/%s", pszValue, model_file);
+ }
+
+ test_model = model_file_path;
+ assert (g_file_test (test_model, G_FILE_TEST_EXISTS));
+
+ status = ml_single_open (&single, test_model, NULL, NULL,
+ ML_NNFW_TYPE_TENSORFLOW_LITE, ML_NNFW_HW_ANY);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_get_input_info (single, &in_info);
+ assert_eq (status, ML_ERROR_NONE);
+
+ ml_tensors_info_get_tensor_dimension (in_info, 0, res_dim);
+ /* dim change */
+ res_dim[3] += 1;
+ status = ml_tensors_info_set_tensor_dimension (in_info, 0, res_dim);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_set_input_info (single, in_info);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_close (single);
+ assert_eq (status, ML_ERROR_NONE);
+
+ g_free (test_model);
+ ml_tensors_info_destroy (in_info);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_single_set_input_info_n
+ * @since_tizen 6.0
+ * @description Test setting input info after model loaded. Failure Case.
+ */
+int utc_ml_single_set_input_info_n (void)
+{
+ IS_SUPPORT_FEATURE;
+ ml_single_h single;
+ ml_tensors_info_h in_info;
+ ml_tensor_type_e type = ML_TENSOR_TYPE_UNKNOWN;
+ unsigned int count = 0;
+ int status;
+
+ gchar *test_model;
+
+ char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+
+ char *model_file = "add.tflite";
+ char *model_file_path = NULL;
+
+ if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE ))
+ {
+ int model_path_len = strlen(pszValue) + strlen(model_file) + 10;
+ model_file_path = (char*)malloc(model_path_len);
+ CHECK_HANDLE(model_file_path,"malloc:failure:utc_ml_single_set_input_info_n");
+ snprintf(model_file_path, model_path_len, "%s/res/res/%s", pszValue, model_file);
+ }
+
+ test_model = model_file_path;
+ assert (g_file_test (test_model, G_FILE_TEST_EXISTS));
+
+ status = ml_single_open (&single, test_model, NULL, NULL,
+ ML_NNFW_TYPE_TENSORFLOW_LITE, ML_NNFW_HW_ANY);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_get_input_info (single, &in_info);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_tensors_info_get_count (in_info, &count);
+ assert_eq (status, ML_ERROR_NONE);
+
+ /** changing the count of number of tensors is not allowed */
+ ml_tensors_info_set_count (in_info, count + 1);
+ status = ml_single_set_input_info (single, in_info);
+ assert_neq (status, ML_ERROR_NONE);
+ ml_tensors_info_set_count (in_info, count);
+
+ status = ml_tensors_info_get_tensor_type (in_info, 0, &type);
+ assert_eq (status, ML_ERROR_NONE);
+ assert_eq (type, ML_TENSOR_TYPE_FLOAT32);
+
+ /** changing the type of input tensors is not allowed */
+ ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_INT32);
+ status = ml_single_set_input_info (single, in_info);
+ assert_neq (status, ML_ERROR_NONE);
+
+ status = ml_single_close (single);
+ assert_eq (status, ML_ERROR_NONE);
+
+ g_free (test_model);
+ ml_tensors_info_destroy (in_info);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_single_set_property_p
+ * @since_tizen 6.0
+ * @description Test setting property after model loaded
+ */
+int utc_ml_single_set_property_p (void)
+{
+ IS_SUPPORT_FEATURE;
+ ml_single_h single;
+ int status;
+
+ gchar *test_model;
+
+ char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+
+ char *model_file = "add.tflite";
+ char *model_file_path = NULL;
+
+ if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE ))
+ {
+ int model_path_len = strlen(pszValue) + strlen(model_file) + 10;
+ model_file_path = (char*)malloc(model_path_len);
+ CHECK_HANDLE(model_file_path,"malloc:failure:utc_ml_single_set_property_p");
+ snprintf(model_file_path, model_path_len, "%s/res/res/%s", pszValue, model_file);
+ }
+
+ test_model = model_file_path;
+ assert (g_file_test (test_model, G_FILE_TEST_EXISTS));
+
+ status = ml_single_open (&single, test_model, NULL, NULL,
+ ML_NNFW_TYPE_TENSORFLOW_LITE, ML_NNFW_HW_ANY);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_set_property (single, "input", "5:1:1:1");
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_close (single);
+ assert_eq (status, ML_ERROR_NONE);
+
+ g_free (test_model);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_single_set_property_n
+ * @since_tizen 6.0
+ * @description Test setting property after model loaded. Failure case.
+ */
+int utc_ml_single_set_property_n (void)
+{
+ IS_SUPPORT_FEATURE;
+ ml_single_h single;
+ int status;
+
+ gchar *test_model;
+
+ char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+
+ char *model_file = "add.tflite";
+ char *model_file_path = NULL;
+
+ if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE ))
+ {
+ int model_path_len = strlen(pszValue) + strlen(model_file) + 10;
+ model_file_path = (char*)malloc(model_path_len);
+ CHECK_HANDLE(model_file_path,"malloc:failure:utc_ml_single_set_property_n");
+ snprintf(model_file_path, model_path_len, "%s/res/res/%s", pszValue, model_file);
+ }
+
+ test_model = model_file_path;
+ assert (g_file_test (test_model, G_FILE_TEST_EXISTS));
+
+ status = ml_single_open (&single, test_model, NULL, NULL,
+ ML_NNFW_TYPE_TENSORFLOW_LITE, ML_NNFW_HW_ANY);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_set_property (single, "input", NULL);
+ assert_eq (status, ML_ERROR_INVALID_PARAMETER);
+
+ status = ml_single_close (single);
+ assert_eq (status, ML_ERROR_NONE);
+
+ g_free (test_model);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_single_get_property_p
+ * @since_tizen 6.0
+ * @description Test getting property after model loaded
+ */
+int utc_ml_single_get_property_p (void)
+{
+ IS_SUPPORT_FEATURE;
+ ml_single_h single;
+ char *prop_value;
+ int status;
+
+ gchar *test_model;
+
+ char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+
+ char *model_file = "add.tflite";
+ char *model_file_path = NULL;
+
+ if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE ))
+ {
+ int model_path_len = strlen(pszValue) + strlen(model_file) + 10;
+ model_file_path = (char*)malloc(model_path_len);
+ CHECK_HANDLE(model_file_path,"malloc:failure:utc_ml_single_get_property_p");
+ snprintf(model_file_path, model_path_len, "%s/res/res/%s", pszValue, model_file);
+ }
+
+ test_model = model_file_path;
+ assert (g_file_test (test_model, G_FILE_TEST_EXISTS));
+
+ status = ml_single_open (&single, test_model, NULL, NULL,
+ ML_NNFW_TYPE_TENSORFLOW_LITE, ML_NNFW_HW_ANY);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_set_property (single, "input", "5:1:1:1");
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_get_property (single, "input", &prop_value);
+ assert_eq (status, ML_ERROR_NONE);
+
+ assert_eq (g_strcmp0 (prop_value, "5:1:1:1"), 0);
+ g_free (prop_value);
+
+ status = ml_single_close (single);
+ assert_eq (status, ML_ERROR_NONE);
+
+ g_free (test_model);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_single_get_property_n
+ * @since_tizen 6.0
+ * @description Test getting property after model loaded. Failure case.
+ */
+int utc_ml_single_get_property_n (void)
+{
+ IS_SUPPORT_FEATURE;
+ ml_single_h single;
+ char *prop_value;
+ int status;
+
+ gchar *test_model;
+
+ char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+
+ char *model_file = "add.tflite";
+ char *model_file_path = NULL;
+
+ if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE ))
+ {
+ int model_path_len = strlen(pszValue) + strlen(model_file) + 10;
+ model_file_path = (char*)malloc(model_path_len);
+ CHECK_HANDLE(model_file_path,"malloc:failure:utc_ml_single_get_property_p");
+ snprintf(model_file_path, model_path_len, "%s/res/res/%s", pszValue, model_file);
+ }
+
+ test_model = model_file_path;
+ assert (g_file_test (test_model, G_FILE_TEST_EXISTS));
+
+ status = ml_single_open (&single, test_model, NULL, NULL,
+ ML_NNFW_TYPE_TENSORFLOW_LITE, ML_NNFW_HW_ANY);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_get_property (single, "unknown_prop", &prop_value);
+ assert_eq (status, ML_ERROR_NOT_SUPPORTED);
+
+ status = ml_single_close (single);
+ assert_eq (status, ML_ERROR_NONE);
+
+ g_free (test_model);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_single_invoke_dynamic_p
+ * @since_tizen 6.0
+ * @description Test Run model with dynamic property/setting info.
+ */
+int utc_ml_single_invoke_dynamic_p (void)
+{
+ IS_SUPPORT_FEATURE;
+ ml_single_h single;
+ int status;
+ ml_tensors_info_h in_info, out_info;
+ ml_tensors_data_h input, output;
+
+
+ int tmp_count;
+ ml_tensor_type_e tmp_type = ML_TENSOR_TYPE_UNKNOWN;
+ ml_tensor_dimension tmp_dim;
+
+
+ gchar *test_model;
+
+ char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+
+ char *model_file = "add.tflite";
+ char *model_file_path = NULL;
+
+ if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE ))
+ {
+ int model_path_len = strlen(pszValue) + strlen(model_file) + 10;
+ model_file_path = (char*)malloc(model_path_len);
+ CHECK_HANDLE(model_file_path,"malloc:failure:utc_ml_single_invoke_dynamic_p");
+ snprintf(model_file_path, model_path_len, "%s/res/res/%s", pszValue, model_file);
+ }
+
+ test_model = model_file_path;
+ assert (g_file_test (test_model, G_FILE_TEST_EXISTS));
+
+ status = ml_single_open (&single, test_model, NULL, NULL,
+ ML_NNFW_TYPE_TENSORFLOW_LITE, ML_NNFW_HW_ANY);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_get_input_info (single, &in_info);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_tensors_data_create (in_info, &input);
+ assert_eq (status, ML_ERROR_NONE);
+
+ float tmp_input[] = {1.0};
+ float * output_buf;
+ size_t data_size;
+ status = ml_tensors_data_set_tensor_data(input, 0, tmp_input,
+ 1 * sizeof(float));
+
+ ml_tensors_info_get_count(in_info, &tmp_count);
+ ml_tensors_info_get_tensor_type(in_info, 0, &tmp_type);
+ ml_tensors_info_get_tensor_dimension(in_info, 0, tmp_dim);
+
+ status = ml_single_invoke_dynamic (single, input, in_info, &output, &out_info);
+ assert_eq (status, ML_ERROR_NONE);
+
+ ml_tensors_data_get_tensor_data(output, 0, (void **) &output_buf,
+ &data_size);
+
+ ml_tensors_info_get_count(out_info, &tmp_count);
+ ml_tensors_info_get_tensor_type(out_info, 0, &tmp_type);
+ ml_tensors_info_get_tensor_dimension(out_info, 0, tmp_dim);
+
+ ml_tensors_data_destroy (output);
+ ml_tensors_data_destroy (input);
+ ml_tensors_info_destroy (in_info);
+ ml_tensors_info_destroy (out_info);
+
+ status = ml_single_set_property (single, "input", "5:1:1:1");
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_get_input_info (single, &in_info);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_tensors_data_create (in_info, &input);
+ assert_eq (status, ML_ERROR_NONE);
+
+ float tmp_input2[] = {1.0, 2.0, 3.0, 4.0, 5.0};
+ float * output_buf2;
+ status = ml_tensors_data_set_tensor_data(input, 0, tmp_input2,
+ 5 * sizeof(float));
+
+ ml_tensors_info_get_count(in_info, &tmp_count);
+ ml_tensors_info_get_tensor_type(in_info, 0, &tmp_type);
+ ml_tensors_info_get_tensor_dimension(in_info, 0, tmp_dim);
+
+ status = ml_single_invoke_dynamic (single, input, in_info, &output, &out_info);
+ assert_eq (status, ML_ERROR_NONE);
+
+ ml_tensors_data_get_tensor_data(output, 0, (void **) &output_buf2,
+ &data_size);
+
+ ml_tensors_info_get_count(out_info, &tmp_count);
+ ml_tensors_info_get_tensor_type(out_info, 0, &tmp_type);
+ ml_tensors_info_get_tensor_dimension(out_info, 0, tmp_dim);
+
+ status = ml_single_close (single);
+ assert_eq (status, ML_ERROR_NONE);
+
+ ml_tensors_data_destroy (output);
+ ml_tensors_data_destroy (input);
+ ml_tensors_info_destroy (in_info);
+ ml_tensors_info_destroy (out_info);
+
+ g_free (test_model);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_single_invoke_dynamic_n
+ * @since_tizen 6.0
+ * @description Test Run model with dynamic property/setting info. Failure Case
+ */
+int utc_ml_single_invoke_dynamic_n (void)
+{
+ IS_SUPPORT_FEATURE;
+ ml_single_h single;
+ int status;
+ ml_tensors_info_h in_info, out_info;
+ ml_tensors_data_h input, output;
+
+ gchar *test_model;
+
+ char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+
+ char *model_file = "add.tflite";
+ char *model_file_path = NULL;
+
+ if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE ))
+ {
+ int model_path_len = strlen(pszValue) + strlen(model_file) + 10;
+ model_file_path = (char*)malloc(model_path_len);
+ CHECK_HANDLE(model_file_path,"malloc:failure:utc_ml_single_invoke_dynamic_n");
+ snprintf(model_file_path, model_path_len, "%s/res/res/%s", pszValue, model_file);
+ }
+
+ test_model = model_file_path;
+ assert (g_file_test (test_model, G_FILE_TEST_EXISTS));
+
+ status = ml_single_open (&single, test_model, NULL, NULL,
+ ML_NNFW_TYPE_TENSORFLOW_LITE, ML_NNFW_HW_ANY);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_get_input_info (single, &in_info);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_tensors_data_create (in_info, &input);
+ assert_eq (status, ML_ERROR_NONE);
+
+ status = ml_single_invoke_dynamic (single, NULL, in_info, &output, &out_info);
+ assert_eq (status, ML_ERROR_INVALID_PARAMETER);
+
+ status = ml_single_invoke_dynamic (single, input, NULL, &output, &out_info);
+ assert_eq (status, ML_ERROR_INVALID_PARAMETER);
+
+ status = ml_single_invoke_dynamic (single, input, in_info, NULL, &out_info);
+ assert_eq (status, ML_ERROR_INVALID_PARAMETER);
+
+ status = ml_single_invoke_dynamic (single, input, in_info, &output, NULL);
+ assert_eq (status, ML_ERROR_INVALID_PARAMETER);
+
+ status = ml_single_close (single);
+ assert_eq (status, ML_ERROR_NONE);
+
+ ml_tensors_data_destroy (input);
+ ml_tensors_info_destroy (in_info);
+
+ g_free (test_model);
+
+ return 0;
+}