From: Boram Bae Date: Wed, 15 Jan 2020 01:50:30 +0000 (+0900) Subject: [UTC][capi-system-sensor][ACR-1481][Add batch events APIs and Deprecate event APIs] X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=281859a3edb4efda80e3f23f455a3adf59da315d;p=test%2Ftct%2Fnative%2Fapi.git [UTC][capi-system-sensor][ACR-1481][Add batch events APIs and Deprecate event APIs] Change-Id: I30215c3d332ec41a3d65af896c0ff641a5dc58a1 Signed-off-by: Boram Bae --- diff --git a/src/utc/sensor/public.list b/src/utc/sensor/public.list index 6a25c957d..0d2d94f0f 100755 --- a/src/utc/sensor/public.list +++ b/src/utc/sensor/public.list @@ -27,6 +27,7 @@ sensor_remove_provider sensor_listener_read_data sensor_listener_set_accuracy_cb sensor_listener_set_event_cb +sensor_listener_set_events_cb sensor_listener_set_interval sensor_listener_set_max_batch_latency sensor_listener_set_option @@ -34,6 +35,7 @@ sensor_listener_start sensor_listener_stop sensor_listener_unset_accuracy_cb sensor_listener_unset_event_cb +sensor_listener_unset_events_cb sensor_provider_set_name sensor_provider_set_vendor sensor_provider_set_range @@ -42,6 +44,7 @@ sensor_provider_set_start_cb sensor_provider_set_stop_cb sensor_provider_set_interval_changed_cb sensor_provider_publish +sensor_provider_publish_events sensor_recorder_is_supported sensor_recorder_start sensor_recorder_stop diff --git a/src/utc/sensor/tct-sensor-core_mobile.h b/src/utc/sensor/tct-sensor-core_mobile.h index c3254d8b0..9812aa9ac 100755 --- a/src/utc/sensor/tct-sensor-core_mobile.h +++ b/src/utc/sensor/tct-sensor-core_mobile.h @@ -49,6 +49,10 @@ extern int utc_system_sensor_listener_set_event_cb_p(void); extern int utc_system_sensor_listener_set_event_cb_n(void); extern int utc_system_sensor_listener_unset_event_cb_p(void); extern int utc_system_sensor_listener_unset_event_cb_n(void); +extern int utc_system_sensor_listener_set_events_cb_p(void); +extern int utc_system_sensor_listener_set_events_cb_n(void); +extern int utc_system_sensor_listener_unset_events_cb_p(void); +extern int utc_system_sensor_listener_unset_events_cb_n(void); extern int utc_system_sensor_listener_set_accuracy_cb_p(void); extern int utc_system_sensor_listener_set_accuracy_cb_n(void); extern int utc_system_sensor_listener_unset_accuracy_cb_p(void); @@ -149,6 +153,8 @@ extern int utc_system_sensor_provider_set_interval_changed_cb_p(void); extern int utc_system_sensor_provider_set_interval_changed_cb_n(void); extern int utc_system_sensor_provider_publish_p(void); extern int utc_system_sensor_provider_publish_n(void); +extern int utc_system_sensor_provider_publish_events_p(void); +extern int utc_system_sensor_provider_publish_events_n(void); extern int utc_system_sensor_util_get_angle_change_p(void); extern int utc_system_sensor_util_get_angle_change_n(void); extern int utc_system_sensor_util_get_declination_p(void); @@ -189,6 +195,10 @@ testcase tc_array[] = { {"utc_system_sensor_listener_set_event_cb_n",utc_system_sensor_listener_set_event_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_event_cb_p",utc_system_sensor_listener_unset_event_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_event_cb_n",utc_system_sensor_listener_unset_event_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_set_events_cb_p",utc_system_sensor_listener_set_events_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_set_events_cb_n",utc_system_sensor_listener_set_events_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_unset_events_cb_p",utc_system_sensor_listener_unset_events_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_unset_events_cb_n",utc_system_sensor_listener_unset_events_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_set_accuracy_cb_p",utc_system_sensor_listener_set_accuracy_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_set_accuracy_cb_n",utc_system_sensor_listener_set_accuracy_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_accuracy_cb_p",utc_system_sensor_listener_unset_accuracy_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, @@ -289,6 +299,8 @@ testcase tc_array[] = { {"utc_system_sensor_provider_set_interval_changed_cb_n",utc_system_sensor_provider_set_interval_changed_cb_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_provider_publish_p",utc_system_sensor_provider_publish_p,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_provider_publish_n",utc_system_sensor_provider_publish_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, + {"utc_system_sensor_provider_publish_events_p",utc_system_sensor_provider_publish_events_p,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, + {"utc_system_sensor_provider_publish_events_n",utc_system_sensor_provider_publish_events_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_util_get_angle_change_p",utc_system_sensor_util_get_angle_change_p,utc_system_sensor_util_startup,NULL}, {"utc_system_sensor_util_get_angle_change_n",utc_system_sensor_util_get_angle_change_n,utc_system_sensor_util_startup,NULL}, {"utc_system_sensor_util_get_declination_p",utc_system_sensor_util_get_declination_p,utc_system_sensor_util_startup,NULL}, diff --git a/src/utc/sensor/tct-sensor-core_tizeniot.h b/src/utc/sensor/tct-sensor-core_tizeniot.h index c3254d8b0..9812aa9ac 100755 --- a/src/utc/sensor/tct-sensor-core_tizeniot.h +++ b/src/utc/sensor/tct-sensor-core_tizeniot.h @@ -49,6 +49,10 @@ extern int utc_system_sensor_listener_set_event_cb_p(void); extern int utc_system_sensor_listener_set_event_cb_n(void); extern int utc_system_sensor_listener_unset_event_cb_p(void); extern int utc_system_sensor_listener_unset_event_cb_n(void); +extern int utc_system_sensor_listener_set_events_cb_p(void); +extern int utc_system_sensor_listener_set_events_cb_n(void); +extern int utc_system_sensor_listener_unset_events_cb_p(void); +extern int utc_system_sensor_listener_unset_events_cb_n(void); extern int utc_system_sensor_listener_set_accuracy_cb_p(void); extern int utc_system_sensor_listener_set_accuracy_cb_n(void); extern int utc_system_sensor_listener_unset_accuracy_cb_p(void); @@ -149,6 +153,8 @@ extern int utc_system_sensor_provider_set_interval_changed_cb_p(void); extern int utc_system_sensor_provider_set_interval_changed_cb_n(void); extern int utc_system_sensor_provider_publish_p(void); extern int utc_system_sensor_provider_publish_n(void); +extern int utc_system_sensor_provider_publish_events_p(void); +extern int utc_system_sensor_provider_publish_events_n(void); extern int utc_system_sensor_util_get_angle_change_p(void); extern int utc_system_sensor_util_get_angle_change_n(void); extern int utc_system_sensor_util_get_declination_p(void); @@ -189,6 +195,10 @@ testcase tc_array[] = { {"utc_system_sensor_listener_set_event_cb_n",utc_system_sensor_listener_set_event_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_event_cb_p",utc_system_sensor_listener_unset_event_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_event_cb_n",utc_system_sensor_listener_unset_event_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_set_events_cb_p",utc_system_sensor_listener_set_events_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_set_events_cb_n",utc_system_sensor_listener_set_events_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_unset_events_cb_p",utc_system_sensor_listener_unset_events_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_unset_events_cb_n",utc_system_sensor_listener_unset_events_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_set_accuracy_cb_p",utc_system_sensor_listener_set_accuracy_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_set_accuracy_cb_n",utc_system_sensor_listener_set_accuracy_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_accuracy_cb_p",utc_system_sensor_listener_unset_accuracy_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, @@ -289,6 +299,8 @@ testcase tc_array[] = { {"utc_system_sensor_provider_set_interval_changed_cb_n",utc_system_sensor_provider_set_interval_changed_cb_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_provider_publish_p",utc_system_sensor_provider_publish_p,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_provider_publish_n",utc_system_sensor_provider_publish_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, + {"utc_system_sensor_provider_publish_events_p",utc_system_sensor_provider_publish_events_p,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, + {"utc_system_sensor_provider_publish_events_n",utc_system_sensor_provider_publish_events_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_util_get_angle_change_p",utc_system_sensor_util_get_angle_change_p,utc_system_sensor_util_startup,NULL}, {"utc_system_sensor_util_get_angle_change_n",utc_system_sensor_util_get_angle_change_n,utc_system_sensor_util_startup,NULL}, {"utc_system_sensor_util_get_declination_p",utc_system_sensor_util_get_declination_p,utc_system_sensor_util_startup,NULL}, diff --git a/src/utc/sensor/tct-sensor-core_wearable.h b/src/utc/sensor/tct-sensor-core_wearable.h index 3116f3aa0..4c60a4385 100755 --- a/src/utc/sensor/tct-sensor-core_wearable.h +++ b/src/utc/sensor/tct-sensor-core_wearable.h @@ -49,6 +49,10 @@ extern int utc_system_sensor_listener_set_event_cb_p(void); extern int utc_system_sensor_listener_set_event_cb_n(void); extern int utc_system_sensor_listener_unset_event_cb_p(void); extern int utc_system_sensor_listener_unset_event_cb_n(void); +extern int utc_system_sensor_listener_set_events_cb_p(void); +extern int utc_system_sensor_listener_set_events_cb_n(void); +extern int utc_system_sensor_listener_unset_events_cb_p(void); +extern int utc_system_sensor_listener_unset_events_cb_n(void); extern int utc_system_sensor_listener_set_accuracy_cb_p(void); extern int utc_system_sensor_listener_set_accuracy_cb_n(void); extern int utc_system_sensor_listener_unset_accuracy_cb_p(void); @@ -149,6 +153,8 @@ extern int utc_system_sensor_provider_set_interval_changed_cb_p(void); extern int utc_system_sensor_provider_set_interval_changed_cb_n(void); extern int utc_system_sensor_provider_publish_p(void); extern int utc_system_sensor_provider_publish_n(void); +extern int utc_system_sensor_provider_publish_events_p(void); +extern int utc_system_sensor_provider_publish_events_n(void); extern int utc_system_sensor_util_get_angle_change_p(void); extern int utc_system_sensor_util_get_angle_change_n(void); extern int utc_system_sensor_util_get_declination_p(void); @@ -187,6 +193,10 @@ testcase tc_array[] = { {"utc_system_sensor_listener_set_event_cb_n",utc_system_sensor_listener_set_event_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_event_cb_p",utc_system_sensor_listener_unset_event_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_event_cb_n",utc_system_sensor_listener_unset_event_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_set_events_cb_p",utc_system_sensor_listener_set_events_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_set_events_cb_n",utc_system_sensor_listener_set_events_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_unset_events_cb_p",utc_system_sensor_listener_unset_events_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, + {"utc_system_sensor_listener_unset_events_cb_n",utc_system_sensor_listener_unset_events_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_set_accuracy_cb_p",utc_system_sensor_listener_set_accuracy_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_set_accuracy_cb_n",utc_system_sensor_listener_set_accuracy_cb_n,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, {"utc_system_sensor_listener_unset_accuracy_cb_p",utc_system_sensor_listener_unset_accuracy_cb_p,utc_system_sensor_basic_startup,utc_system_sensor_basic_cleanup}, @@ -287,6 +297,8 @@ testcase tc_array[] = { {"utc_system_sensor_provider_set_interval_changed_cb_n",utc_system_sensor_provider_set_interval_changed_cb_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_provider_publish_p",utc_system_sensor_provider_publish_p,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_provider_publish_n",utc_system_sensor_provider_publish_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, + {"utc_system_sensor_provider_publish_events_p",utc_system_sensor_provider_publish_events_p,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, + {"utc_system_sensor_provider_publish_events_n",utc_system_sensor_provider_publish_events_n,utc_system_sensor_provider_startup,utc_system_sensor_provider_cleanup}, {"utc_system_sensor_util_get_angle_change_p",utc_system_sensor_util_get_angle_change_p,utc_system_sensor_util_startup,NULL}, {"utc_system_sensor_util_get_angle_change_n",utc_system_sensor_util_get_angle_change_n,utc_system_sensor_util_startup,NULL}, {"utc_system_sensor_util_get_declination_p",utc_system_sensor_util_get_declination_p,utc_system_sensor_util_startup,NULL}, diff --git a/src/utc/sensor/utc-system-sensor-basic.c b/src/utc/sensor/utc-system-sensor-basic.c index fb8e767df..1ed6d8ded 100755 --- a/src/utc/sensor/utc-system-sensor-basic.c +++ b/src/utc/sensor/utc-system-sensor-basic.c @@ -169,6 +169,19 @@ static void test_callback(sensor_h sensor, sensor_event_s *event, void* user_dat g_main_loop_quit(g_mainloop); } +static void test_events_callback(sensor_h sensor, sensor_event_s events[], int events_count, void *user_data) +{ + fprintf(stderr, "test_callback was called\n"); + + char* ud = (char*) user_data; + if(strcmp(ud, TEST_STRING) == 0) { + g_called = true; + } + + if (g_main_loop_is_running(g_mainloop)) + g_main_loop_quit(g_mainloop); +} + /** * @function utc_system_sensor_basic_startup * @description Called before each test @@ -791,6 +804,148 @@ int utc_system_sensor_listener_unset_event_cb_n(void) return 0; } +/** + * @testcase utc_system_sensor_listener_set_events_cb_p + * @since_tizen 5.5 + * @description Registers a callback function to be invoked when a sensor events occurs. + */ +int utc_system_sensor_listener_set_events_cb_p(void) +{ + int i = 0; + int type_count; + + type_count = sizeof(types) / sizeof(sensor_type_e); + for (i = 0; i < type_count; i++) { + int error = SENSOR_ERROR_NONE; + sensor_listener_h listener; + sensor_h sensor; + g_called = false; + + error = sensor_get_default_sensor(types[i], &sensor); + + if(!sensor_supported[i]){ + assert_eq(error,SENSOR_ERROR_NOT_SUPPORTED); + } + else{ + error = sensor_create_listener(sensor, &listener); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_listener_set_events_cb(listener, test_events_callback, TEST_STRING); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_listener_start(listener); + assert_eq(error, SENSOR_ERROR_NONE); + + sensor_listener_set_option(listener, SENSOR_OPTION_ALWAYS_ON); + + wait_callback(types[i]); + + error = sensor_listener_stop(listener); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_listener_unset_events_cb(listener); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_destroy_listener(listener); + assert_eq(error, SENSOR_ERROR_NONE); + + assert(g_called); + } + } + + return 0; +} + +/** + * @testcase utc_system_sensor_listener_set_events_cb_n + * @since_tizen 5.5 + * @description Registers a callback function to be invoked when a sensor event occurs with invalid parameter. + */ +int utc_system_sensor_listener_set_events_cb_n(void) +{ + int error = SENSOR_ERROR_NONE; + + error = sensor_listener_set_events_cb(NULL, test_events_callback, TEST_STRING); + + assert_eq(error, SENSOR_ERROR_INVALID_PARAMETER); + + sensor_listener_h listener; + sensor_h sensor; + + if (!sensor_supported[SENSOR_ACCELEROMETER]) + return 0; + + sensor_get_default_sensor(SENSOR_ACCELEROMETER, &sensor); + + sensor_create_listener(sensor, &listener); + + *(int *)listener = WRONG_HANDLE; + + error = sensor_listener_set_events_cb(listener, test_events_callback, TEST_STRING); + + assert_eq(error, SENSOR_ERROR_OPERATION_FAILED); + + return 0; +} + + +/** + * @testcase utc_system_sensor_listener_unset_events_cb_p + * @since_tizen 5.5 + * @description Unregisters the sensor callback function. + */ +int utc_system_sensor_listener_unset_events_cb_p(void) +{ + int i = 0; + int type_count; + + type_count = sizeof(types) / sizeof(sensor_type_e); + + for (i = 0; i < type_count; i++) { + int error = SENSOR_ERROR_NONE; + sensor_listener_h listener; + sensor_h sensor; + g_called = false; + + error = sensor_get_default_sensor(types[i], &sensor); + if(!sensor_supported[i]){ + assert_eq(error,SENSOR_ERROR_NOT_SUPPORTED); + } + else{ + error = sensor_create_listener(sensor, &listener); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_listener_set_events_cb(listener, test_events_callback, TEST_STRING); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_listener_unset_events_cb(listener); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_destroy_listener(listener); + assert_eq(error, SENSOR_ERROR_NONE); + + } + } + + return 0; +} + +/** + * @testcase utc_system_sensor_listener_unset_events_cb_n + * @since_tizen 5.5 + * @description Unregisters the sensor callback function with invalid parameter. + */ +int utc_system_sensor_listener_unset_events_cb_n(void) +{ + int error = SENSOR_ERROR_NONE; + + error = sensor_listener_unset_events_cb(NULL); + + assert_eq(error, SENSOR_ERROR_INVALID_PARAMETER); + + return 0; +} + /** * @testcase utc_system_sensor_listener_set_accuracy_cb_p * @since_tizen 2.3 diff --git a/src/utc/sensor/utc-system-sensor-provider.c b/src/utc/sensor/utc-system-sensor-provider.c index b96e146d3..ed70b5d6f 100755 --- a/src/utc/sensor/utc-system-sensor-provider.c +++ b/src/utc/sensor/utc-system-sensor-provider.c @@ -896,3 +896,79 @@ int utc_system_sensor_provider_publish_n(void) return 0; } + +static gboolean test_publish_events(gpointer gdata) +{ + fprintf(stderr, "test_callback was called\n"); + + if (g_called) return FALSE; + + sensor_provider_h provider = (sensor_provider_h)(gdata); + const int NUMBER_OF_EVENT = 100; + sensor_event_s data[NUMBER_OF_EVENT]; + + for (int i = 0 ; i < NUMBER_OF_EVENT; i++) { + data[i].accuracy = 3; + data[i].timestamp = 1000 + i; + data[i].value_count = 3; + data[i].values[0] = i; + data[i].values[1] = i; + data[i].values[2] = i; + } + + sensor_provider_publish_events(provider, data, NUMBER_OF_EVENT); + return TRUE; +} + +/** + * @testcase utc_system_sensor_provider_publish_events_p + * @since_tizen 5.5 + * @description Publishes sensor events to it's listeners + */ +int utc_system_sensor_provider_publish_events_p(void) +{ + int error = SENSOR_ERROR_NONE; + sensor_listener_h listener; + sensor_provider_h provider; + g_called = false; + + error = sensor_create_provider(TEST_SENSOR_URI, &provider); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_add_provider(provider); + assert_eq(error, SENSOR_ERROR_NONE); + + g_timeout_add(100, test_publish_events, provider); + + start_mysensor(&listener, TEST_STRING); + + wait_callback(); + assert_eq(g_called, true); + + stop_mysensor(listener); + + error = sensor_remove_provider(provider); + assert_eq(error, SENSOR_ERROR_NONE); + + error = sensor_destroy_provider(provider); + assert_eq(error, SENSOR_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_system_sensor_provider_publish_events_n + * @since_tizen 5.5 + * @description Publishes sensor events to it's listeners with invalid parameter + */ +int utc_system_sensor_provider_publish_events_n(void) +{ + int error = SENSOR_ERROR_NONE; + sensor_event_s event[10]; + + error = sensor_provider_publish_events(NULL, event, 10); + assert_eq(error, SENSOR_ERROR_INVALID_PARAMETER); + + return 0; +} +