extern int utc_ml_service_model_delete_n1 (void);
extern int utc_ml_service_ml_option_get_n1 (void);
extern int utc_ml_service_model_ml_information_get_n1 (void);
+extern int utc_ml_service_model_ml_information_destroy_n1 (void);
+extern int utc_ml_service_model_ml_information_list_destroy_n1 (void);
+extern int utc_ml_service_model_ml_information_list_length_n1 (void);
+extern int utc_ml_service_model_ml_information_list_get_n1 (void);
+
+extern int utc_ml_service_resource_add_n1 (void);
+extern int utc_ml_service_resource_add_n2 (void);
+extern int utc_ml_service_resource_add_n3 (void);
+extern int utc_ml_service_resource_delete_n1 (void);
+extern int utc_ml_service_resource_get_n1 (void);
+extern int utc_ml_service_resource_get_n2 (void);
+extern int utc_ml_service_resource_scenario_p1 (void);
testcase tc_array[] = {
{"utc_ml_pipeline_construct_p", utc_ml_pipeline_construct_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
{"utc_ml_service_model_delete_n1", utc_ml_service_model_delete_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{"utc_ml_service_ml_option_get_n1", utc_ml_service_ml_option_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{"utc_ml_service_model_ml_information_get_n1", utc_ml_service_model_ml_information_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_destroy_n1", utc_ml_service_model_ml_information_destroy_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_destroy_n1", utc_ml_service_model_ml_information_list_destroy_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_length_n1", utc_ml_service_model_ml_information_list_length_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_get_n1", utc_ml_service_model_ml_information_list_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+
+ {"utc_ml_service_resource_add_n1", utc_ml_service_resource_add_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_add_n2", utc_ml_service_resource_add_n2, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_add_n3", utc_ml_service_resource_add_n3, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_delete_n1", utc_ml_service_resource_delete_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_get_n1", utc_ml_service_resource_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_get_n2", utc_ml_service_resource_get_n2, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_scenario_p1", utc_ml_service_resource_scenario_p1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{NULL, NULL}
};
extern int utc_ml_service_model_delete_n1 (void);
extern int utc_ml_service_ml_option_get_n1 (void);
extern int utc_ml_service_model_ml_information_get_n1 (void);
+extern int utc_ml_service_model_ml_information_destroy_n1 (void);
+extern int utc_ml_service_model_ml_information_list_destroy_n1 (void);
+extern int utc_ml_service_model_ml_information_list_length_n1 (void);
+extern int utc_ml_service_model_ml_information_list_get_n1 (void);
+
+extern int utc_ml_service_resource_add_n1 (void);
+extern int utc_ml_service_resource_add_n2 (void);
+extern int utc_ml_service_resource_add_n3 (void);
+extern int utc_ml_service_resource_delete_n1 (void);
+extern int utc_ml_service_resource_get_n1 (void);
+extern int utc_ml_service_resource_get_n2 (void);
+extern int utc_ml_service_resource_scenario_p1 (void);
testcase tc_array[] = {
{"utc_ml_pipeline_construct_p", utc_ml_pipeline_construct_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
{"utc_ml_service_model_delete_n1", utc_ml_service_model_delete_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{"utc_ml_service_ml_option_get_n1", utc_ml_service_ml_option_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{"utc_ml_service_model_ml_information_get_n1", utc_ml_service_model_ml_information_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_destroy_n1", utc_ml_service_model_ml_information_destroy_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_destroy_n1", utc_ml_service_model_ml_information_list_destroy_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_length_n1", utc_ml_service_model_ml_information_list_length_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_get_n1", utc_ml_service_model_ml_information_list_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+
+ {"utc_ml_service_resource_add_n1", utc_ml_service_resource_add_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_add_n2", utc_ml_service_resource_add_n2, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_add_n3", utc_ml_service_resource_add_n3, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_delete_n1", utc_ml_service_resource_delete_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_get_n1", utc_ml_service_resource_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_get_n2", utc_ml_service_resource_get_n2, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_scenario_p1", utc_ml_service_resource_scenario_p1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{NULL, NULL}
};
extern int utc_ml_service_model_delete_n1 (void);
extern int utc_ml_service_ml_option_get_n1 (void);
extern int utc_ml_service_model_ml_information_get_n1 (void);
+extern int utc_ml_service_model_ml_information_destroy_n1 (void);
+extern int utc_ml_service_model_ml_information_list_destroy_n1 (void);
+extern int utc_ml_service_model_ml_information_list_length_n1 (void);
+extern int utc_ml_service_model_ml_information_list_get_n1 (void);
+
+extern int utc_ml_service_resource_add_n1 (void);
+extern int utc_ml_service_resource_add_n2 (void);
+extern int utc_ml_service_resource_add_n3 (void);
+extern int utc_ml_service_resource_delete_n1 (void);
+extern int utc_ml_service_resource_get_n1 (void);
+extern int utc_ml_service_resource_get_n2 (void);
+extern int utc_ml_service_resource_scenario_p1 (void);
testcase tc_array[] = {
{"utc_ml_pipeline_construct_p", utc_ml_pipeline_construct_p, utc_nnstreamer_pipeline_startup, utc_nnstreamer_pipeline_cleanup},
{"utc_ml_service_model_delete_n1", utc_ml_service_model_delete_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{"utc_ml_service_ml_option_get_n1", utc_ml_service_ml_option_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{"utc_ml_service_model_ml_information_get_n1", utc_ml_service_model_ml_information_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_destroy_n1", utc_ml_service_model_ml_information_destroy_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_destroy_n1", utc_ml_service_model_ml_information_list_destroy_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_length_n1", utc_ml_service_model_ml_information_list_length_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_model_ml_information_list_get_n1", utc_ml_service_model_ml_information_list_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+
+ {"utc_ml_service_resource_add_n1", utc_ml_service_resource_add_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_add_n2", utc_ml_service_resource_add_n2, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_add_n3", utc_ml_service_resource_add_n3, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_delete_n1", utc_ml_service_resource_delete_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_get_n1", utc_ml_service_resource_get_n1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_get_n2", utc_ml_service_resource_get_n2, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
+ {"utc_ml_service_resource_scenario_p1", utc_ml_service_resource_scenario_p1, utc_machine_learning_service_startup, utc_machine_learning_service_cleanup},
{NULL, NULL}
};
return 0;
}
+
+/**
+ * @testcase utc_ml_service_model_ml_information_destroy_n1
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_information_destroy with invalid parameter
+ */
+int utc_ml_service_model_ml_information_destroy_n1 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ status = ml_information_destroy (NULL);
+ assert_eq (ML_ERROR_INVALID_PARAMETER, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_model_ml_information_list_destroy_n1
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_information_list_destroy with invalid parameter
+ */
+int utc_ml_service_model_ml_information_list_destroy_n1 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ status = ml_information_list_destroy (NULL);
+ assert_eq (ML_ERROR_INVALID_PARAMETER, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_model_ml_information_list_length_n1
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_information_list_length with invalid parameter
+ */
+int utc_ml_service_model_ml_information_list_length_n1 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ const gchar *model_name = "some_model_name";
+ guint version, length;
+
+ status = ml_service_model_delete (model_name, 0U);
+ assert (status == ML_ERROR_NONE || status == ML_ERROR_INVALID_PARAMETER);
+
+ status = ml_service_model_register (model_name, test_model, true, NULL, &version);
+ assert_eq (ML_ERROR_NONE, status);
+
+ ml_information_list_h info_list_h = NULL;
+ status = ml_service_model_get_all (model_name, &info_list_h);
+ assert_eq (ML_ERROR_NONE, status);
+
+ /* invalid parameter for ml_information_list_length */
+ status = ml_information_list_length (info_list_h, NULL);
+ assert_eq (ML_ERROR_INVALID_PARAMETER, status);
+
+ /* invalid parameter for ml_information_list_length */
+ status = ml_information_list_length (NULL, &length);
+ assert_eq (ML_ERROR_INVALID_PARAMETER, status);
+
+ /* proper parameters for ml_information_list_length */
+ status = ml_information_list_length (info_list_h, &length);
+ assert_eq (ML_ERROR_NONE, status);
+ assert_eq (1U, length);
+
+ status = ml_information_list_destroy (info_list_h);
+ assert_eq (ML_ERROR_NONE, status);
+
+ status = ml_service_model_delete (model_name, 0U);
+ assert_eq (ML_ERROR_NONE, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_model_ml_information_list_get_n1
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_information_list_get with invalid parameter
+ */
+int utc_ml_service_model_ml_information_list_get_n1 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ const gchar *model_name = "some_model_name";
+ guint version, length;
+
+ status = ml_service_model_delete (model_name, 0U);
+ assert (status == ML_ERROR_NONE || status == ML_ERROR_INVALID_PARAMETER);
+
+ status = ml_service_model_register (model_name, test_model, true, NULL, &version);
+ assert_eq (ML_ERROR_NONE, status);
+
+ ml_information_list_h info_list_h = NULL;
+ status = ml_service_model_get_all (model_name, &info_list_h);
+ assert_eq (ML_ERROR_NONE, status);
+
+ status = ml_information_list_length (info_list_h, &length);
+ assert_eq (ML_ERROR_NONE, status);
+ assert_eq (1U, length);
+
+ ml_information_h info_h = NULL;
+
+ /* invalid parameter for ml_information_list_get */
+ status = ml_information_list_get (NULL, 0U, &info_h);
+ assert_eq (ML_ERROR_INVALID_PARAMETER, status);
+
+ /* invalid parameter for ml_information_list_get */
+ status = ml_information_list_get (info_list_h, 0U, NULL);
+ assert_eq (ML_ERROR_INVALID_PARAMETER, status);
+
+ /* invalid parameter for ml_information_list_get */
+ status = ml_information_list_get (info_list_h, 1U, &info_h);
+ assert_eq (ML_ERROR_INVALID_PARAMETER, status);
+
+ /* proper parameters for ml_information_list_get */
+ status = ml_information_list_get (info_list_h, 0U, &info_h);
+ assert_eq (ML_ERROR_NONE, status);
+
+ status = ml_information_list_destroy (info_list_h);
+ assert_eq (ML_ERROR_NONE, status);
+
+ status = ml_service_model_delete (model_name, 0U);
+ assert_eq (ML_ERROR_NONE, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_resource_add_n1
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_service_resource_add with invalid parameter
+ */
+int utc_ml_service_resource_add_n1 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ status = ml_service_resource_add (NULL, test_model, "add-resource-invalid-key");
+ assert_neq (ML_ERROR_NONE, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_resource_add_n2
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_service_resource_add with invalid parameter
+ */
+int utc_ml_service_resource_add_n2 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ status = ml_service_resource_add ("tct-utc-ml-svc-res", NULL, "add-resource-invalid-path");
+ assert_neq (ML_ERROR_NONE, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_resource_add_n3
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_service_resource_add with invalid parameter
+ */
+int utc_ml_service_resource_add_n3 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ status = ml_service_resource_add ("tct-utc-ml-svc-res", "/some/invalid/path/non_exist.tflite", "add-resource-non-exist-path");
+ assert_neq (ML_ERROR_NONE, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_resource_delete_n1
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_service_resource_delete with invalid parameter
+ */
+int utc_ml_service_resource_delete_n1 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ status = ml_service_resource_delete (NULL);
+ assert_neq (ML_ERROR_NONE, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_resource_get_n1
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_service_resource_get with invalid parameter
+ */
+int utc_ml_service_resource_get_n1 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ ml_information_h res = NULL;
+
+ status = ml_service_resource_get (NULL, &res);
+ assert_neq (ML_ERROR_NONE, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_resource_get_n2
+ * @since_tizen 8.0
+ * @description Negative test case of using ml_service_resource_get with invalid parameter
+ */
+int utc_ml_service_resource_get_n2 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ status = ml_service_resource_get ("tct-utc-ml-svc-res", NULL);
+ assert_neq (ML_ERROR_NONE, status);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_ml_service_resource_scenario_p1
+ * @since_tizen 8.0
+ * @description Usage scenario test case of ml_service_resource_* API
+ */
+int utc_ml_service_resource_scenario_p1 (void)
+{
+ IS_SUPPORT_ML_SERVICE_FEATURE;
+
+ const gchar *key = "utc-res-test";
+ gchar *res_path[2];
+ gchar *res_desc[2];
+ guint length;
+ ml_information_list_h info_list = NULL;
+ ml_information_h info = NULL;
+
+ /* delete all resources with the key before test */
+ status = ml_service_resource_delete (key);
+ assert (ML_ERROR_NONE == status || ML_ERROR_INVALID_PARAMETER == status);
+
+ res_path[0] = g_strdup (test_model);
+ res_desc[0] = g_strdup ("res1 description");
+ res_path[1] = g_strdup (test_model_add);
+ res_desc[1] = g_strdup ("res2 description");
+
+ for (guint i = 0; i < 2; ++i) {
+ status = ml_service_resource_add (key, res_path[i], res_desc[i]);
+ assert_eq (ML_ERROR_NONE, status);
+ }
+
+ status = ml_service_resource_get (key, &info_list);
+ assert_eq (ML_ERROR_NONE, status);
+
+ status = ml_information_list_length (info_list, &length);
+ assert_eq (ML_ERROR_NONE, status);
+ assert_eq (2U, length);
+
+ for (guint i = 0; i < length; ++i) {
+ gchar *path, *desc;
+ status = ml_information_list_get (info_list, i, &info);
+ assert_eq (ML_ERROR_NONE, status);
+
+ status = ml_information_get (info, "path", (void **) &path);
+ assert_eq (ML_ERROR_NONE, status);
+ assert (0 == strcmp (res_path[i], path));
+
+ status = ml_information_get (info, "description", (void **) &desc);
+ assert_eq (ML_ERROR_NONE, status);
+ assert (0 == strcmp (res_desc[i], desc));
+ }
+
+ status = ml_information_list_destroy (info_list);
+ assert_eq (ML_ERROR_NONE, status);
+
+ status = ml_service_resource_delete (key);
+ assert_eq (ML_ERROR_NONE, status);
+
+ for (guint i = 0; i < 2; ++i) {
+ g_free (res_path[i]);
+ g_free (res_desc[i]);
+ }
+
+ return 0;
+}