[ITC][sensor][Non-ACR][TFDF-9744 Time out for LED_GREEN_BATCH is fixed] 41/231241/5
authorABHISHEK JAIN <j.abhishek@samsung.com>
Mon, 20 Apr 2020 10:32:41 +0000 (16:02 +0530)
committershobhit verma <shobhit.v@samsung.com>
Mon, 20 Apr 2020 11:32:12 +0000 (11:32 +0000)
Change-Id: I2130faa8859ef548d95a72d0b337f95604368338
Signed-off-by: ABHISHEK JAIN <j.abhishek@samsung.com>
src/itc/sensor/ITs-sensor.c
src/itc/sensor/tct-sensor-native_mobile.h
src/itc/sensor/tct-sensor-native_tizeniot.h
src/itc/sensor/tct-sensor-native_wearable.h

index e9ab97f37956acfb5f823ddf5aa8738c81fa7c25..08c7f2d9cf7fc45beb354313ece4d13e2b433f3d 100755 (executable)
@@ -1394,10 +1394,11 @@ int ITc_sensor_listener_set_unset_events_cb_p(void)
 
        for ( enum_counter=0; enum_counter<enum_size; enum_counter++ )
        {
-               if ( SENSOR_PROXIMITY == stSensor[enum_counter].eSensorType )
+               if ( SENSOR_PROXIMITY == stSensor[enum_counter].eSensorType || SENSOR_HRM_LED_GREEN_BATCH  == stSensor[enum_counter].eSensorType )
                {
                        //For SENSOR_PROXIMITY type sensor, callback sensor_event_cb will not be invoked
                        //Instead read the value of sensor_proximity_e in some way
+                       // For SENSOR_HRM_LED_GREEN_BATCH type sensor, callback sensor_event_cb will be invoked in another TC
                        continue;
                }
 
@@ -1445,7 +1446,7 @@ int ITc_sensor_listener_set_unset_events_cb_p(void)
 
                        int nSensorTimeoutId = 0;
                        int nTimeOutCB = 2000;
-                       if(stSensor[enum_counter].eSensorType == SENSOR_HRM_BATCH || stSensor[enum_counter].eSensorType == SENSOR_HRM_LED_GREEN_BATCH)
+                       if(stSensor[enum_counter].eSensorType == SENSOR_HRM_BATCH)
                        {
                                nTimeOutCB = 30000;
                        }
@@ -1898,5 +1899,113 @@ int ITc_sensor_get_uri_p(void)
 
        return 0;
 }
