[ITC][libstorage][ACR-673][Add storage change event handler api by storage type]
authormanu.tiwari <manu.tiwari@samsung.com>
Wed, 29 Jun 2016 09:27:28 +0000 (14:57 +0530)
committerAmritanshu Pandia <a.pandia1@samsung.com>
Thu, 30 Jun 2016 05:10:51 +0000 (22:10 -0700)
Change-Id: Iba44a3c4d27dff9a55f466c524ca2017e9e04c0e
Signed-off-by: manu.tiwari <manu.tiwari@samsung.com>
src/itc/libstorage/ITs-libstorage.c
src/itc/libstorage/tct-libstorage-native_common_iot.h
src/itc/libstorage/tct-libstorage-native_mobile.h
src/itc/libstorage/tct-libstorage-native_tv.h
src/itc/libstorage/tct-libstorage-native_wearable.h

index c5542b1..4f2eb21 100755 (executable)
@@ -41,22 +41,24 @@ bool storage_device_supported_cb_p(int storage_id, storage_type_e type, storage_
 {
        struct str_id *id;
 
-       switch (type) {
-       case STORAGE_TYPE_INTERNAL:
-       case STORAGE_TYPE_EXTERNAL:
-               break;
-       default:
-               return true;
+       switch (type)
+       {
+               case STORAGE_TYPE_INTERNAL:
+               case STORAGE_TYPE_EXTERNAL:
+                       break;
+               default:
+                       return true;
        }
 
-       switch (state) {
-       case STORAGE_STATE_UNMOUNTABLE:
-       case STORAGE_STATE_REMOVED:
-       case STORAGE_STATE_MOUNTED:
-       case STORAGE_STATE_MOUNTED_READ_ONLY:
-               break;
-       default:
-               return true;
+       switch (state)
+       {
+               case STORAGE_STATE_UNMOUNTABLE:
+               case STORAGE_STATE_REMOVED:
+               case STORAGE_STATE_MOUNTED:
+               case STORAGE_STATE_MOUNTED_READ_ONLY:
+                       break;
+               default:
+                       return true;
        }
 
        FPRINTF("[Line : %d][%s] storage_device_supported_callback callback hit\\n", __LINE__, API_NAMESPACE);
@@ -129,7 +131,16 @@ void Storage_state_changed_cb_p(int storage_id, storage_state_e state, void *use
        }
        FPRINTF("[Line : %d][%s] Storage_state_changed_cb_p callback hit\\n", __LINE__, API_NAMESPACE);
 }
-
+/**
+* @function            Storage_changed_cb_p
+* @description         Called when the state of a storage type changes
+* @parameter           storage_id : storage id, dev : storage device, state: storage state, fstype, fsuuid, mountpath, primary, flags, user_data : user data passed to callback
+* @return                      NA
+*/
+void Storage_changed_cb_p(int storage_id, storage_dev_e dev, storage_state_e state, const char *fstype, const char *fsuuid, const char *mountpath, bool primary, int flags, void *user_data)
+{
+       FPRINTF("[Line : %d][%s] Storage_changed_cb_p callback hit\\n", __LINE__, API_NAMESPACE);
+}
 
 /**
 * @function            ITs_storage_startup
@@ -727,9 +738,11 @@ int ITc_libstorage_set_unset_state_changed_cb_p(void)
        struct str_id *id;
 
        id = storage_head.next;
-       while (id) {
+       while (id) 
+       {
                storage_error_e nRet = storage_set_state_changed_cb(id->id, &Storage_state_changed_cb_p, NULL);//target api//register callback
-               if (nRet != STORAGE_ERROR_NONE) {
+               if (nRet != STORAGE_ERROR_NONE) 
+               {
                        FPRINTF("[Line : %d][%s] storage_set_state_changed_cb failed for %s, error returned = %s\\n", __LINE__, API_NAMESPACE, StorageGetType(id->type), StorageGetError(nRet));
                        return 1;
                }
@@ -739,7 +752,8 @@ int ITc_libstorage_set_unset_state_changed_cb_p(void)
                //CHECK_CALLBACK_STATUS("storage_set_state_changed_cb", nSetFailCount);
                //Unregisters the callback function.
                nRet = storage_unset_state_changed_cb (id->id, &Storage_state_changed_cb_p);//target api//unregister callback
-               if (nRet != STORAGE_ERROR_NONE) {
+               if (nRet != STORAGE_ERROR_NONE) 
+               {
                        FPRINTF("[Line : %d][%s] storage_unset_state_changed_cb failed for %s, error returned = %s\\n", __LINE__, API_NAMESPACE, StorageGetType(id->type), StorageGetError(nRet));
                        return 1;
                }
@@ -750,5 +764,57 @@ int ITc_libstorage_set_unset_state_changed_cb_p(void)
        release_storage_id_callback();
        return 0;
 }
+//& purpose: Registers and Unregisters a callback function to be invoked when the state of the specified storage device type changes. 
+//& type: auto
+
+/**
+* @testcase                    ITc_libstorage_storage_set_unset_changed_cb_p
+* @since_tizen                         3.0
+* @author              SRID(manu.tiwari)
+* @reviewer            SRID(a.pandia)
+* @type                                auto
+* @scenario                            Registers and Unregister a callback function to be invoked when the state of the storage device type changes.  
+* @apicovered                  storage_set_changed_cb, storage_unset_changed_cb
+* @passcase                            When storage_set_changed_cb and storage_unset_changed_cb API passed
+* @failcase                            If storage_set_state_changed_cb and storage_unset_changed_cb API fails
+* @precondition                        NA
+* @postcondition               storage_changed_cb() will be invoked if the state of the registered storage type changes. 
+*/
+int ITc_libstorage_storage_set_unset_changed_cb_p(void)
+{
+       START_TEST;
+       if (get_storage_id_callback() == false)
+               return 1;
+
+       struct str_id *id;
+
+       id = storage_head.next;
+
+       while (id)
+   {
+          if(id->type == STORAGE_TYPE_EXTERNAL)
+          {
+                       //target api
+                       storage_error_e nRet = storage_set_changed_cb(id->type, Storage_changed_cb_p, NULL);
+                       PRINT_RESULT(STORAGE_ERROR_NONE, nRet, "storage_set_changed_cb", StorageGetError(nRet));
+                       
+                       //as we need manual intervention to invoke callback like mount, unmount sdcard
+                       //so we are not checking callback status
+                       
+                       //target api
+                       nRet = storage_unset_changed_cb(id->type, Storage_changed_cb_p);
+                       PRINT_RESULT(STORAGE_ERROR_NONE, nRet, "storage_unset_changed_cb", StorageGetError(nRet));
+                       
+          }
+          else
+          {
+                  FPRINTF("[Line : %d][%s]Storage type not supported\\n", __LINE__, API_NAMESPACE);\r
+          }
+          id = id->next;
+       }
+
+       release_storage_id_callback();
+       return 0;
+}
 /** @} */
 /** @} */
index 22ae2b7..9a6a39f 100755 (executable)
@@ -31,6 +31,7 @@ extern int ITc_libstorage_get_state_p(void);
 extern int ITc_libstorage_get_total_space_p(void);
 extern int ITc_libstorage_get_available_space_p(void);
 extern int ITc_libstorage_set_unset_state_changed_cb_p(void);
+extern int ITc_libstorage_storage_set_unset_changed_cb_p(void);
 
 testcase tc_array[] = {
     {"ITc_libstorage_get_internal_memory_size_p", ITc_libstorage_get_internal_memory_size_p, ITs_storage_startup, ITs_storage_cleanup},
@@ -42,6 +43,7 @@ testcase tc_array[] = {
     {"ITc_libstorage_get_total_space_p", ITc_libstorage_get_total_space_p, ITs_storage_startup, ITs_storage_cleanup},
     {"ITc_libstorage_get_available_space_p", ITc_libstorage_get_available_space_p, ITs_storage_startup, ITs_storage_cleanup},
     {"ITc_libstorage_set_unset_state_changed_cb_p", ITc_libstorage_set_unset_state_changed_cb_p, ITs_storage_startup, ITs_storage_cleanup},
+       {"ITc_libstorage_storage_set_unset_changed_cb_p", ITc_libstorage_storage_set_unset_changed_cb_p, ITs_storage_startup, ITs_storage_cleanup},
     {NULL, NULL}
 };
 
index 69ee010..878b5be 100755 (executable)
@@ -32,6 +32,7 @@ extern int ITc_libstorage_get_state_p(void);
 extern int ITc_libstorage_get_total_space_p(void);
 extern int ITc_libstorage_get_available_space_p(void);
 extern int ITc_libstorage_set_unset_state_changed_cb_p(void);
+extern int ITc_libstorage_storage_set_unset_changed_cb_p(void);
 
 testcase tc_array[] = {
     {"ITc_libstorage_get_internal_memory_size_p", ITc_libstorage_get_internal_memory_size_p, ITs_storage_startup, ITs_storage_cleanup},
@@ -44,6 +45,7 @@ testcase tc_array[] = {
     {"ITc_libstorage_get_total_space_p", ITc_libstorage_get_total_space_p, ITs_storage_startup, ITs_storage_cleanup},
     {"ITc_libstorage_get_available_space_p", ITc_libstorage_get_available_space_p, ITs_storage_startup, ITs_storage_cleanup},
     {"ITc_libstorage_set_unset_state_changed_cb_p", ITc_libstorage_set_unset_state_changed_cb_p, ITs_storage_startup, ITs_storage_cleanup},
+       {"ITc_libstorage_storage_set_unset_changed_cb_p", ITc_libstorage_storage_set_unset_changed_cb_p, ITs_storage_startup, ITs_storage_cleanup},
     {NULL, NULL}
 };
 
index 69ee010..878b5be 100755 (executable)
@@ -32,6 +32,7 @@ extern int ITc_libstorage_get_state_p(void);
 extern int ITc_libstorage_get_total_space_p(void);
 extern int ITc_libstorage_get_available_space_p(void);
 extern int ITc_libstorage_set_unset_state_changed_cb_p(void);
+extern int ITc_libstorage_storage_set_unset_changed_cb_p(void);
 
 testcase tc_array[] = {
     {"ITc_libstorage_get_internal_memory_size_p", ITc_libstorage_get_internal_memory_size_p, ITs_storage_startup, ITs_storage_cleanup},
@@ -44,6 +45,7 @@ testcase tc_array[] = {
     {"ITc_libstorage_get_total_space_p", ITc_libstorage_get_total_space_p, ITs_storage_startup, ITs_storage_cleanup},
     {"ITc_libstorage_get_available_space_p", ITc_libstorage_get_available_space_p, ITs_storage_startup, ITs_storage_cleanup},
     {"ITc_libstorage_set_unset_state_changed_cb_p", ITc_libstorage_set_unset_state_changed_cb_p, ITs_storage_startup, ITs_storage_cleanup},
+       {"ITc_libstorage_storage_set_unset_changed_cb_p", ITc_libstorage_storage_set_unset_changed_cb_p, ITs_storage_startup, ITs_storage_cleanup},
     {NULL, NULL}
 };
 
index 22ae2b7..9a6a39f 100755 (executable)
@@ -31,6 +31,7 @@ extern int ITc_libstorage_get_state_p(void);
 extern int ITc_libstorage_get_total_space_p(void);
 extern int ITc_libstorage_get_available_space_p(void);
 extern int ITc_libstorage_set_unset_state_changed_cb_p(void);
+extern int ITc_libstorage_storage_set_unset_changed_cb_p(void);
 
 testcase tc_array[] = {
     {"ITc_libstorage_get_internal_memory_size_p", ITc_libstorage_get_internal_memory_size_p, ITs_storage_startup, ITs_storage_cleanup},
@@ -42,6 +43,7 @@ testcase tc_array[] = {
     {"ITc_libstorage_get_total_space_p", ITc_libstorage_get_total_space_p, ITs_storage_startup, ITs_storage_cleanup},
     {"ITc_libstorage_get_available_space_p", ITc_libstorage_get_available_space_p, ITs_storage_startup, ITs_storage_cleanup},
     {"ITc_libstorage_set_unset_state_changed_cb_p", ITc_libstorage_set_unset_state_changed_cb_p, ITs_storage_startup, ITs_storage_cleanup},
+       {"ITc_libstorage_storage_set_unset_changed_cb_p", ITc_libstorage_storage_set_unset_changed_cb_p, ITs_storage_startup, ITs_storage_cleanup},
     {NULL, NULL}
 };