+
+//& purpose: To register and unregister a callback function to be invoked when SENSOR_HRM_LED_GREEN_BATCH sensor event occurs.
+//& type: auto
+/**
+* @testcase                    ITc_sensor_listener_set_unset_events_cb_led_green_batch_p
+* @type                        auto
+* @author                      SRID(j.abhishek)
+* @reviewer                    SRID(shobhit.v)
+* @since_tizen                 5.5
+* @description                 To register and un-register a callback function to be invoked when SENSOR_HRM_LED_GREEN_BATCH sensor event occurs.
+* @scenario                    Get the handle to the Sensor\n
+*                              Get the listener handle\n
+*                              Register the callback function\n
+*                              Check the user data received in callback function
+* @apicovered                  sensor_listener_set_events_cb,sensor_listener_unset_events_cb
+* @passcase                    When sensor_listener_set_events_cb and sensor_listener_unset_events_cb is successful
+* @failcase                    If target API sensor_listener_set_events_cb fails or callback or any precondition API fails
+* @precondition                Sensor handle must be created
+* @postcondition               NA
+*/
+int ITc_sensor_listener_set_unset_events_cb_led_green_batch_p(void)
+{
+       START_TEST;
+
+       int nRet = SENSOR_ERROR_NONE;
+       SensorFeature stSensorBatch = {SENSOR_HRM_LED_GREEN_BATCH, "http://tizen.org/feature/sensor.heart_rate_monitor.led_green.batch"};
+
+       feature_check_e eFeatureCheck = SensorCheckFeature(stSensorBatch.eSensorType, stSensorBatch.szFeature);
+       if ( eFeatureCheck == FEATURE_MISMATCH )
+       {
+               return 1;
+       }
+       else if ( eFeatureCheck == FEATURE_UNSUPPORTED )
+       {
+               return 0;
+       }
+       else if ( eFeatureCheck == FEATURE_SUPPORTED )
+       {
+               int nSensorTimeoutId = 0;
+               int nTimeOutCB = 30000;
+
+               nRet = sensor_get_default_sensor(stSensorBatch.eSensorType, &g_pstSensorHandle);
+               PRINT_RESULT(SENSOR_ERROR_NONE, nRet, "sensor_get_default_sensor", SensorsGetError(nRet));
+               CHECK_HANDLE(g_pstSensorHandle, "sensor_get_default_sensor");
+
+               nRet = sensor_create_listener(g_pstSensorHandle, &g_pstSensorListener);
+               PRINT_RESULT(SENSOR_ERROR_NONE, nRet, "sensor_create_listener", SensorsGetError(nRet));
+               CHECK_HANDLE(g_pstSensorListener, "sensor_create_listener");
+
+               nRet = sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_ALWAYS_ON);
+               PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_set_option", SensorsGetError(nRet), sensor_destroy_listener(g_pstSensorListener));
+
+               usleep(200);
+               g_bSensorEventCallback = false;
+
+               // Target API
+               nRet = sensor_listener_set_events_cb(g_pstSensorListener, SensorEventCallback, NULL);
+               PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_set_events_cb", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+               nRet = sensor_listener_start(g_pstSensorListener);
+               PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_start", SensorsGetError(nRet), sensor_listener_unset_events_cb(g_pstSensorListener); sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+               RUN_POLLING_LOOP;
+
+               if ( !g_bSensorEventCallback )
+               {
+                       FPRINTF("[Line : %d][%s] sensor_listener_set_events_cb failed to invoke callback\\n", __LINE__, API_NAMESPACE);
+                       sensor_listener_stop(g_pstSensorListener);
+                       sensor_listener_unset_events_cb(g_pstSensorListener);
+                       sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
+                       sensor_destroy_listener(g_pstSensorListener);
+                       return 1;
+               }
+
+               nRet = sensor_listener_stop(g_pstSensorListener);
+               PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_stop", SensorsGetError(nRet), sensor_listener_unset_events_cb(g_pstSensorListener); sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+               g_bSensorEventCallback = false;
+
+               // Target API
+               nRet = sensor_listener_unset_events_cb(g_pstSensorListener);
+               PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_unset_events_cb", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+               nRet = sensor_listener_start(g_pstSensorListener);
+               PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_start", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+               RUN_POLLING_LOOP;
+
+               if ( g_bSensorEventCallback )
+               {
+                       FPRINTF("[Line : %d][%s] sensor_listener_unset_events_cb failed to stop callback invocation\\n", __LINE__, API_NAMESPACE);
+                       sensor_listener_stop(g_pstSensorListener);
+                       sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
+                       sensor_destroy_listener(g_pstSensorListener);
+                       return 1;
+               }
+
+               nRet = sensor_listener_stop(g_pstSensorListener);
+               PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_stop", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+               nRet = sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
+               PRINT_RESULT_NORETURN(SENSOR_ERROR_NONE, nRet, "sensor_listener_set_option", SensorsGetError(nRet));
+
+               nRet = sensor_destroy_listener(g_pstSensorListener);
+               PRINT_RESULT_NORETURN(SENSOR_ERROR_NONE, nRet, "sensor_destroy_listener", SensorsGetError(nRet));
+       }
+       return 0;
+}
 /** @} */
 /** @} */
index e4b2f61626556478470f1e06f2a59cf0805a5c00..fc2ab675fad4a98d330771e9132621e96493b99e 100755 (executable)
@@ -86,6 +86,7 @@ extern int ITc_sensor_provider_set_start_cb_p(void);
 extern int ITc_sensor_provider_set_stop_cb_p(void);
 extern int ITc_sensor_provider_set_interval_changed_cb_p(void);
 extern int ITc_sensor_provider_publish_events_p(void);
+extern int ITc_sensor_listener_set_unset_events_cb_led_green_batch_p(void);
 
 testcase tc_array[] = {
        {"ITc_sensor_is_supported_p",ITc_sensor_is_supported_p,ITs_sensor_listener_startup,ITs_sensor_listener_cleanup},
@@ -145,6 +146,7 @@ testcase tc_array[] = {
        {"ITc_sensor_provider_set_stop_cb_p",ITc_sensor_provider_set_stop_cb_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
        {"ITc_sensor_provider_set_interval_changed_cb_p",ITc_sensor_provider_set_interval_changed_cb_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
        {"ITc_sensor_provider_publish_events_p",ITc_sensor_provider_publish_events_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
+       {"ITc_sensor_listener_set_unset_events_cb_led_green_batch_p",ITc_sensor_listener_set_unset_events_cb_led_green_batch_p,ITs_sensor_listener_startup, ITs_sensor_listener_cleanup},
        {NULL, NULL}
 };
 
index e4b2f61626556478470f1e06f2a59cf0805a5c00..fc2ab675fad4a98d330771e9132621e96493b99e 100755 (executable)
@@ -86,6 +86,7 @@ extern int ITc_sensor_provider_set_start_cb_p(void);
 extern int ITc_sensor_provider_set_stop_cb_p(void);
 extern int ITc_sensor_provider_set_interval_changed_cb_p(void);
 extern int ITc_sensor_provider_publish_events_p(void);
+extern int ITc_sensor_listener_set_unset_events_cb_led_green_batch_p(void);
 
 testcase tc_array[] = {
        {"ITc_sensor_is_supported_p",ITc_sensor_is_supported_p,ITs_sensor_listener_startup,ITs_sensor_listener_cleanup},
@@ -145,6 +146,7 @@ testcase tc_array[] = {
        {"ITc_sensor_provider_set_stop_cb_p",ITc_sensor_provider_set_stop_cb_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
        {"ITc_sensor_provider_set_interval_changed_cb_p",ITc_sensor_provider_set_interval_changed_cb_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
        {"ITc_sensor_provider_publish_events_p",ITc_sensor_provider_publish_events_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
+       {"ITc_sensor_listener_set_unset_events_cb_led_green_batch_p",ITc_sensor_listener_set_unset_events_cb_led_green_batch_p,ITs_sensor_listener_startup, ITs_sensor_listener_cleanup},
        {NULL, NULL}
 };
 
index ea28b2b56719522d5ba045432937c5b5e279c59f..633fee85985f1d741e1cfbd7de6550eb58c27c13 100755 (executable)
@@ -85,6 +85,7 @@ extern int ITc_sensor_provider_set_start_cb_p(void);
 extern int ITc_sensor_provider_set_stop_cb_p(void);
 extern int ITc_sensor_provider_set_interval_changed_cb_p(void);
 extern int ITc_sensor_provider_publish_events_p(void);
+extern int ITc_sensor_listener_set_unset_events_cb_led_green_batch_p(void);
 
 testcase tc_array[] = {
        {"ITc_sensor_is_supported_p",ITc_sensor_is_supported_p,ITs_sensor_listener_startup,ITs_sensor_listener_cleanup},
@@ -144,7 +145,7 @@ testcase tc_array[] = {
        {"ITc_sensor_provider_set_stop_cb_p",ITc_sensor_provider_set_stop_cb_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
        {"ITc_sensor_provider_set_interval_changed_cb_p",ITc_sensor_provider_set_interval_changed_cb_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
        {"ITc_sensor_provider_publish_events_p",ITc_sensor_provider_publish_events_p,ITs_sensor_provider_startup,ITs_sensor_provider_cleanup},
-       
+       {"ITc_sensor_listener_set_unset_events_cb_led_green_batch_p",ITc_sensor_listener_set_unset_events_cb_led_green_batch_p,ITs_sensor_listener_startup, ITs_sensor_listener_cleanup},
        {NULL, NULL}
 };