diff --git a/frameworks/libs/distributeddb/common/include/auto_launch.h b/frameworks/libs/distributeddb/common/include/auto_launch.h index 87b043047277e661d0f542b66f3b09198a5b57f8..bbc0c1e194a6560b397318afffc5818e38d25cb7 100644 --- a/frameworks/libs/distributeddb/common/include/auto_launch.h +++ b/frameworks/libs/distributeddb/common/include/auto_launch.h @@ -52,7 +52,7 @@ enum class DBTypeInner { struct AutoLaunchItem { std::shared_ptr propertiesPtr; AutoLaunchNotifier notifier; - KvStoreObserver *observer = nullptr; + std::weak_ptr observer; int conflictType = 0; KvStoreNbConflictNotifier conflictNotifier; void *conn = nullptr; diff --git a/frameworks/libs/distributeddb/common/src/auto_launch.cpp b/frameworks/libs/distributeddb/common/src/auto_launch.cpp index 27721a640a8757b67514926f2cd35af713664f5b..aa9e534baf7052a37d6fd3c570f6d7b3ef017d33 100644 --- a/frameworks/libs/distributeddb/common/src/auto_launch.cpp +++ b/frameworks/libs/distributeddb/common/src/auto_launch.cpp @@ -367,10 +367,11 @@ void AutoLaunch::ObserverFunc(const KvDBCommitNotifyData ¬ifyData, const std: appId = properties->GetStringProp(KvDBProperties::APP_ID, ""); storeId = properties->GetStringProp(KvDBProperties::STORE_ID, ""); } - if (autoLaunchItem.observer != nullptr) { + auto observer = autoLaunchItem.observer.lock(); + if (observer != nullptr) { LOGI("[AutoLaunch] do user observer"); KvStoreChangedDataImpl data(¬ifyData); - (autoLaunchItem.observer)->OnChange(data); + observer->OnChange(data); } LOGI("[AutoLaunch] in observer autoLaunchItem.isWriteOpenNotified:%d", autoLaunchItem.isWriteOpenNotified); @@ -868,10 +869,11 @@ void AutoLaunch::ExtObserverFunc(const KvDBCommitNotifyData ¬ifyData, const s return; } } - if (autoLaunchItem.observer != nullptr) { + auto observer = autoLaunchItem.observer.lock(); + if (observer != nullptr) { LOGD("[AutoLaunch] do user observer"); KvStoreChangedDataImpl data(¬ifyData); - autoLaunchItem.observer->OnChange(data); + observer->OnChange(data); } { diff --git a/frameworks/libs/distributeddb/include/auto_launch_export.h b/frameworks/libs/distributeddb/include/auto_launch_export.h index 5f5a83999610923138905fc5318b17e9ecf18667..4dd0afc6b49899235189ea2c00bcff8f86d81ea9 100644 --- a/frameworks/libs/distributeddb/include/auto_launch_export.h +++ b/frameworks/libs/distributeddb/include/auto_launch_export.h @@ -30,7 +30,7 @@ struct AutoLaunchOption { std::string schema; bool createDirByStoreIdOnly = false; std::string dataDir; - KvStoreObserver *observer = nullptr; + std::weak_ptr observer; int conflictType = 0; KvStoreNbConflictNotifier notifier; SecurityOption secOption; diff --git a/frameworks/libs/distributeddb/interfaces/include/kv_store_nb_delegate.h b/frameworks/libs/distributeddb/interfaces/include/kv_store_nb_delegate.h index 08870ff237f0ee4dfda2f17db3f7b168e26b6450..68c3f609829452b7f1ad44e5f85d4fd1775a1376 100644 --- a/frameworks/libs/distributeddb/interfaces/include/kv_store_nb_delegate.h +++ b/frameworks/libs/distributeddb/interfaces/include/kv_store_nb_delegate.h @@ -45,7 +45,7 @@ public: std::string schema = ""; bool createDirByStoreIdOnly = false; SecurityOption secOption; // Add data security level parameter - KvStoreObserver *observer = nullptr; + std::weak_ptr observer; Key key; // The key that needs to be subscribed on obsever, empty means full subscription unsigned int mode = 0; // obsever mode int conflictType = 0; @@ -136,10 +136,11 @@ public: // There are three mode: native changes of nb syncable kv store, // synced data changes from remote devices, // local changes of local kv store. - DB_API virtual DBStatus RegisterObserver(const Key &key, unsigned int mode, KvStoreObserver *observer) = 0; + DB_API virtual DBStatus RegisterObserver(const Key &key, unsigned int mode, + const std::weak_ptr &observer) = 0; // UnRegister the registered observer. - DB_API virtual DBStatus UnRegisterObserver(const KvStoreObserver *observer) = 0; + DB_API virtual DBStatus UnRegisterObserver(const std::weak_ptr &observer) = 0; // Remove the device data synced from remote. DB_API virtual DBStatus RemoveDeviceData(const std::string &device) = 0; diff --git a/frameworks/libs/distributeddb/interfaces/src/kv_store_delegate_manager.cpp b/frameworks/libs/distributeddb/interfaces/src/kv_store_delegate_manager.cpp index f7d2f5f29202d89360f67078bdef8350177d50a7..92430bcbd359649bf5e4e1e5e6527db9040fc7c8 100644 --- a/frameworks/libs/distributeddb/interfaces/src/kv_store_delegate_manager.cpp +++ b/frameworks/libs/distributeddb/interfaces/src/kv_store_delegate_manager.cpp @@ -128,8 +128,8 @@ bool CheckObserverConflictParam(const KvStoreNbDelegate::Option &option) LOGE("Invalid conflict type, conflict type is [%d]", option.conflictType); return false; } - if ((option.observer != nullptr && !ParamCheckUtils::CheckObserver(option.key, option.mode)) || - (option.observer == nullptr && (!option.key.empty() || option.mode != 0))) { + if ((option.observer.lock() != nullptr && !ParamCheckUtils::CheckObserver(option.key, option.mode)) || + (option.observer.lock() == nullptr && (!option.key.empty() || option.mode != 0))) { LOGE("Invalid observer param, observer mode is [%u]", option.mode); return false; } @@ -236,7 +236,7 @@ DBStatus KvStoreDelegateManager::SetObserverNotifier( KvStoreNbDelegate *kvStore, const KvStoreNbDelegate::Option &option) { DBStatus status; - if (option.observer != nullptr) { + if (option.observer.lock() != nullptr) { status = kvStore->RegisterObserver(option.key, option.mode, option.observer); if (status != OK) { LOGE("[KvStoreMgr] RegisterObserver failed."); diff --git a/frameworks/libs/distributeddb/interfaces/src/kv_store_nb_delegate_impl.cpp b/frameworks/libs/distributeddb/interfaces/src/kv_store_nb_delegate_impl.cpp index e38585b3d3d8f14b7df6d676dfd3dad9cbb205ed..b2af39d1bb3c298da38fcba95184239937f6430b 100644 --- a/frameworks/libs/distributeddb/interfaces/src/kv_store_nb_delegate_impl.cpp +++ b/frameworks/libs/distributeddb/interfaces/src/kv_store_nb_delegate_impl.cpp @@ -366,12 +366,13 @@ DBStatus KvStoreNbDelegateImpl::DeleteLocalBatch(const std::vector &keys) return TransferDBErrno(errCode); } -DBStatus KvStoreNbDelegateImpl::RegisterObserver(const Key &key, unsigned int mode, KvStoreObserver *observer) +DBStatus KvStoreNbDelegateImpl::RegisterObserver(const Key &key, unsigned int mode, + const std::weak_ptr &observer) { if (key.size() > DBConstant::MAX_KEY_SIZE) { return INVALID_ARGS; } - if (observer == nullptr) { + if (observer.lock() == nullptr) { LOGE("[KvStoreNbDelegate][RegisterObserver] Observer is null"); return INVALID_ARGS; } @@ -387,7 +388,8 @@ DBStatus KvStoreNbDelegateImpl::RegisterObserver(const Key &key, unsigned int mo return RegisterDeviceObserver(key, static_cast(rawMode), observer); } -DBStatus KvStoreNbDelegateImpl::CheckDeviceObserver(const Key &key, unsigned int mode, KvStoreObserver *observer) +DBStatus KvStoreNbDelegateImpl::CheckDeviceObserver(const Key &key, unsigned int mode, + const std::weak_ptr &observer) { if (!ParamCheckUtils::CheckObserver(key, mode)) { LOGE("[KvStoreNbDelegate][CheckDeviceObserver] Register nb observer by illegal mode or key size!"); @@ -407,7 +409,8 @@ DBStatus KvStoreNbDelegateImpl::CheckDeviceObserver(const Key &key, unsigned int return OK; } -DBStatus KvStoreNbDelegateImpl::RegisterDeviceObserver(const Key &key, unsigned int mode, KvStoreObserver *observer) +DBStatus KvStoreNbDelegateImpl::RegisterDeviceObserver(const Key &key, unsigned int mode, + const std::weak_ptr &observer) { if (conn_->IsTransactionStarted()) { LOGE("[KvStoreNbDelegate][RegisterDeviceObserver] Transaction unfinished"); @@ -426,7 +429,11 @@ DBStatus KvStoreNbDelegateImpl::RegisterDeviceObserver(const Key &key, unsigned [observer, storeId](const KvDBCommitNotifyData ¬ifyData) { KvStoreChangedDataImpl data(¬ifyData); LOGD("[KvStoreNbDelegate][RegisterDeviceObserver] Trigger [%s] on change", storeId.c_str()); - observer->OnChange(data); + if (auto observerPtr = observer.lock()) { + observerPtr->OnChange(data); + } else { + LOGW("[KvStoreNbDelegate][RegisterDeviceObserver] observer released"); + } }, errCode); @@ -435,12 +442,13 @@ DBStatus KvStoreNbDelegateImpl::RegisterDeviceObserver(const Key &key, unsigned return DB_ERROR; } - observerMap_.insert(std::pair(observer, observerHandle)); + observerMap_.insert(std::pair, const KvDBObserverHandle *>( + observer, observerHandle)); LOGI("[KvStoreNbDelegate][RegisterDeviceObserver] Register device observer ok mode:%u", mode); return OK; } -DBStatus KvStoreNbDelegateImpl::CheckCloudObserver(KvStoreObserver *observer) +DBStatus KvStoreNbDelegateImpl::CheckCloudObserver(const std::weak_ptr &observer) { std::lock_guard lockGuard(observerMapLock_); if (cloudObserverMap_.size() >= DBConstant::MAX_OBSERVER_COUNT) { @@ -455,7 +463,8 @@ DBStatus KvStoreNbDelegateImpl::CheckCloudObserver(KvStoreObserver *observer) return OK; } -DBStatus KvStoreNbDelegateImpl::RegisterCloudObserver(const Key &key, unsigned int mode, KvStoreObserver *observer) +DBStatus KvStoreNbDelegateImpl::RegisterCloudObserver(const Key &key, unsigned int mode, + const std::weak_ptr &observer) { DBStatus status = CheckCloudObserver(observer); if (status != OK) { @@ -468,7 +477,11 @@ DBStatus KvStoreNbDelegateImpl::RegisterCloudObserver(const Key &key, unsigned i const std::string &device, ChangedData &&changedData, bool isChangedData) { if (isChangedData) { LOGD("[KvStoreNbDelegate][RegisterCloudObserver] Trigger [%s] on change", storeId.c_str()); - observer->OnChange(Origin::ORIGIN_CLOUD, device, std::move(changedData)); + if (auto observerPtr = observer.lock()) { + observerPtr->OnChange(Origin::ORIGIN_CLOUD, device, std::move(changedData)); + } else { + LOGW("[KvStoreNbDelegate][RegisterCloudObserver] observer released"); + } } }; int errCode = conn_->RegisterObserverAction(observer, action); @@ -481,9 +494,9 @@ DBStatus KvStoreNbDelegateImpl::RegisterCloudObserver(const Key &key, unsigned i return OK; } -DBStatus KvStoreNbDelegateImpl::UnRegisterObserver(const KvStoreObserver *observer) +DBStatus KvStoreNbDelegateImpl::UnRegisterObserver(const std::weak_ptr &observer) { - if (observer == nullptr) { + if (observer.lock() == nullptr) { return INVALID_ARGS; } @@ -500,7 +513,7 @@ DBStatus KvStoreNbDelegateImpl::UnRegisterObserver(const KvStoreObserver *observ return devRet; } -DBStatus KvStoreNbDelegateImpl::UnRegisterDeviceObserver(const KvStoreObserver *observer) +DBStatus KvStoreNbDelegateImpl::UnRegisterDeviceObserver(const std::weak_ptr &observer) { std::lock_guard lockGuard(observerMapLock_); auto iter = observerMap_.find(observer); @@ -519,7 +532,7 @@ DBStatus KvStoreNbDelegateImpl::UnRegisterDeviceObserver(const KvStoreObserver * return OK; } -DBStatus KvStoreNbDelegateImpl::UnRegisterCloudObserver(const KvStoreObserver *observer) +DBStatus KvStoreNbDelegateImpl::UnRegisterCloudObserver(const std::weak_ptr &observer) { std::lock_guard lockGuard(observerMapLock_); auto iter = cloudObserverMap_.find(observer); diff --git a/frameworks/libs/distributeddb/interfaces/src/kv_store_nb_delegate_impl.h b/frameworks/libs/distributeddb/interfaces/src/kv_store_nb_delegate_impl.h index e03bc6f3c8bb7eb75544af422201874e09fa2e20..9f63a711a01eab7a415fe4fa21626954d72f2514 100644 --- a/frameworks/libs/distributeddb/interfaces/src/kv_store_nb_delegate_impl.h +++ b/frameworks/libs/distributeddb/interfaces/src/kv_store_nb_delegate_impl.h @@ -73,9 +73,10 @@ public: DBStatus UnpublishToLocal(const Key &key, bool deletePublic, bool updateTimestamp) override; // Observer interfaces - DBStatus RegisterObserver(const Key &key, unsigned int mode, KvStoreObserver *observer) override; + DBStatus RegisterObserver(const Key &key, unsigned int mode, + const std::weak_ptr &observer) override; - DBStatus UnRegisterObserver(const KvStoreObserver *observer) override; + DBStatus UnRegisterObserver(const std::weak_ptr &observer) override; DBStatus RemoveDeviceData(const std::string &device) override; @@ -209,24 +210,26 @@ private: void OnDeviceSyncProcess(const std::map &processMap, const DeviceSyncProcessCallback &onProcess) const; - DBStatus RegisterDeviceObserver(const Key &key, unsigned int mode, KvStoreObserver *observer); + DBStatus RegisterDeviceObserver(const Key &key, unsigned int mode, const std::weak_ptr &observer); - DBStatus RegisterCloudObserver(const Key &key, unsigned int mode, KvStoreObserver *observer); + DBStatus RegisterCloudObserver(const Key &key, unsigned int mode, const std::weak_ptr &observer); - DBStatus UnRegisterDeviceObserver(const KvStoreObserver *observer); + DBStatus UnRegisterDeviceObserver(const std::weak_ptr &observer); - DBStatus UnRegisterCloudObserver(const KvStoreObserver *observer); + DBStatus UnRegisterCloudObserver(const std::weak_ptr &observer); - DBStatus CheckDeviceObserver(const Key &key, unsigned int mode, KvStoreObserver *observer); + DBStatus CheckDeviceObserver(const Key &key, unsigned int mode, const std::weak_ptr &observer); - DBStatus CheckCloudObserver(KvStoreObserver *observer); + DBStatus CheckCloudObserver(const std::weak_ptr &observer); IKvDBConnection *conn_; std::string storeId_; bool releaseFlag_; std::mutex observerMapLock_; - std::map observerMap_; - std::map cloudObserverMap_; + std::map, const KvDBObserverHandle *, + std::owner_less>> observerMap_; + std::map, unsigned int, + std::owner_less>> cloudObserverMap_; }; } // namespace DistributedDB diff --git a/frameworks/libs/distributeddb/storage/include/ikvdb_connection.h b/frameworks/libs/distributeddb/storage/include/ikvdb_connection.h index b315bdb667144fd85e5fb5e04c01e9c2096edd01..a81b90e1dab92996b2256f5e10ada2c1c2ff5344 100644 --- a/frameworks/libs/distributeddb/storage/include/ikvdb_connection.h +++ b/frameworks/libs/distributeddb/storage/include/ikvdb_connection.h @@ -153,9 +153,10 @@ public: virtual int32_t GetTaskCount() = 0; - virtual int RegisterObserverAction(const KvStoreObserver *observer, const ObserverAction &action) = 0; + virtual int RegisterObserverAction(const std::weak_ptr &observer, + const ObserverAction &action) = 0; - virtual int UnRegisterObserverAction(const KvStoreObserver *observer) = 0; + virtual int UnRegisterObserverAction(const std::weak_ptr &observer) = 0; virtual void SetGenCloudVersionCallback(const GenerateCloudVersionCallback &callback) = 0; diff --git a/frameworks/libs/distributeddb/storage/src/kv/generic_kvdb_connection.cpp b/frameworks/libs/distributeddb/storage/src/kv/generic_kvdb_connection.cpp index 271e25fc6c70d3ebdc8371786d707a41dbef707b..c37ee1a60e7e12e82717259f4bd21f361bcf46ca 100644 --- a/frameworks/libs/distributeddb/storage/src/kv/generic_kvdb_connection.cpp +++ b/frameworks/libs/distributeddb/storage/src/kv/generic_kvdb_connection.cpp @@ -410,13 +410,13 @@ int32_t GenericKvDBConnection::GetTaskCount() return 0; } -int GenericKvDBConnection::RegisterObserverAction([[gnu::unused]] const KvStoreObserver *observer, +int GenericKvDBConnection::RegisterObserverAction([[gnu::unused]] const std::weak_ptr &observer, [[gnu::unused]] const ObserverAction &action) { return E_OK; } -int GenericKvDBConnection::UnRegisterObserverAction([[gnu::unused]] const KvStoreObserver *observer) +int GenericKvDBConnection::UnRegisterObserverAction([[gnu::unused]] const std::weak_ptr &observer) { return E_OK; } diff --git a/frameworks/libs/distributeddb/storage/src/kv/generic_kvdb_connection.h b/frameworks/libs/distributeddb/storage/src/kv/generic_kvdb_connection.h index 6323d17f701a3d228e498817b7684922e1a10617..fb285a5814a43c27a2ea9f8fd93ac578f5697f73 100644 --- a/frameworks/libs/distributeddb/storage/src/kv/generic_kvdb_connection.h +++ b/frameworks/libs/distributeddb/storage/src/kv/generic_kvdb_connection.h @@ -95,9 +95,9 @@ public: int32_t GetTaskCount() override; - int RegisterObserverAction(const KvStoreObserver *observer, const ObserverAction &action) override; + int RegisterObserverAction(const std::weak_ptr &observer, const ObserverAction &action) override; - int UnRegisterObserverAction(const KvStoreObserver *observer) override; + int UnRegisterObserverAction(const std::weak_ptr &observer) override; void SetGenCloudVersionCallback(const GenerateCloudVersionCallback &callback) override; diff --git a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_cloud_kv_store.cpp b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_cloud_kv_store.cpp index 1c42eb2a4c20243ddec3cc081796f24a66574446..ce9f5968256afa17fe8cdbb227be7a2d8a25411f 100644 --- a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_cloud_kv_store.cpp +++ b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_cloud_kv_store.cpp @@ -444,13 +444,14 @@ std::pair SqliteCloudKvStore::GetTr return {db, transactionHandle_}; } -void SqliteCloudKvStore::RegisterObserverAction(const KvStoreObserver *observer, const ObserverAction &action) +void SqliteCloudKvStore::RegisterObserverAction(const std::weak_ptr &observer, + const ObserverAction &action) { std::lock_guard autoLock(observerMapMutex_); cloudObserverMap_[observer] = action; } -void SqliteCloudKvStore::UnRegisterObserverAction(const KvStoreObserver *observer) +void SqliteCloudKvStore::UnRegisterObserverAction(const std::weak_ptr &observer) { std::lock_guard autoLock(observerMapMutex_); cloudObserverMap_.erase(observer); diff --git a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_cloud_kv_store.h b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_cloud_kv_store.h index b1a478d62bc52f42061cf26bafd1417ee52b09b9..93749abcf9206439b84392a506a5b60361e29337 100644 --- a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_cloud_kv_store.h +++ b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_cloud_kv_store.h @@ -90,9 +90,9 @@ public: int SetCloudDbSchema(const std::map &schema); - void RegisterObserverAction(const KvStoreObserver *observer, const ObserverAction &action); + void RegisterObserverAction(const std::weak_ptr &observer, const ObserverAction &action); - void UnRegisterObserverAction(const KvStoreObserver *observer); + void UnRegisterObserverAction(const std::weak_ptr &observer); int GetCloudVersion(const std::string &device, std::map &versionMap); @@ -148,7 +148,8 @@ private: std::string user_; std::mutex observerMapMutex_; - std::map cloudObserverMap_; + std::map, ObserverAction, + std::owner_less>> cloudObserverMap_; mutable std::mutex configMutex_; CloudSyncConfig config_; diff --git a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store.h b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store.h index 82bb7045c0f3e564eedc69318ba3605bf97a756c..6aac507bba56055941a003c4e806af696e050a47 100644 --- a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store.h +++ b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store.h @@ -219,9 +219,9 @@ public: int SetCloudDbSchema(const std::map &schema); - int RegisterObserverAction(const KvStoreObserver *observer, const ObserverAction &action); + int RegisterObserverAction(const std::weak_ptr &observer, const ObserverAction &action); - int UnRegisterObserverAction(const KvStoreObserver *observer); + int UnRegisterObserverAction(const std::weak_ptr &observer); int GetCloudVersion(const std::string &device, std::map &versionMap); diff --git a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_connection.cpp b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_connection.cpp index 146fc42ee6d8ffbfc5fabeab8a5ff9f7c952df65..da546a1c14474474335fcd194cfaaa62a5116b6f 100644 --- a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_connection.cpp +++ b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_connection.cpp @@ -1928,7 +1928,7 @@ int SQLiteSingleVerNaturalStoreConnection::SetCloudDbSchema(const std::map &observer, const ObserverAction &action) { auto naturalStore = GetDB(); @@ -1939,7 +1939,7 @@ int SQLiteSingleVerNaturalStoreConnection::RegisterObserverAction(const KvStoreO return naturalStore->RegisterObserverAction(observer, action); } -int SQLiteSingleVerNaturalStoreConnection::UnRegisterObserverAction(const KvStoreObserver *observer) +int SQLiteSingleVerNaturalStoreConnection::UnRegisterObserverAction(const std::weak_ptr &observer) { auto naturalStore = GetDB(); if (naturalStore == nullptr) { diff --git a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_connection.h b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_connection.h index c2a228aa3345621dbfea3da5cf1e07e15ab0b6e6..346b7dbf513c3e8874e68ba8c8a654c5bcd3296f 100644 --- a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_connection.h +++ b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_connection.h @@ -106,9 +106,9 @@ public: int UpdateKey(const UpdateKeyCallback &callback) override; - int RegisterObserverAction(const KvStoreObserver *observer, const ObserverAction &action) override; + int RegisterObserverAction(const std::weak_ptr &observer, const ObserverAction &action) override; - int UnRegisterObserverAction(const KvStoreObserver *observer) override; + int UnRegisterObserverAction(const std::weak_ptr &observer) override; int RemoveDeviceData(const std::string &device, ClearMode mode) override; diff --git a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_extend.cpp b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_extend.cpp index f44b0be6316e634f31598344f28d156e04b8465e..3de81115a0a455fc6c3800f5a69785ed3795f744 100644 --- a/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_extend.cpp +++ b/frameworks/libs/distributeddb/storage/src/sqlite/sqlite_single_ver_natural_store_extend.cpp @@ -640,7 +640,8 @@ TimeOffset SQLiteSingleVerNaturalStore::GetLocalTimeOffsetForCloud() return GetLocalTimeOffset(); } -int SQLiteSingleVerNaturalStore::RegisterObserverAction(const KvStoreObserver *observer, const ObserverAction &action) +int SQLiteSingleVerNaturalStore::RegisterObserverAction(const std::weak_ptr &observer, + const ObserverAction &action) { std::lock_guard autoLock(cloudStoreMutex_); if (sqliteCloudKvStore_ == nullptr) { @@ -650,7 +651,7 @@ int SQLiteSingleVerNaturalStore::RegisterObserverAction(const KvStoreObserver *o return E_OK; } -int SQLiteSingleVerNaturalStore::UnRegisterObserverAction(const KvStoreObserver *observer) +int SQLiteSingleVerNaturalStore::UnRegisterObserverAction(const std::weak_ptr &observer) { std::lock_guard autoLock(cloudStoreMutex_); if (sqliteCloudKvStore_ == nullptr) { diff --git a/frameworks/libs/distributeddb/test/fuzztest/delegate_fuzzer/delegate_fuzzer.cpp b/frameworks/libs/distributeddb/test/fuzztest/delegate_fuzzer/delegate_fuzzer.cpp index 3d07c64178549d8448dba7ef85b566b2f20740df..270de3e43490fdef8a3da663bb4785eabd738323 100644 --- a/frameworks/libs/distributeddb/test/fuzztest/delegate_fuzzer/delegate_fuzzer.cpp +++ b/frameworks/libs/distributeddb/test/fuzztest/delegate_fuzzer/delegate_fuzzer.cpp @@ -83,9 +83,8 @@ void MultiCombineFuzzer(const uint8_t *data, size_t size, KvStoreDelegate::Optio { KvStoreConfig config; KvStoreDelegate *kvDelegatePtr = PrepareKvStore(config, option); - KvStoreObserverTest *observer = new (std::nothrow) KvStoreObserverTest; + std::shared_ptr observer = std::make_shared(); if ((kvDelegatePtr == nullptr) || (observer == nullptr)) { - delete observer; observer = nullptr; return; } @@ -102,7 +101,6 @@ void MultiCombineFuzzer(const uint8_t *data, size_t size, KvStoreDelegate::Optio }); if (kvStoreSnapshotPtr == nullptr) { kvDelegatePtr->UnRegisterObserver(observer); - delete observer; return; } auto valueCallback = [&value] (DBStatus status, const Value &getValue) { @@ -125,7 +123,6 @@ void MultiCombineFuzzer(const uint8_t *data, size_t size, KvStoreDelegate::Optio kvDelegatePtr->Clear(); CombineTest(data, kvDelegatePtr); kvDelegatePtr->UnRegisterObserver(observer); - delete observer; observer = nullptr; kvDelegatePtr->ReleaseKvStoreSnapshot(kvStoreSnapshotPtr); g_kvManger.CloseKvStore(kvDelegatePtr); diff --git a/frameworks/libs/distributeddb/test/fuzztest/nbdelegate_fuzzer/nbdelegate_fuzzer.cpp b/frameworks/libs/distributeddb/test/fuzztest/nbdelegate_fuzzer/nbdelegate_fuzzer.cpp index 0370e56fb4b49e93e3e5a56af1d5c275c23cbc9a..260f1833715c2098900fea112ee1ec9e92e7941b 100644 --- a/frameworks/libs/distributeddb/test/fuzztest/nbdelegate_fuzzer/nbdelegate_fuzzer.cpp +++ b/frameworks/libs/distributeddb/test/fuzztest/nbdelegate_fuzzer/nbdelegate_fuzzer.cpp @@ -215,7 +215,7 @@ void RemoveDeviceDataByMode(const uint8_t *data, size_t size, KvStoreNbDelegate void FuzzCURD(const uint8_t *data, size_t size, KvStoreNbDelegate *kvNbDelegatePtr) { - auto observer = new (std::nothrow) KvStoreObserverFuzzTest; + std::shared_ptr observer = std::make_shared(); if ((observer == nullptr) || (kvNbDelegatePtr == nullptr)) { return; } @@ -240,7 +240,6 @@ void FuzzCURD(const uint8_t *data, size_t size, KvStoreNbDelegate *kvNbDelegateP kvNbDelegatePtr->Rollback(); kvNbDelegatePtr->Commit(); kvNbDelegatePtr->UnRegisterObserver(observer); - delete observer; observer = nullptr; kvNbDelegatePtr->PutLocalBatch(tmp); kvNbDelegatePtr->DeleteLocalBatch(keys); diff --git a/frameworks/libs/distributeddb/test/fuzztest/relationalstoredelegate_fuzzer/relationalstoredelegate_fuzzer.cpp b/frameworks/libs/distributeddb/test/fuzztest/relationalstoredelegate_fuzzer/relationalstoredelegate_fuzzer.cpp index e9f6f19174ecb56911a450c533043e7fb0f73bcd..01f839cf7f7a1668a4a006a11bac8e1097ee79b1 100644 --- a/frameworks/libs/distributeddb/test/fuzztest/relationalstoredelegate_fuzzer/relationalstoredelegate_fuzzer.cpp +++ b/frameworks/libs/distributeddb/test/fuzztest/relationalstoredelegate_fuzzer/relationalstoredelegate_fuzzer.cpp @@ -144,10 +144,8 @@ void TestDistributedSchema(FuzzedDataProvider *fdp) void CombineTest(const uint8_t *data, size_t size) { - auto observer = new (std::nothrow) DistributedDB::StoreObserver; + std::shared_ptr observer = std::make_shared(); if (observer == nullptr) { - delete observer; - observer = nullptr; return; } if (g_delegate == nullptr) { @@ -190,7 +188,6 @@ void CombineTest(const uint8_t *data, size_t size) g_delegate->UnRegisterObserver(observer); g_delegate->RegisterObserver(observer); g_delegate->UnRegisterObserver(); - delete observer; observer = nullptr; TestDistributedSchema(&fdp); diff --git a/frameworks/libs/distributeddb/test/moduletest/common/distributeddb/include/distributeddb_nb_test_tools.h b/frameworks/libs/distributeddb/test/moduletest/common/distributeddb/include/distributeddb_nb_test_tools.h index fdc8b858a60e52de5bedaa3eb327e35b97b9dc04..e19bd06049bfac89a9b4d34d2b7b05c92d5873de 100644 --- a/frameworks/libs/distributeddb/test/moduletest/common/distributeddb/include/distributeddb_nb_test_tools.h +++ b/frameworks/libs/distributeddb/test/moduletest/common/distributeddb/include/distributeddb_nb_test_tools.h @@ -231,10 +231,11 @@ public: const std::vector &keys); static DistributedDB::DBStatus RegisterObserver(DistributedDB::KvStoreNbDelegate &kvStoreNbDelegate, - const DistributedDB::Key &key, unsigned int mode, DistributedDB::KvStoreObserver *observer); + const DistributedDB::Key &key, unsigned int mode, + const std::weak_ptr &observer); static DistributedDB::DBStatus UnRegisterObserver(DistributedDB::KvStoreNbDelegate &kvStoreNbDelegate, - const DistributedDB::KvStoreObserver *observer); + const std::weak_ptr &observer); static bool CloseNbAndRelease(DistributedDB::KvStoreDelegateManager *&manager, DistributedDB::KvStoreNbDelegate *&delegate); static bool ModifyDatabaseFile(const std::string &fileDir); diff --git a/frameworks/libs/distributeddb/test/moduletest/common/distributeddb/src/distributeddb_nb_test_tools.cpp b/frameworks/libs/distributeddb/test/moduletest/common/distributeddb/src/distributeddb_nb_test_tools.cpp index 44266c3edafa2fce0bf5865e06d7c5ceda4cf777..e252902fc366d8d0ec6a02b1cfb2d8218fa8c98e 100644 --- a/frameworks/libs/distributeddb/test/moduletest/common/distributeddb/src/distributeddb_nb_test_tools.cpp +++ b/frameworks/libs/distributeddb/test/moduletest/common/distributeddb/src/distributeddb_nb_test_tools.cpp @@ -443,13 +443,13 @@ DistributedDB::DBStatus DistributedDBNbTestTools::DeleteLocalBatch(DistributedDB } DistributedDB::DBStatus DistributedDBNbTestTools::RegisterObserver(DistributedDB::KvStoreNbDelegate &kvStoreNbDelegate, - const DistributedDB::Key &key, unsigned int mode, DistributedDB::KvStoreObserver *observer) + const DistributedDB::Key &key, unsigned int mode, const std::weak_ptr &observer) { return kvStoreNbDelegate.RegisterObserver(key, mode, observer); } DistributedDB::DBStatus DistributedDBNbTestTools::UnRegisterObserver( - DistributedDB::KvStoreNbDelegate &kvStoreNbDelegate, const DistributedDB::KvStoreObserver *observer) + DistributedDB::KvStoreNbDelegate &kvStoreNbDelegate, const std::weak_ptr &observer) { return kvStoreNbDelegate.UnRegisterObserver(observer); } diff --git a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_backup_test.cpp b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_backup_test.cpp index 0ccce8110a06cddd681bcc1c884843c8154eb9b9..8ce1c14d06c4f2071b2aca02fb9bb27f34534d47 100644 --- a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_backup_test.cpp +++ b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_backup_test.cpp @@ -771,8 +771,8 @@ HWTEST_F(DistributeddbNbBackupTest, ImportTest006, TestSize.Level1) * @tc.steps: step3. delegate1 register observer. * @tc.expected: step3. register success */ - KvStoreObserverImpl observerSync; - EXPECT_EQ(g_nbBackupDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observerSync), OK); + std::shared_ptr observerSync = std::make_shared(); + EXPECT_EQ(g_nbBackupDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observerSync), OK); /** * @tc.steps: step4. delegate1 import the backup file with the password f1. * @tc.expected: step4. register success diff --git a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_batch_crud_test.cpp b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_batch_crud_test.cpp index 4e6932e758cd06af9f12a42c16ce00ddd7688bb9..f1b6699e78f9052492a655561fa3b2dab5b437cb 100644 --- a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_batch_crud_test.cpp +++ b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_batch_crud_test.cpp @@ -739,7 +739,9 @@ HWTEST_F(DistributeddbNbBatchCrudTest, ComplexData005, TestSize.Level2) */ HWTEST_F(DistributeddbNbBatchCrudTest, Observer001, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2, observer3; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); vector entries1, entries2; entries1.push_back(ENTRY_1); entries1.push_back(ENTRY_2); @@ -752,9 +754,9 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer001, TestSize.Level1) * mode = OBSERVER_CHANGES_NATIVE. * @tc.expected: step1. register successfully. */ - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observer1), OK); - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, &observer2), OK); - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, &observer3), OK); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observer1), OK); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, observer2), OK); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, observer3), OK); /** * @tc.steps: step2. putbatch (k1,v1)(k2,v2) to db and check observer callback. @@ -763,13 +765,15 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer001, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::PutBatch(*g_nbBatchCrudDelegate, entries1), OK); observerCallbackEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, + ListType::INSERT_LIST, observerCallbackEntries)); observerCallbackEntries.clear(); observerCallbackEntries.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); - observer1.Clear(); - observer2.Clear(); - observer3.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, + ListType::INSERT_LIST, observerCallbackEntries)); + observer1->Clear(); + observer2->Clear(); + observer3->Clear(); /** * @tc.steps: step3. putbatch (k2,v3)(k3,v3) to db and check observer callback. @@ -778,12 +782,15 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer001, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::PutBatch(*g_nbBatchCrudDelegate, entries2), OK); observerCallbackEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ZERO_TIME, ListType::UPDATE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ZERO_TIME, + ListType::UPDATE_LIST, observerCallbackEntries)); observerCallbackEntries.push_back(ENTRY_2_3); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, ListType::UPDATE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, + ListType::UPDATE_LIST, observerCallbackEntries)); observerCallbackEntries.clear(); observerCallbackEntries.push_back(ENTRY_3); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ONE_TIME, + ListType::INSERT_LIST, observerCallbackEntries)); } /** @@ -795,7 +802,9 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer001, TestSize.Level1) */ HWTEST_F(DistributeddbNbBatchCrudTest, Observer002, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2, observer3; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); vector entries1, entryResults; entries1.push_back(ENTRY_1); entries1.push_back(ENTRY_2); @@ -818,11 +827,11 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer002, TestSize.Level1) * mode = OBSERVER_CHANGES_NATIVE. * @tc.expected: step2. register successfully. */ - DBStatus status = g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observer1); + DBStatus status = g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observer1); EXPECT_EQ(status, OK); - status = g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, &observer2); + status = g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, observer2); EXPECT_EQ(status, OK); - status = g_nbBatchCrudDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, &observer3); + status = g_nbBatchCrudDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, observer3); EXPECT_EQ(status, OK); /** @@ -832,12 +841,12 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer002, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::DeleteBatch(*g_nbBatchCrudDelegate, keys), OK); observerCallbackEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, ListType::DELETE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, ListType::DELETE_LIST, observerCallbackEntries)); observerCallbackEntries.clear(); observerCallbackEntries.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, ListType::DELETE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, ListType::DELETE_LIST, observerCallbackEntries)); observerCallbackEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ZERO_TIME, ListType::DELETE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ZERO_TIME, ListType::DELETE_LIST, observerCallbackEntries)); } /** @@ -849,7 +858,9 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer002, TestSize.Level1) */ HWTEST_F(DistributeddbNbBatchCrudTest, Observer003, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2, observer3; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); vector entries1, entries2; entries1.push_back(ENTRY_1); entries1.push_back(ENTRY_1_2); @@ -864,11 +875,11 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer003, TestSize.Level1) * mode = OBSERVER_CHANGES_NATIVE. * @tc.expected: step1. register successfully. */ - DBStatus status = g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observer1); + DBStatus status = g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observer1); EXPECT_EQ(status, OK); - status = g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, &observer2); + status = g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, observer2); EXPECT_EQ(status, OK); - status = g_nbBatchCrudDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, &observer3); + status = g_nbBatchCrudDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, observer3); EXPECT_EQ(status, OK); /** @@ -878,13 +889,13 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer003, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::PutBatch(*g_nbBatchCrudDelegate, entries1), OK); observerCallbackEntries.push_back(ENTRY_1_2); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); observerCallbackEntries.clear(); observerCallbackEntries.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); - observer1.Clear(); - observer2.Clear(); - observer3.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); + observer1->Clear(); + observer2->Clear(); + observer3->Clear(); /** * @tc.steps: step3. putbatch (k2,v3)(k3,v3) to db and check observer callback. @@ -893,12 +904,12 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer003, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::PutBatch(*g_nbBatchCrudDelegate, entries2), OK); observerCallbackEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ZERO_TIME, ListType::UPDATE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ZERO_TIME, ListType::UPDATE_LIST, observerCallbackEntries)); observerCallbackEntries.push_back(ENTRY_2_4); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, ListType::UPDATE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, ListType::UPDATE_LIST, observerCallbackEntries)); observerCallbackEntries.clear(); observerCallbackEntries.push_back(ENTRY_3); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ONE_TIME, ListType::INSERT_LIST, observerCallbackEntries)); } /** @@ -910,7 +921,8 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer003, TestSize.Level1) */ HWTEST_F(DistributeddbNbBatchCrudTest, Observer004, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); vector entries1, entryResults; entries1.push_back(ENTRY_1); entries1.push_back(ENTRY_2); @@ -932,9 +944,9 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer004, TestSize.Level1) * @tc.steps: step2. register observer1,observer2 for k1, k2 with mode = OBSERVER_CHANGES_NATIVE. * @tc.expected: step2. register successfully. */ - DBStatus status = g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observer1); + DBStatus status = g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observer1); EXPECT_EQ(status, OK); - status = g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, &observer2); + status = g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, observer2); EXPECT_EQ(status, OK); /** @@ -943,10 +955,10 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer004, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::DeleteBatch(*g_nbBatchCrudDelegate, keys), OK); observerCallbackEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, ListType::DELETE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, ListType::DELETE_LIST, observerCallbackEntries)); observerCallbackEntries.clear(); observerCallbackEntries.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, ListType::DELETE_LIST, observerCallbackEntries)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, ListType::DELETE_LIST, observerCallbackEntries)); } /** @@ -966,10 +978,11 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer005, TestSize.Level1) * @tc.steps: step1. register 8 observers for all key. * @tc.expected: step1. register successfully. */ - KvStoreObserverImpl observerNative[OBSERVER_COUNT]; + std::vector> observerNative; for (int obsCnt = 0; obsCnt < OBSERVER_COUNT; obsCnt++) { + observerNative[obsCnt] = std::make_shared(); EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, - &observerNative[obsCnt]), OK); + observerNative[obsCnt]), OK); } /** @@ -979,10 +992,11 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer005, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::PutBatch(*g_nbBatchCrudDelegate, entriesBatch), OK); for (int index = 0; index < OBSERVER_COUNT; index++) { - EXPECT_TRUE(VerifyObserverResult(observerNative[index], CHANGED_ONE_TIME, ListType::INSERT_LIST, entriesBatch)); + EXPECT_TRUE(VerifyObserverResult(*observerNative[index], + CHANGED_ONE_TIME, ListType::INSERT_LIST, entriesBatch)); } for (int index = 0; index < OBSERVER_COUNT; index++) { - observerNative[index].Clear(); + observerNative[index]->Clear(); } /** @@ -992,10 +1006,11 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer005, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::PutBatch(*g_nbBatchCrudDelegate, entriesBatch), OK); for (int index = 0; index < OBSERVER_COUNT; index++) { - EXPECT_TRUE(VerifyObserverResult(observerNative[index], CHANGED_ONE_TIME, ListType::UPDATE_LIST, entriesBatch)); + EXPECT_TRUE(VerifyObserverResult(*observerNative[index], + CHANGED_ONE_TIME, ListType::UPDATE_LIST, entriesBatch)); } for (int index = 0; index < OBSERVER_COUNT; index++) { - observerNative[index].Clear(); + observerNative[index]->Clear(); } /** @@ -1005,7 +1020,8 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Observer005, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::DeleteBatch(*g_nbBatchCrudDelegate, allKeys), OK); for (int index = 0; index < OBSERVER_COUNT; index++) { - EXPECT_TRUE(VerifyObserverResult(observerNative[index], CHANGED_ONE_TIME, ListType::DELETE_LIST, entriesBatch)); + EXPECT_TRUE(VerifyObserverResult(*observerNative[index], + CHANGED_ONE_TIME, ListType::DELETE_LIST, entriesBatch)); } } @@ -2241,12 +2257,13 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Transaction022, TestSize.Level3) KvStoreResultSet *resultSet1 = nullptr; KvStoreResultSet *resultSet2 = nullptr; EXPECT_EQ(g_nbBatchCrudDelegate->GetEntries(KEY_EMPTY, resultSet1), OK); - KvStoreObserverImpl observer1, observer2; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); vector entries, entriesGot; EntrySize entrySize = {KEY_SIX_BYTE, VALUE_ONE_HUNDRED_BYTE}; GenerateAppointPrefixAndSizeRecords(entries, entrySize, TEN_RECORDS); - DBStatus status = g_nbBatchCrudDelegate->RegisterObserver(KEY_K, OBSERVER_CHANGES_NATIVE, &observer1); + DBStatus status = g_nbBatchCrudDelegate->RegisterObserver(KEY_K, OBSERVER_CHANGES_NATIVE, observer1); EXPECT_EQ(status, OK); const std::string importPath = DistributedDBConstant::NB_DIRECTOR + "import"; @@ -2269,7 +2286,7 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Transaction022, TestSize.Level3) vector observerCheckEntry; observerCheckEntry.clear(); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ZERO_TIME, ListType::INSERT_LIST, observerCheckEntry)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ZERO_TIME, ListType::INSERT_LIST, observerCheckEntry)); /** * @tc.steps: step3. call rekey, import, export interface @@ -2287,7 +2304,7 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Transaction022, TestSize.Level3) * @tc.expected: step4. all call failed and returned BUSY. */ EXPECT_EQ(g_nbBatchCrudDelegate->GetEntries(KEY_EMPTY, resultSet2), BUSY); - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_K, OBSERVER_CHANGES_NATIVE, &observer2), BUSY); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_K, OBSERVER_CHANGES_NATIVE, observer2), BUSY); /** * @tc.steps: step5. close resultSet1 and resultSet2, UnRegister observer1 and observer2. @@ -2296,8 +2313,8 @@ HWTEST_F(DistributeddbNbBatchCrudTest, Transaction022, TestSize.Level3) */ EXPECT_EQ(g_nbBatchCrudDelegate->CloseResultSet(resultSet1), OK); EXPECT_EQ(g_nbBatchCrudDelegate->CloseResultSet(resultSet2), INVALID_ARGS); - EXPECT_EQ(g_nbBatchCrudDelegate->UnRegisterObserver(&observer1), OK); - EXPECT_EQ(g_nbBatchCrudDelegate->UnRegisterObserver(&observer2), NOT_FOUND); + EXPECT_EQ(g_nbBatchCrudDelegate->UnRegisterObserver(observer1), OK); + EXPECT_EQ(g_nbBatchCrudDelegate->UnRegisterObserver(observer2), NOT_FOUND); /** * @tc.steps: step6. commit the transaction and check the data in db. * @tc.expected: step6. commit succeed and can find entries in DB. @@ -2320,9 +2337,10 @@ HWTEST_F(DistributeddbNbBatchCrudTest, TransactionObserver001, TestSize.Level1) * @tc.steps: step1. Register observer1 and observer2 of k1 and k2 separately and start the transaction. * @tc.expected: step1. Register start transaction successfully. */ - KvStoreObserverImpl observer1, observer2; - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observer1), OK); - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, &observer2), OK); + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observer1), OK); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, observer2), OK); EXPECT_EQ(g_nbBatchCrudDelegate->StartTransaction(), OK); /** @@ -2333,8 +2351,8 @@ HWTEST_F(DistributeddbNbBatchCrudTest, TransactionObserver001, TestSize.Level1) EXPECT_EQ(DistributedDBNbTestTools::Put(*g_nbBatchCrudDelegate, KEY_3, VALUE_3), OK); vector observerCheckList; observerCheckList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ZERO_TIME, INSERT_LIST, observerCheckList)); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ZERO_TIME, INSERT_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ZERO_TIME, INSERT_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ZERO_TIME, INSERT_LIST, observerCheckList)); /** * @tc.steps: step3. update (k1, v1) to (k1, v2) and delete (k3, v3) and check the observers. * @tc.expected: step3. update and delete successfully both of the observers can't receive the callback either. @@ -2342,8 +2360,8 @@ HWTEST_F(DistributeddbNbBatchCrudTest, TransactionObserver001, TestSize.Level1) EXPECT_EQ(DistributedDBNbTestTools::Put(*g_nbBatchCrudDelegate, KEY_1, VALUE_2), OK); EXPECT_EQ(DistributedDBNbTestTools::Delete(*g_nbBatchCrudDelegate, KEY_3), OK); observerCheckList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ZERO_TIME, INSERT_LIST, observerCheckList)); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ZERO_TIME, DELETE_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ZERO_TIME, INSERT_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ZERO_TIME, DELETE_LIST, observerCheckList)); /** * @tc.steps: step4. commit the transaction and check the observers. @@ -2352,9 +2370,9 @@ HWTEST_F(DistributeddbNbBatchCrudTest, TransactionObserver001, TestSize.Level1) EXPECT_EQ(g_nbBatchCrudDelegate->Commit(), OK); observerCheckList.clear(); observerCheckList.push_back(ENTRY_1_2); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, INSERT_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, INSERT_LIST, observerCheckList)); observerCheckList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ZERO_TIME, DELETE_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ZERO_TIME, DELETE_LIST, observerCheckList)); } /** @@ -2373,11 +2391,14 @@ HWTEST_F(DistributeddbNbBatchCrudTest, TransactionObserver002, TestSize.Level1) * and k4 separately and start the transaction. * @tc.expected: step1. Register and start transaction successfully. */ - KvStoreObserverImpl observer1, observer2, observer3, observer4; - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observer1), OK); - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, &observer2), OK); - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, &observer3), OK); - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_4, OBSERVER_CHANGES_NATIVE, &observer4), OK); + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); + std::shared_ptr observer4 = std::make_shared(); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observer1), OK); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, observer2), OK); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, observer3), OK); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_4, OBSERVER_CHANGES_NATIVE, observer4), OK); EXPECT_EQ(g_nbBatchCrudDelegate->StartTransaction(), OK); /** @@ -2400,15 +2421,15 @@ HWTEST_F(DistributeddbNbBatchCrudTest, TransactionObserver002, TestSize.Level1) vector observerCheckList; observerCheckList.clear(); observerCheckList.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, DELETE_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, DELETE_LIST, observerCheckList)); observerCheckList.clear(); observerCheckList.push_back(ENTRY_2_3); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, UPDATE_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, UPDATE_LIST, observerCheckList)); observerCheckList.clear(); observerCheckList.push_back(ENTRY_3); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ONE_TIME, INSERT_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ONE_TIME, INSERT_LIST, observerCheckList)); observerCheckList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer4, CHANGED_ZERO_TIME, DELETE_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observer4, CHANGED_ZERO_TIME, DELETE_LIST, observerCheckList)); } /** @@ -2427,9 +2448,10 @@ HWTEST_F(DistributeddbNbBatchCrudTest, TransactionObserver003, TestSize.Level1) * @tc.steps: step1. Register 8 observers of all keys. * @tc.expected: step1. Register successfully. */ - std::vector observers(OBSERVER_NUM); + std::vector> observers(OBSERVER_NUM); for (unsigned long cnt = 0; cnt < OBSERVER_NUM; cnt++) { - EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, &observers[cnt]), OK); + observers[cnt] = std::make_shared(); + EXPECT_EQ(g_nbBatchCrudDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, observers[cnt]), OK); } /** @@ -2464,13 +2486,13 @@ HWTEST_F(DistributeddbNbBatchCrudTest, TransactionObserver003, TestSize.Level1) observerCheckList.push_back(ENTRY_6); observerCheckList.push_back(ENTRY_7); observerCheckList.push_back(ENTRY_8); - EXPECT_TRUE(VerifyObserverResult(observers[cnt], CHANGED_ONE_TIME, INSERT_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observers[cnt], CHANGED_ONE_TIME, INSERT_LIST, observerCheckList)); observerCheckList.clear(); observerCheckList.push_back(ENTRY_2_3); - EXPECT_TRUE(VerifyObserverResult(observers[cnt], CHANGED_ONE_TIME, UPDATE_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observers[cnt], CHANGED_ONE_TIME, UPDATE_LIST, observerCheckList)); observerCheckList.clear(); observerCheckList.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observers[cnt], CHANGED_ONE_TIME, DELETE_LIST, observerCheckList)); + EXPECT_TRUE(VerifyObserverResult(*observers[cnt], CHANGED_ONE_TIME, DELETE_LIST, observerCheckList)); } } diff --git a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_enable_sync_by_closed_db_test.cpp b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_enable_sync_by_closed_db_test.cpp index faa90ee44119d6e839588fab49ea30185ee9bfbb..e1306a9de55cac3b5862e39f179b2ba2af7beced 100644 --- a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_enable_sync_by_closed_db_test.cpp +++ b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_enable_sync_by_closed_db_test.cpp @@ -84,7 +84,7 @@ void DistributeddbNbEnableSyncByClosedDbTest::TearDown(void) HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck001, TestSize.Level0) { string schema = SpliceToSchema(VALID_VERSION_1, VALID_MODE_1, VALID_DEFINE_1, VALID_INDEX_1); - AutoLaunchOption option = {true, false, CipherType::DEFAULT, NULL_PASSWD, schema, true, NB_DIRECTOR, nullptr}; + AutoLaunchOption option = {true, false, CipherType::DEFAULT, NULL_PASSWD, schema, true, NB_DIRECTOR}; KvStoreDelegateManager *manager = new (std::nothrow) KvStoreDelegateManager(APP_ID_1, USER_ID_1); ASSERT_NE(manager, nullptr); EXPECT_EQ(manager->SetKvStoreConfig({ .dataDir = NB_DIRECTOR }), OK); @@ -166,7 +166,7 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck002, TestSize.Level0 * dataDir = NB_DIRECTOR, observer = TheAppoitObserver; * @tc.expected: step1. enable failed, and return DB_ERROR. */ - KvStoreObserverImpl *observer = nullptr; + std::weak_ptr observer; AutoLaunchOption option; option.createIfNecessary = false; option.dataDir = NB_DIRECTOR; @@ -228,7 +228,7 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck003, TestSize.Level0 * isEncryptedDb = true, but the passwd is ""; * @tc.expected: step1. enable failed, and return INVALID_ARGS. */ - AutoLaunchOption option = {true, true, CipherType::DEFAULT, NULL_PASSWD, "", true, NB_DIRECTOR, nullptr}; + AutoLaunchOption option = {true, true, CipherType::DEFAULT, NULL_PASSWD, "", true, NB_DIRECTOR}; EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, nullptr), INVALID_ARGS); /** * @tc.steps: step2. call EnableKvStoreAutoLaunch use the option with which createIfNecessary = true, @@ -308,7 +308,7 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck004, TestSize.Level0 */ CipherPassword passwd1, passwd2; passwd1.SetValue(PASSWD_VECTOR_1.data(), PASSWD_VECTOR_1.size()); - AutoLaunchOption option = {false, false, CipherType::DEFAULT, passwd1, schema, false, NB_DIRECTOR, nullptr}; + AutoLaunchOption option = {false, false, CipherType::DEFAULT, passwd1, schema, false, NB_DIRECTOR}; EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, nullptr), INVALID_PASSWD_OR_CORRUPTED_DB); @@ -318,8 +318,8 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck004, TestSize.Level0 * @tc.expected: step3. enable failed, and return INVALID_PASSWD_OR_CORRUPTED_DB. */ passwd2.SetValue(PASSWD_VECTOR_2.data(), PASSWD_VECTOR_2.size()); - option = {false, true, CipherType::DEFAULT, passwd2, schema, false, NB_DIRECTOR, nullptr}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, nullptr), + AutoLaunchOption option2 = {false, true, CipherType::DEFAULT, passwd2, schema, false, NB_DIRECTOR}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option2, nullptr), INVALID_PASSWD_OR_CORRUPTED_DB); /** @@ -327,8 +327,8 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck004, TestSize.Level0 * isEncryptedDb = true, and the passwd is passwd1; * @tc.expected: step4. enable success, and return OK. */ - option = {false, true, CipherType::DEFAULT, passwd1, schema, false, NB_DIRECTOR, nullptr}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, nullptr), OK); + AutoLaunchOption option3 = {false, true, CipherType::DEFAULT, passwd1, schema, false, NB_DIRECTOR}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option3, nullptr), OK); EXPECT_EQ(manager->DisableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1), OK); EXPECT_TRUE(EndCaseDeleteDB(manager, delegate, STORE_ID_1, dbOption.isMemoryDb)); @@ -347,8 +347,8 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck004, TestSize.Level0 * @tc.expected: step6. enable failed, and return INVALID_PASSWD_OR_CORRUPTED_DB. */ passwd1.SetValue(PASSWD_VECTOR_1.data(), PASSWD_VECTOR_1.size()); - option = {false, true, CipherType::DEFAULT, passwd1, schema, false, NB_DIRECTOR, nullptr}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_2, APP_ID_2, STORE_ID_2, option, nullptr), + AutoLaunchOption option4 = {false, true, CipherType::DEFAULT, passwd1, schema, false, NB_DIRECTOR}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_2, APP_ID_2, STORE_ID_2, option4, nullptr), INVALID_PASSWD_OR_CORRUPTED_DB); /** @@ -357,8 +357,8 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck004, TestSize.Level0 * @tc.expected: step7. enable success, and return OK. */ passwd2.SetValue(PASSWD_VECTOR_2.data(), PASSWD_VECTOR_2.size()); - option = {false, false, CipherType::DEFAULT, passwd2, schema, false, NB_DIRECTOR, nullptr}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_2, APP_ID_2, STORE_ID_2, option, nullptr), OK); + AutoLaunchOption option5 = {false, false, CipherType::DEFAULT, passwd2, schema, false, NB_DIRECTOR}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_2, APP_ID_2, STORE_ID_2, option5, nullptr), OK); EXPECT_EQ(manager->DisableKvStoreAutoLaunch(USER_ID_2, APP_ID_2, STORE_ID_2), OK); EXPECT_TRUE(EndCaseDeleteDB(manager, delegate, STORE_ID_2, dbOption.isMemoryDb)); @@ -382,7 +382,7 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck005, TestSize.Level0 * @tc.expected: step1. enable success, and return OK. */ string schema = SpliceToSchema(VALID_VERSION_1, VALID_MODE_1, VALID_DEFINE_1, VALID_INDEX_1); - AutoLaunchOption option = {true, false, CipherType::DEFAULT, NULL_PASSWD, schema, false, NB_DIRECTOR, nullptr}; + AutoLaunchOption option = {true, false, CipherType::DEFAULT, NULL_PASSWD, schema, false, NB_DIRECTOR}; EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, nullptr), OK); EXPECT_EQ(manager->DisableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1), OK); EXPECT_EQ(manager->DeleteKvStore(STORE_ID_1), OK); @@ -392,8 +392,8 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck005, TestSize.Level0 * @tc.expected: step2. enable failed, and return INVALID_SCHEMA. */ string inValidSchema = SpliceToSchema(VALID_VERSION_1, VALID_MODE_1, INVALID_DEFINE_2, VALID_INDEX_1); - option = {true, false, CipherType::DEFAULT, NULL_PASSWD, inValidSchema, false, NB_DIRECTOR, nullptr}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, nullptr), + AutoLaunchOption option2 = {true, false, CipherType::DEFAULT, NULL_PASSWD, inValidSchema, false, NB_DIRECTOR}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option2, nullptr), INVALID_SCHEMA); delete manager; @@ -434,14 +434,13 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck006, TestSize.Level0 vector results = {INVALID_ARGS, OK, OK, INVALID_ARGS, OK, OK, OK, OK, OK, OK, INVALID_ARGS}; string schema = SpliceToSchema(VALID_VERSION_1, VALID_MODE_1, VALID_DEFINE_1, VALID_INDEX_1); - AutoLaunchOption option; DBStatus status; RemoveDir("/data/test/getstub"); for (unsigned long index = 0; index < dirs.size(); index++) { if (results[index] == OK) { SetDir(dirs[index]); } - option = {true, false, CipherType::DEFAULT, NULL_PASSWD, schema, false, dirs[index], nullptr}; + AutoLaunchOption option = {true, false, CipherType::DEFAULT, NULL_PASSWD, schema, false, dirs[index]}; status = manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, nullptr); if (index == 3) { // the 3th element EXPECT_NE(status, OK); @@ -481,16 +480,16 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck007, TestSize.Level0 * isEncryptedDb = false; * @tc.expected: step1. enable success, and return OK. */ - KvStoreObserverImpl observer; - AutoLaunchOption option = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, &observer}; + std::shared_ptr observer = std::make_shared(); + AutoLaunchOption option = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, observer}; EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), OK); /** * @tc.steps: step2. call EnableKvStoreAutoLaunch use the option with which createIfNecessary = false. * @tc.expected: step2. enable failed, and return ALREADY_SET. */ - option = {false, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, &observer}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), ALREADY_SET); + AutoLaunchOption option2 = {false, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, observer}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option2, notifier), ALREADY_SET); /** * @tc.steps: step3. call EnableKvStoreAutoLaunch use the option with which isEncrypt = true, passwd = p1. @@ -498,60 +497,60 @@ HWTEST_F(DistributeddbNbEnableSyncByClosedDbTest, ParamCheck007, TestSize.Level0 */ CipherPassword passwd1; passwd1.SetValue(PASSWD_VECTOR_1.data(), PASSWD_VECTOR_1.size()); - option = {true, true, CipherType::DEFAULT, passwd1, "", false, NB_DIRECTOR, &observer}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), ALREADY_SET); + AutoLaunchOption option3 = {true, true, CipherType::DEFAULT, passwd1, "", false, NB_DIRECTOR, observer}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option3, notifier), ALREADY_SET); /** * @tc.steps: step4. call EnableKvStoreAutoLaunch use the option with which schema is a valid schema. * @tc.expected: step4. enable failed, and return ALREADY_SET. */ string schema = SpliceToSchema(VALID_VERSION_1, VALID_MODE_1, VALID_DEFINE_1, VALID_INDEX_1); - option = {true, false, CipherType::DEFAULT, NULL_PASSWD, schema, false, NB_DIRECTOR, &observer}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), ALREADY_SET); + AutoLaunchOption option4 = {true, false, CipherType::DEFAULT, NULL_PASSWD, schema, false, NB_DIRECTOR, observer}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option4, notifier), ALREADY_SET); /** * @tc.steps: step5. call EnableKvStoreAutoLaunch use the option with which createDirByStoreIdOnly = true. * @tc.expected: step5. enable failed, and return ALREADY_SET. */ - option = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", true, NB_DIRECTOR, &observer}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), ALREADY_SET); + AutoLaunchOption option5 = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", true, NB_DIRECTOR, observer}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option5, notifier), ALREADY_SET); /** * @tc.steps: step6. call EnableKvStoreAutoLaunch use the option with which dataDir = DIRECTOR. * @tc.expected: step6. enable failed, and return ALREADY_SET. */ SetDir(DIRECTOR); - option = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, DIRECTOR, &observer}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), ALREADY_SET); + AutoLaunchOption option6 = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, DIRECTOR, observer}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option6, notifier), ALREADY_SET); /** * @tc.steps: step7. call EnableKvStoreAutoLaunch use the option with which observer = observer2. * @tc.expected: step7. enable failed, and return ALREADY_SET. */ - KvStoreObserverImpl observer2; - option = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, &observer2}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), ALREADY_SET); + std::shared_ptr observer2 = std::make_shared(); + AutoLaunchOption option7 = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, observer2}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option7, notifier), ALREADY_SET); /** * @tc.steps: step8. call EnableKvStoreAutoLaunch use the option with which notifier is not null. * @tc.expected: step8. enable failed, and return ALREADY_SET. */ - option = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, &observer}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), ALREADY_SET); + AutoLaunchOption option8 = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, observer}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option8, notifier), ALREADY_SET); /** * @tc.steps: step9. call EnableKvStoreAutoLaunch use the option with the params is the same with the first time . * @tc.expected: step9. enable failed, and return ALREADY_SET. */ - option = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, &observer}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), ALREADY_SET); + AutoLaunchOption option9 = {true, false, CipherType::DEFAULT, NULL_PASSWD, "", false, NB_DIRECTOR, observer}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option9, notifier), ALREADY_SET); /** * @tc.steps: step10. call DisableKvStoreAutoLaunch interface to disable the function, * and use the option which is different from the first time EnableKvStoreAutoLaunch used. * @tc.expected: step10. enable success, and return OK. */ EXPECT_EQ(manager->DisableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1), OK); - option = {true, true, CipherType::DEFAULT, passwd1, schema, true, DIRECTOR, &observer2}; - EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option, notifier), OK); + AutoLaunchOption option10 = {true, true, CipherType::DEFAULT, passwd1, schema, true, DIRECTOR, observer2}; + EXPECT_EQ(manager->EnableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1, option10, notifier), OK); EXPECT_EQ(manager->DisableKvStoreAutoLaunch(USER_ID_1, APP_ID_1, STORE_ID_1), OK); EXPECT_EQ(manager->DeleteKvStore(STORE_ID_1), OK); diff --git a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_local_batch_crud_test.cpp b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_local_batch_crud_test.cpp index 8ad5b6341bc157c50eed3ece012f805e889fcebc..2a5cc377ab2c568f23bedc061f313b226a1a428b 100644 --- a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_local_batch_crud_test.cpp +++ b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_local_batch_crud_test.cpp @@ -647,14 +647,16 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Exception001, TestSize.Level1) */ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer001, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2, observer3; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); /** * @tc.steps: step1. register observer of k1, k2, k3 of OBSERVER_CHANGES_LOCAL_ONLY mode. * @tc.expected: step1. register success. */ - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observer1), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_LOCAL_ONLY, &observer2), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_LOCAL_ONLY, &observer3), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observer1), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_LOCAL_ONLY, observer2), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_LOCAL_ONLY, observer3), OK); /** * @tc.steps: step2. PutLocalBatch (k1, v1), (k2, v2) to DB and check the 3 observers. @@ -666,30 +668,30 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer001, TestSize.Level1) EXPECT_EQ(DistributedDBNbTestTools::PutLocalBatch(*g_nbLocalBatchDelegate, entries1), OK); list changeList; changeList.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, INSERT_LIST, changeList)); changeList.clear(); changeList.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, INSERT_LIST, changeList)); changeList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ZERO_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ZERO_TIME, INSERT_LIST, changeList)); /** * @tc.steps: step3. PutLocalBatch (k2, v3) (k3, v3) to insert (k3, v3) and update (k2, v3) and check the observers * @tc.expected: step3. PutLocalBatch success and observer1 was not triggered, observer2 was triggered update mode, * and observer3 was triggered by insert mode. */ - observer1.Clear(); - observer2.Clear(); + observer1->Clear(); + observer2->Clear(); entries2.push_back(ENTRY_2_3); entries2.push_back(ENTRY_3); EXPECT_EQ(DistributedDBNbTestTools::PutLocalBatch(*g_nbLocalBatchDelegate, entries2), OK); changeList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ZERO_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ZERO_TIME, INSERT_LIST, changeList)); changeList.clear(); changeList.push_back(ENTRY_2_3); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, UPDATE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, UPDATE_LIST, changeList)); changeList.clear(); changeList.push_back(ENTRY_3); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ONE_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ONE_TIME, INSERT_LIST, changeList)); } /** @@ -701,7 +703,9 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer001, TestSize.Level1) */ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer002, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2, observer3; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); vector entries, gotEntries; entries.push_back(ENTRY_1); entries.push_back(ENTRY_2); @@ -711,9 +715,9 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer002, TestSize.Level1) * @tc.steps: step1. register observer of k1, k2, k3 of OBSERVER_CHANGES_LOCAL_ONLY mode. * @tc.expected: step1. register success. */ - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observer1), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_LOCAL_ONLY, &observer2), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_LOCAL_ONLY, &observer3), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observer1), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_LOCAL_ONLY, observer2), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_LOCAL_ONLY, observer3), OK); /** * @tc.steps: step2. DeleteLocalBatch (k1, v1), (k2, v2) from DB and check the 3 observers. @@ -726,12 +730,12 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer002, TestSize.Level1) EXPECT_EQ(DistributedDBNbTestTools::DeleteLocalBatch(*g_nbLocalBatchDelegate, keys), OK); list changeList; changeList.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, DELETE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, DELETE_LIST, changeList)); changeList.clear(); changeList.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, DELETE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, DELETE_LIST, changeList)); changeList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ZERO_TIME, DELETE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ZERO_TIME, DELETE_LIST, changeList)); /** * @tc.steps: step3. use GetLocalEntries to check the data in DB. @@ -752,14 +756,16 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer002, TestSize.Level1) */ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer003, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2, observer3; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); /** * @tc.steps: step1. register observer of k1, k2, k3 of OBSERVER_CHANGES_LOCAL_ONLY mode. * @tc.expected: step1. register success. */ - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observer1), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_LOCAL_ONLY, &observer2), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_LOCAL_ONLY, &observer3), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observer1), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_LOCAL_ONLY, observer2), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_LOCAL_ONLY, observer3), OK); /** * @tc.steps: step2. PutLocalBatch (k1, v1), (k1, v2), (k2, v2) to DB and check the 3 observers. @@ -774,33 +780,33 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer003, TestSize.Level1) list changeList; changeList.push_back(ENTRY_1_2); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, INSERT_LIST, changeList)); changeList.clear(); changeList.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, INSERT_LIST, changeList)); changeList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ZERO_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ZERO_TIME, INSERT_LIST, changeList)); /** * @tc.steps: step3. PutLocalBatch (k2, v3), (k2, v4), (k3, v3) to DB and check the 3 observers. * @tc.expected: step3. PutLocalBatch success and observer1 was not triggered, and observer2 was triggered by * update mode, and observer3 was triggered once by insert mode. */ - observer1.Clear(); - observer2.Clear(); + observer1->Clear(); + observer2->Clear(); entries2.push_back(ENTRY_2_3); entries2.push_back(ENTRY_2_4); entries2.push_back(ENTRY_3); EXPECT_EQ(DistributedDBNbTestTools::PutLocalBatch(*g_nbLocalBatchDelegate, entries2), OK); changeList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ZERO_TIME, UPDATE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ZERO_TIME, UPDATE_LIST, changeList)); changeList.clear(); changeList.push_back(ENTRY_2_4); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, UPDATE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, UPDATE_LIST, changeList)); changeList.clear(); changeList.push_back(ENTRY_3); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ONE_TIME, INSERT_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ONE_TIME, INSERT_LIST, changeList)); } /** @@ -813,7 +819,9 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer003, TestSize.Level1) */ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer004, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2, observer3; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); vector entries1, entries2; entries1.push_back(ENTRY_1); entries1.push_back(ENTRY_2); @@ -823,9 +831,9 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer004, TestSize.Level1) * @tc.steps: step1. register observer of k1, k2, k3 of OBSERVER_CHANGES_LOCAL_ONLY mode. * @tc.expected: step1. register success. */ - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observer1), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_LOCAL_ONLY, &observer2), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_LOCAL_ONLY, &observer3), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observer1), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_LOCAL_ONLY, observer2), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_3, OBSERVER_CHANGES_LOCAL_ONLY, observer3), OK); /** * @tc.steps: step2. DeleteLocalBatch (k1, k2, k1) from DB and check the 3 observers. @@ -839,12 +847,12 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer004, TestSize.Level1) EXPECT_EQ(DistributedDBNbTestTools::DeleteLocalBatch(*g_nbLocalBatchDelegate, keys), OK); list changeList; changeList.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observer1, CHANGED_ONE_TIME, DELETE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer1, CHANGED_ONE_TIME, DELETE_LIST, changeList)); changeList.clear(); changeList.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observer2, CHANGED_ONE_TIME, DELETE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer2, CHANGED_ONE_TIME, DELETE_LIST, changeList)); changeList.clear(); - EXPECT_TRUE(VerifyObserverResult(observer3, CHANGED_ZERO_TIME, DELETE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*observer3, CHANGED_ZERO_TIME, DELETE_LIST, changeList)); } /** @@ -856,14 +864,15 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer004, TestSize.Level1) */ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer005, TestSize.Level1) { - vector observer(OBSERVER_CNT_END); + std::vector> observer; /** * @tc.steps: step1. register observer all the 8 observers of OBSERVER_CHANGES_LOCAL_ONLY mode. * @tc.expected: step1. register success. */ for (unsigned long index = 0; index < OBSERVER_CNT_END; index++) { + observer[index] = std::make_shared(); EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, - &observer[index]), OK); + observer[index]), OK); } /** @@ -880,8 +889,8 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer005, TestSize.Level1) changeList.push_back(*it); } for (auto it = observer.begin(); it != observer.end(); it++) { - EXPECT_TRUE(VerifyObserverResult(*it, CHANGED_ONE_TIME, INSERT_LIST, changeList)); - it->Clear(); + EXPECT_TRUE(VerifyObserverResult(*(*it), CHANGED_ONE_TIME, INSERT_LIST, changeList)); + it->get()->Clear(); } /** * @tc.steps: step3. use PutLocalBatch to update the 10 data to DB and check the 8 observers. @@ -898,8 +907,8 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer005, TestSize.Level1) changeList.push_back(*it); } for (auto it = observer.begin(); it != observer.end(); it++) { - EXPECT_TRUE(VerifyObserverResult(*it, CHANGED_ONE_TIME, UPDATE_LIST, changeList)); - it->Clear(); + EXPECT_TRUE(VerifyObserverResult(*(*it), CHANGED_ONE_TIME, UPDATE_LIST, changeList)); + it->get()->Clear(); } /** * @tc.steps: step4. use DeleteLocalBatch to delete the 10 data from DB and check the 8 observers. @@ -908,7 +917,7 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer005, TestSize.Level1) */ EXPECT_EQ(DistributedDBNbTestTools::DeleteLocalBatch(*g_nbLocalBatchDelegate, keys), OK); for (auto it = observer.begin(); it != observer.end(); it++) { - EXPECT_TRUE(VerifyObserverResult(*it, CHANGED_ONE_TIME, DELETE_LIST, changeList)); + EXPECT_TRUE(VerifyObserverResult(*(*it), CHANGED_ONE_TIME, DELETE_LIST, changeList)); } } @@ -932,10 +941,10 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer006, TestSize.Level1) * @tc.steps: step1. register a local and a native observer separately, then start a transaction. * @tc.expected: step1. operate successfully. */ - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerNative; - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, &observerNative), OK); + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerNative = std::make_shared(); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, observerNative), OK); EXPECT_EQ(g_nbLocalBatchDelegate->StartTransaction(), OK); /** * @tc.steps: step2. PutBatch 10 records, Put (k1,v1), Delete (k2). @@ -971,19 +980,19 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer006, TestSize.Level1) * callback list contains 10 data. */ EXPECT_EQ(g_nbLocalBatchDelegate->Commit(), OK); - EXPECT_TRUE(VerifyObserverResult(observerNative, CHANGED_ONE_TIME, INSERT_LIST, insertEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerNative, CHANGED_ONE_TIME, INSERT_LIST, insertEntries)); vector updateEntries = { ENTRY_1_2 }; - EXPECT_TRUE(VerifyObserverResult(observerNative, CHANGED_ONE_TIME, UPDATE_LIST, updateEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerNative, CHANGED_ONE_TIME, UPDATE_LIST, updateEntries)); vector deleteEntries = { ENTRY_2 }; - EXPECT_TRUE(VerifyObserverResult(observerNative, CHANGED_ONE_TIME, DELETE_LIST, deleteEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerNative, CHANGED_ONE_TIME, DELETE_LIST, deleteEntries)); vector localInsertEntries = { ENTRY_2 }; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, INSERT_LIST, localInsertEntries)); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, UPDATE_LIST, localUpdateEntries)); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, DELETE_LIST, localDeleteEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, INSERT_LIST, localInsertEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, UPDATE_LIST, localUpdateEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, DELETE_LIST, localDeleteEntries)); - EXPECT_EQ(g_nbLocalBatchDelegate->UnRegisterObserver(&observerLocal), OK); - EXPECT_EQ(g_nbLocalBatchDelegate->UnRegisterObserver(&observerNative), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->UnRegisterObserver(observerLocal), OK); + EXPECT_EQ(g_nbLocalBatchDelegate->UnRegisterObserver(observerNative), OK); } /** @@ -1000,8 +1009,8 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer007, TestSize.Level1) * @tc.steps: step1. register a local observer. * @tc.expected: step1. operate successfully. */ - KvStoreObserverImpl observerLocal; - EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal), OK); + std::shared_ptr observerLocal = std::make_shared(); + EXPECT_EQ(g_nbLocalBatchDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal), OK); /** * @tc.steps: step2. start a transaction, then PutBatch 10 records, PutLocal (k10,v10), * and PutLocalBatch from k1 to k5. @@ -1019,18 +1028,18 @@ HWTEST_F(DistributeddbNbLocalBatchCrudTest, Observer007, TestSize.Level1) * and there are 6 records in insert list of the local observer after committing. */ insertEntries.push_back(ENTRY_10); - thread subThread([&insertEntries, &observerLocal]() { + thread subThread([&insertEntries, observerLocal]() { vector emptyInsertEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, emptyInsertEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, emptyInsertEntries)); EXPECT_EQ(g_nbLocalBatchDelegate->Commit(), OK); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, INSERT_LIST, insertEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, INSERT_LIST, insertEntries)); }); subThread.join(); /** * @tc.steps: step4. verify the data in main thread after the transaction committed in sub thread. * @tc.expected: step4. there are 6 records in insert list of the local observer. */ - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, INSERT_LIST, insertEntries)); - EXPECT_EQ(g_nbLocalBatchDelegate->UnRegisterObserver(&observerLocal), OK); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, INSERT_LIST, insertEntries)); + EXPECT_EQ(g_nbLocalBatchDelegate->UnRegisterObserver(observerLocal), OK); } } // end of namespace DistributeddbNbLocalBatchCrud \ No newline at end of file diff --git a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_observer_test.cpp b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_observer_test.cpp index 4637f85d3c19892bd8106d6de844066d3f627041..5aee191f9c258aac00be8d0426941156dc4216e0 100644 --- a/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_observer_test.cpp +++ b/frameworks/libs/distributeddb/test/moduletest/src/distributeddb_nb_observer_test.cpp @@ -104,17 +104,17 @@ void DistributeddbNbObserverTest::TearDown(void) void RegisterAndUnRegisterObserver(ConcurParam* paramsPtr) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); DBStatus status = g_nbObserverDelegate->RegisterObserver( - paramsPtr->entryPtr_->key, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + paramsPtr->entryPtr_->key, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver( - paramsPtr->entryPtr_->key, OBSERVER_CHANGES_NATIVE, &observerSync); + paramsPtr->entryPtr_->key, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -166,19 +166,19 @@ void ConcurOperThread(ConcurParam* args) */ HWTEST_F(DistributeddbNbObserverTest, RegisterData001, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. register local observer1 use OBSERVER_CHANGES_LOCAL_ONLY mode. * @tc.expected: step1. register success. */ - DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); /** * @tc.steps: step2. register sync observer2 use OBSERVER_CHANGES_NATIVE. * @tc.expected: step2. register success. */ - status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observerSync); + status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_EQ(status, OK); /** * @tc.steps: step3. verify that if observer1 will be triggered when put (KEY_1, VALUE_1) to local db. @@ -187,10 +187,10 @@ HWTEST_F(DistributeddbNbObserverTest, RegisterData001, TestSize.Level1) EXPECT_EQ((g_nbObserverDelegate->PutLocal(KEY_1, VALUE_1)), OK); vector insertLocalEntries; insertLocalEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, INSERT_LIST, insertLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, INSERT_LIST, insertLocalEntries)); vector insertNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step4. verify that if observer1 will be triggered when delete (KEY_1, VALUE_1) from local db. * @tc.expected: step4. observer1 will be response but observer2 won't. @@ -198,34 +198,34 @@ HWTEST_F(DistributeddbNbObserverTest, RegisterData001, TestSize.Level1) EXPECT_EQ((g_nbObserverDelegate->DeleteLocal(KEY_1)), OK); vector deleteLocalEntries; deleteLocalEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step5. verify that if observer2 will be triggered when put (KEY_1, VALUE_1) to sync db. * @tc.expected: step5. observer2 will be response but observer1 won't. */ EXPECT_EQ((g_nbObserverDelegate->Put(KEY_1, VALUE_1)), OK); insertLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); insertNativeEntries.clear(); insertNativeEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, INSERT_LIST, insertNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, INSERT_LIST, insertNativeEntries)); + observerSync->Clear(); /** * @tc.steps: step6. verify that if observer2 will be triggered when delete (KEY_1, VALUE_1) from sync db. * @tc.expected: step6. observer1 will be response but observer2 won't. */ EXPECT_EQ((g_nbObserverDelegate->Delete(KEY_1)), OK); deleteLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); deleteNativeEntries.clear(); deleteNativeEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); - g_nbObserverDelegate->UnRegisterObserver(&observerLocal); - g_nbObserverDelegate->UnRegisterObserver(&observerSync); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); + g_nbObserverDelegate->UnRegisterObserver(observerLocal); + g_nbObserverDelegate->UnRegisterObserver(observerSync); } void CheckObserverAllLocalValue(KvStoreObserverImpl &observerLocal) @@ -273,16 +273,16 @@ void CheckObserverAllLocalValue(KvStoreObserverImpl &observerLocal) */ HWTEST_F(DistributeddbNbObserverTest, RegisterData002, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. register local observerLocal use empty key KEY_EMPTY. * @tc.expected: step1. register success. */ - DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); - CheckObserverAllLocalValue(observerLocal); + CheckObserverAllLocalValue(*observerLocal); /** * @tc.steps: step5. put one entry (KEY_1, VALUE_1) to sync db. @@ -291,8 +291,8 @@ HWTEST_F(DistributeddbNbObserverTest, RegisterData002, TestSize.Level1) status = g_nbObserverDelegate->Put(KEY_1, VALUE_1); EXPECT_EQ(status, OK); vector insertNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + observerSync->Clear(); /** * @tc.steps: step6. put one entry (KEY_2, VALUE_2) to sync db. @@ -301,8 +301,8 @@ HWTEST_F(DistributeddbNbObserverTest, RegisterData002, TestSize.Level1) status = g_nbObserverDelegate->Put(KEY_2, VALUE_2); EXPECT_EQ(status, OK); insertNativeEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + observerSync->Clear(); /** * @tc.steps: step7. delete one entry from sync db where key = KEY_1. @@ -311,10 +311,10 @@ HWTEST_F(DistributeddbNbObserverTest, RegisterData002, TestSize.Level1) status = g_nbObserverDelegate->Delete(KEY_1); EXPECT_EQ(status, OK); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); - g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + g_nbObserverDelegate->UnRegisterObserver(observerLocal); g_nbObserverDelegate->DeleteLocal(KEY_2); g_nbObserverDelegate->Delete(KEY_2); } @@ -378,28 +378,28 @@ void CheckObserverAllNativeValue(KvStoreObserverImpl &observerLocal, KvStoreObse */ HWTEST_F(DistributeddbNbObserverTest, RegisterData003, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. register sync observerSync use empty key KEY_EMPTY. * @tc.expected: step1. register success. */ - DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, &observerSync); + DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_EQ(status, OK); - CheckObserverAllNativeValue(observerLocal, observerSync); + CheckObserverAllNativeValue(*observerLocal, *observerSync); status = g_nbObserverDelegate->Put(KEY_2, VALUE_2); vector updateNativeEntries; updateNativeEntries.push_back(ENTRY_2); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, UPDATE_LIST, updateNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, UPDATE_LIST, updateNativeEntries)); + observerSync->Clear(); EXPECT_EQ(g_nbObserverDelegate->Put(KEY_2, VALUE_3), OK); updateNativeEntries.clear(); updateNativeEntries.push_back(ENTRY_2_3); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, UPDATE_LIST, updateNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, UPDATE_LIST, updateNativeEntries)); + observerSync->Clear(); /** * @tc.steps: step7. delete one entry from sync db where key = KEY_1. @@ -408,10 +408,10 @@ HWTEST_F(DistributeddbNbObserverTest, RegisterData003, TestSize.Level1) EXPECT_EQ(g_nbObserverDelegate->Delete(KEY_1), OK); vector deleteNativeEntries; deleteNativeEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); - g_nbObserverDelegate->UnRegisterObserver(&observerSync); + g_nbObserverDelegate->UnRegisterObserver(observerSync); g_nbObserverDelegate->DeleteLocal(KEY_2); g_nbObserverDelegate->Delete(KEY_2); } @@ -425,20 +425,20 @@ HWTEST_F(DistributeddbNbObserverTest, RegisterData003, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, UnRegister001, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. register local observerLocal use key = KEY_1. * @tc.expected: step1. register success. */ DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); /** * @tc.steps: step2. register sync observerSync use key = KEY_2. * @tc.expected: step2. register success. */ - status = g_nbObserverDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, &observerSync); + status = g_nbObserverDelegate->RegisterObserver(KEY_2, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_EQ(status, OK); /** * @tc.steps: step3. put one entries (KEY_2, VALUE_2) to local db. @@ -446,10 +446,10 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister001, TestSize.Level1) */ EXPECT_EQ(g_nbObserverDelegate->PutLocal(KEY_2, VALUE_2), OK); vector insertLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); vector insertNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step4. delete one entries from local db where key = KEY_2. @@ -457,10 +457,10 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister001, TestSize.Level1) */ EXPECT_EQ(g_nbObserverDelegate->DeleteLocal(KEY_2), OK); vector deleteLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step5. put one entries (KEY_1, VALUE_1) to sync db. @@ -468,10 +468,10 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister001, TestSize.Level1) */ EXPECT_EQ(g_nbObserverDelegate->Put(KEY_1, VALUE_1), OK); insertLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); insertNativeEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + observerSync->Clear(); /** * @tc.steps: step6. delete one entries from sync db where key = KEY_1. @@ -479,12 +479,12 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister001, TestSize.Level1) */ EXPECT_EQ(g_nbObserverDelegate->Delete(KEY_1), OK); deleteLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); deleteNativeEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); - g_nbObserverDelegate->UnRegisterObserver(&observerLocal); - g_nbObserverDelegate->UnRegisterObserver(&observerSync); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); + g_nbObserverDelegate->UnRegisterObserver(observerLocal); + g_nbObserverDelegate->UnRegisterObserver(observerSync); } /* @@ -496,20 +496,20 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister001, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, UnRegister002, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); g_nbObserverDelegate->PutLocal(KEY_1, VALUE_1); g_nbObserverDelegate->Put(KEY_1, VALUE_1); DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observerSync); + status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_EQ(status, OK); /** * @tc.steps: step1. UnRegister local observer of KEY_1. * @tc.expected: step1. UnRegister success. */ - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); /** * @tc.steps: step2. delete one entries from local db where key = KEY_1. @@ -517,9 +517,9 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister002, TestSize.Level1) */ EXPECT_EQ(g_nbObserverDelegate->DeleteLocal(KEY_1), OK); vector deleteLocalEntries, deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step3. delete one entries from sync db where key = KEY_1. @@ -529,11 +529,11 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister002, TestSize.Level1) EXPECT_EQ(g_nbObserverDelegate->Delete(KEY_1), OK); deleteNativeEntries.clear(); deleteNativeEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); deleteLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); - observerSync.Clear(); - g_nbObserverDelegate->UnRegisterObserver(&observerSync); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + observerSync->Clear(); + g_nbObserverDelegate->UnRegisterObserver(observerSync); } /* @@ -545,20 +545,20 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister002, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, UnRegister003, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); g_nbObserverDelegate->PutLocal(KEY_1, VALUE_1); g_nbObserverDelegate->Put(KEY_1, VALUE_1); DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_TRUE(status == OK); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observerSync); + status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_TRUE(status == OK); /** * @tc.steps: step1. UnRegister sync observer of KEY_1. * @tc.expected: step1. UnRegister success. */ - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_TRUE(status == OK); /** * @tc.steps: step2. delete one entries from local db where key = KEY_1. @@ -568,10 +568,10 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister003, TestSize.Level1) EXPECT_TRUE(g_nbObserverDelegate->DeleteLocal(KEY_1) == OK); vector deleteLocalEntry; deleteLocalEntry.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, DELETE_LIST, deleteLocalEntry)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, DELETE_LIST, deleteLocalEntry)); vector deleteNativeEntry; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntry)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntry)); + observerLocal->Clear(); /** * @tc.steps: step3. delete one entries from sync db where key = KEY_1. @@ -579,11 +579,11 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister003, TestSize.Level1) */ EXPECT_TRUE(g_nbObserverDelegate->Delete(KEY_1) == OK); deleteLocalEntry.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntry)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntry)); deleteNativeEntry.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntry)); - observerSync.Clear(); - g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntry)); + observerSync->Clear(); + g_nbObserverDelegate->UnRegisterObserver(observerLocal); } /* @@ -595,20 +595,20 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister003, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, UnRegister004, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); g_nbObserverDelegate->PutLocal(KEY_1, VALUE_1); g_nbObserverDelegate->Put(KEY_1, VALUE_1); DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, &observerSync); + status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_EQ(status, OK); /** * @tc.steps: step1. UnRegister local observer of KEY_EMPTY. * @tc.expected: step1. UnRegister success. */ - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); /** * @tc.steps: step2. delete one entries from local db where key = KEY_1. @@ -616,10 +616,10 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister004, TestSize.Level1) */ EXPECT_EQ(g_nbObserverDelegate->DeleteLocal(KEY_1), OK); vector insertLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); vector insertNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step3. delete one entries from sync db where key = KEY_1. @@ -628,12 +628,12 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister004, TestSize.Level1) */ EXPECT_EQ(g_nbObserverDelegate->Delete(KEY_1), OK); vector deleteLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; deleteNativeEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); - g_nbObserverDelegate->UnRegisterObserver(&observerSync); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); + g_nbObserverDelegate->UnRegisterObserver(observerSync); } /* @@ -645,20 +645,20 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister004, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, UnRegister005, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); g_nbObserverDelegate->PutLocal(KEY_1, VALUE_1); g_nbObserverDelegate->Put(KEY_1, VALUE_1); DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, &observerSync); + status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_EQ(status, OK); /** * @tc.steps: step1. UnRegister sync observer of KEY_EMPTY. * @tc.expected: step1. UnRegister success. */ - EXPECT_EQ(g_nbObserverDelegate->UnRegisterObserver(&observerSync), OK); + EXPECT_EQ(g_nbObserverDelegate->UnRegisterObserver(observerSync), OK); /** * @tc.steps: step2. delete one entries from local db where key = KEY_1. * @tc.expected: step2. observerLocal will be response and got record (KEY_1, VALUE_1) @@ -667,10 +667,10 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister005, TestSize.Level1) EXPECT_EQ(g_nbObserverDelegate->DeleteLocal(KEY_1), OK); vector deleteLocalEntries; deleteLocalEntries.push_back(ENTRY_1); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step3. delete one entries from sync db where key = KEY_1. @@ -678,11 +678,11 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister005, TestSize.Level1) */ EXPECT_EQ(g_nbObserverDelegate->Delete(KEY_1), OK); deleteLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); deleteNativeEntries.clear(); - g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + g_nbObserverDelegate->UnRegisterObserver(observerLocal); } /* @@ -694,38 +694,42 @@ HWTEST_F(DistributeddbNbObserverTest, UnRegister005, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, ParamCheck001, TestSize.Level1) { - KvStoreObserverImpl observer1, observer2, observer3, observer4, observer; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); + std::shared_ptr observer4 = std::make_shared(); + std::shared_ptr observer = std::make_shared(); DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observer1); + g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observer1); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, &observer2); + status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observer2); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_FOREIGN, &observer3); + status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_FOREIGN, observer3); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_1, - OBSERVER_CHANGES_FOREIGN | OBSERVER_CHANGES_NATIVE, &observer4); + OBSERVER_CHANGES_FOREIGN | OBSERVER_CHANGES_NATIVE, observer4); EXPECT_EQ(status, OK); /** * @tc.steps: step1. Register observer with the mode is not in (1, 2, 3, 4). * @tc.expected: step1. Register failed and return INVALID_ARGS. */ - status = g_nbObserverDelegate->RegisterObserver(KEY_1, 0, &observer); // invalid mode number 0 + status = g_nbObserverDelegate->RegisterObserver(KEY_1, 0, observer); // invalid mode number 0 EXPECT_EQ(status, INVALID_ARGS); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, 5, &observer); // invalid mode number 5 + status = g_nbObserverDelegate->RegisterObserver(KEY_1, 5, observer); // invalid mode number 5 EXPECT_EQ(status, INVALID_ARGS); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, -1, &observer); // invalid mode number -1 + status = g_nbObserverDelegate->RegisterObserver(KEY_1, -1, observer); // invalid mode number -1 EXPECT_EQ(status, INVALID_ARGS); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, 2147483647, &observer); // invalid mode number 2147483647 + status = g_nbObserverDelegate->RegisterObserver(KEY_1, 2147483647, observer); // invalid mode number 2147483647 EXPECT_EQ(status, INVALID_ARGS); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, -2147483648, &observer); // invalid mode number -2147483648 + status = g_nbObserverDelegate->RegisterObserver(KEY_1, -2147483648, observer); // invalid mode number -2147483648 EXPECT_EQ(status, INVALID_ARGS); - status = g_nbObserverDelegate->RegisterObserver(KEY_1, 999, &observer); // invalid mode number 999 + status = g_nbObserverDelegate->RegisterObserver(KEY_1, 999, observer); // invalid mode number 999 EXPECT_EQ(status, INVALID_ARGS); - g_nbObserverDelegate->UnRegisterObserver(&observer1); - g_nbObserverDelegate->UnRegisterObserver(&observer2); - g_nbObserverDelegate->UnRegisterObserver(&observer3); - g_nbObserverDelegate->UnRegisterObserver(&observer4); + g_nbObserverDelegate->UnRegisterObserver(observer1); + g_nbObserverDelegate->UnRegisterObserver(observer2); + g_nbObserverDelegate->UnRegisterObserver(observer3); + g_nbObserverDelegate->UnRegisterObserver(observer4); } /* @@ -741,53 +745,58 @@ HWTEST_F(DistributeddbNbObserverTest, ParamCheck002, TestSize.Level1) eKey1.assign(ONE_K_LONG_STRING, (uint8_t)'a'); eKey2.assign(ONE_K_LONG_STRING + 1, (uint8_t)'b'); eKey3 = { 'a', 'b', 'c', 'D', 'E', 'F', '2', '4', '5', 199, 1, 255, 0 }; - KvStoreObserverImpl observer1, observer2, observer3, observer4, observer5, observer6; + std::shared_ptr observer1 = std::make_shared(); + std::shared_ptr observer2 = std::make_shared(); + std::shared_ptr observer3 = std::make_shared(); + std::shared_ptr observer4 = std::make_shared(); + std::shared_ptr observer5 = std::make_shared(); + std::shared_ptr observer6 = std::make_shared(); /** * @tc.steps: step1. Register local observer with the key = eKey1 size of which is 1024. * @tc.expected: step1. Register success. */ DBStatus status = - g_nbObserverDelegate->RegisterObserver(eKey1, OBSERVER_CHANGES_LOCAL_ONLY, &observer1); + g_nbObserverDelegate->RegisterObserver(eKey1, OBSERVER_CHANGES_LOCAL_ONLY, observer1); EXPECT_EQ(status, OK); /** * @tc.steps: step2. Register local observer with the key = eKey2 size of which is 1025. * @tc.expected: step2. Register failed and return INVALID_ARGS. */ - status = g_nbObserverDelegate->RegisterObserver(eKey2, OBSERVER_CHANGES_LOCAL_ONLY, &observer2); + status = g_nbObserverDelegate->RegisterObserver(eKey2, OBSERVER_CHANGES_LOCAL_ONLY, observer2); EXPECT_EQ(status, INVALID_ARGS); /** * @tc.steps: step3. Register local observer with the key = eKey3 which contains * [a-zA-Z0-9], [\0-\255], chinese and latins. * @tc.expected: step3. Register failed and return INVALID_ARGS. */ - status = g_nbObserverDelegate->RegisterObserver(eKey3, OBSERVER_CHANGES_LOCAL_ONLY, &observer3); + status = g_nbObserverDelegate->RegisterObserver(eKey3, OBSERVER_CHANGES_LOCAL_ONLY, observer3); EXPECT_EQ(status, OK); /** * @tc.steps: step4. Register sync observer with the key = eKey1 size of which is 1024. * @tc.expected: step4. Register success. */ - status = g_nbObserverDelegate->RegisterObserver(eKey1, OBSERVER_CHANGES_NATIVE, &observer4); + status = g_nbObserverDelegate->RegisterObserver(eKey1, OBSERVER_CHANGES_NATIVE, observer4); EXPECT_EQ(status, OK); /** * @tc.steps: step5. Register local observer with the key = eKey2 size of which is 1025. * @tc.expected: step5. Register failed and return INVALID_ARGS. */ - status = g_nbObserverDelegate->RegisterObserver(eKey2, OBSERVER_CHANGES_NATIVE, &observer5); + status = g_nbObserverDelegate->RegisterObserver(eKey2, OBSERVER_CHANGES_NATIVE, observer5); EXPECT_EQ(status, INVALID_ARGS); /** * @tc.steps: step6. Register local observer with the key = eKey3 which contains * [a-zA-Z0-9], [\0-\255], chinese and latins. * @tc.expected: step6. Register failed and return INVALID_ARGS. */ - status = g_nbObserverDelegate->RegisterObserver(eKey3, OBSERVER_CHANGES_NATIVE, &observer6); + status = g_nbObserverDelegate->RegisterObserver(eKey3, OBSERVER_CHANGES_NATIVE, observer6); EXPECT_EQ(status, OK); - g_nbObserverDelegate->UnRegisterObserver(&observer1); - g_nbObserverDelegate->UnRegisterObserver(&observer2); - g_nbObserverDelegate->UnRegisterObserver(&observer3); - g_nbObserverDelegate->UnRegisterObserver(&observer4); - g_nbObserverDelegate->UnRegisterObserver(&observer5); - g_nbObserverDelegate->UnRegisterObserver(&observer6); + g_nbObserverDelegate->UnRegisterObserver(observer1); + g_nbObserverDelegate->UnRegisterObserver(observer2); + g_nbObserverDelegate->UnRegisterObserver(observer3); + g_nbObserverDelegate->UnRegisterObserver(observer4); + g_nbObserverDelegate->UnRegisterObserver(observer5); + g_nbObserverDelegate->UnRegisterObserver(observer6); } void CheckPressureActionInNative(KvStoreObserverImpl &observerLocal, KvStoreObserverImpl &observerSync) @@ -852,25 +861,25 @@ void CheckPressureActionInNative(KvStoreObserverImpl &observerLocal, KvStoreObse */ HWTEST_F(DistributeddbNbObserverTest, Pressure001, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. Register local observer with the key = KEY_A_1 which do not exist in db. * @tc.expected: step1. Register success. */ DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_A_1, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + g_nbObserverDelegate->RegisterObserver(KEY_A_1, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); /** * @tc.steps: step2. Register sync observer with the key = KEY_EMPTY. * @tc.expected: step2. Register success. */ status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); - CheckPressureActionInNative(observerLocal, observerSync); + CheckPressureActionInNative(*observerLocal, *observerSync); /** * @tc.steps: step7. delete one entries from local db where key = KEY_1. @@ -879,10 +888,10 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure001, TestSize.Level1) status = g_nbObserverDelegate->DeleteLocal(KEY_1); EXPECT_EQ(status, OK); vector deleteLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step8. delete one entries from sync db where key = KEY_1. @@ -892,15 +901,15 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure001, TestSize.Level1) status = g_nbObserverDelegate->Delete(KEY_1); EXPECT_EQ(status, OK); deleteLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); deleteNativeEntries.clear(); deleteNativeEntries.push_back(ENTRY_1_2); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -962,24 +971,24 @@ void CheckPressureActionInLocal(KvStoreObserverImpl &observerLocal, KvStoreObser */ HWTEST_F(DistributeddbNbObserverTest, Pressure002, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. Register local observer with the key = KEY_EMPTY. * @tc.expected: step1. Register success. */ DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); /** * @tc.steps: step2. Register sync observer with the key = KEY_A_1 which do not exist in db. * @tc.expected: step2. Register success. */ - status = g_nbObserverDelegate->RegisterObserver(KEY_A_1, OBSERVER_CHANGES_NATIVE, &observerSync); + status = g_nbObserverDelegate->RegisterObserver(KEY_A_1, OBSERVER_CHANGES_NATIVE, observerSync); EXPECT_EQ(status, OK); - CheckPressureActionInLocal(observerLocal, observerSync); + CheckPressureActionInLocal(*observerLocal, *observerSync); /** * @tc.steps: step7. delete one entries from local db where key = KEY_1. @@ -991,10 +1000,10 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure002, TestSize.Level1) vector deleteLocalEntries; DistributedDB::Entry entry = { KEY_1, VALUE_2 }; deleteLocalEntries.push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step8. delete one entries from sync db where key = KEY_1. @@ -1003,13 +1012,13 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure002, TestSize.Level1) status = g_nbObserverDelegate->Delete(KEY_1); EXPECT_EQ(status, OK); deleteNativeEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); deleteLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); - observerSync.Clear(); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + observerSync->Clear(); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -1022,17 +1031,17 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure002, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, Pressure003, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. UnRegister local and sync Observer. * @tc.expected: step1. it will be both failed to unregister observerLocal and observerSync. */ - DBStatus status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + DBStatus status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, NOT_FOUND); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, NOT_FOUND); } @@ -1049,7 +1058,8 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure004, TestSize.Level1) * @tc.steps: step1. UnRegister nullpter. * @tc.expected: step1. it will be failed to unregister nullptr and return INVALID_ARGS. */ - DBStatus status = g_nbObserverDelegate->UnRegisterObserver(nullptr); + std::weak_ptr observer; + DBStatus status = g_nbObserverDelegate->UnRegisterObserver(observer); EXPECT_EQ(status, INVALID_ARGS); } @@ -1106,52 +1116,52 @@ void CheckPressureActionAfterUnregister(KvStoreObserverImpl &observerLocal, KvSt */ HWTEST_F(DistributeddbNbObserverTest, Pressure005, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); DBStatus status = - g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); /** * @tc.steps: step1. UnRegister local and sync observer the first time. * @tc.expected: step1. it will be both success to unregister observerLocal and observerSync. */ - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); /** * @tc.steps: step2. UnRegister local and sync observer the second time. * @tc.expected: step2. both failed to unregister observerLocal and observerSync, and return NOT_FOUND. */ - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, NOT_FOUND); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, NOT_FOUND); /** * @tc.steps: step3. UnRegister local and sync observer the third time. * @tc.expected: step3. both failed to unregister observerLocal and observerSync, and return NOT_FOUND. */ - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, NOT_FOUND); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, NOT_FOUND); - CheckPressureActionAfterUnregister(observerLocal, observerSync); + CheckPressureActionAfterUnregister(*observerLocal, *observerSync); status = g_nbObserverDelegate->Delete(KEY_1); EXPECT_EQ(status, OK); vector deleteLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); } /* @@ -1163,8 +1173,8 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure005, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, Pressure006, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); DBStatus status = g_nbObserverDelegate->PutLocal(KEY_1, VALUE_1); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->Put(KEY_1, VALUE_1); @@ -1175,15 +1185,15 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure006, TestSize.Level1) * @tc.expected: step1. Register and unregister observerLocal and observerSync success each time. */ for (unsigned int opCnt = NB_OPERATION_CNT_START; opCnt < NB_OPERATION_CNT_END; ++opCnt) { - status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_1, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -1245,7 +1255,8 @@ void CheckPressureForRepeatAction(KvStoreObserverImpl &observerLocal, KvStoreObs */ HWTEST_F(DistributeddbNbObserverTest, Pressure007, TestSize.Level1) { - KvStoreObserverImpl observerLocal, observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); DBStatus status = g_nbObserverDelegate->Put(KEY_1, VALUE_1); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->PutLocal(KEY_1, VALUE_1); @@ -1255,14 +1266,14 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure007, TestSize.Level1) * @tc.expected: step1. Register observerLocal and observerSync success first time and failed later. */ for (unsigned int opCnt = NB_OPERATION_CNT_START; opCnt < NB_OPERATION_CNT_END; ++opCnt) { - status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + status = g_nbObserverDelegate->RegisterObserver(KEY_1, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); if (opCnt == NB_OPERATION_CNT_START) { EXPECT_EQ(status, OK); } else { EXPECT_EQ(status, ALREADY_SET); } status = g_nbObserverDelegate->RegisterObserver(KEY_1, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); if (opCnt == NB_OPERATION_CNT_START) { EXPECT_EQ(status, OK); } else { @@ -1270,11 +1281,11 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure007, TestSize.Level1) } } - CheckPressureForRepeatAction(observerLocal, observerSync); + CheckPressureForRepeatAction(*observerLocal, *observerSync); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -1334,15 +1345,15 @@ void CheckPressureForLocalRepeat(KvStoreObserverImpl &observerLocal, KvStoreObse HWTEST_F(DistributeddbNbObserverTest, Pressure008, TestSize.Level1) { DBStatus status; - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. Register a local observer of key KEY_EMPTY 5 times repeatedly. * @tc.expected: step1. Register observerLocal success first time and failed later. */ for (unsigned int opCnt = NB_OPERATION_CNT_START; opCnt < NB_OPERATION_CNT_END; ++opCnt) { - status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); if (opCnt == NB_OPERATION_CNT_START) { EXPECT_EQ(status, OK); } else { @@ -1351,25 +1362,25 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure008, TestSize.Level1) } vector< vector > entries(6); // 6 element - CheckPressureForLocalRepeat(observerLocal, observerSync, entries); + CheckPressureForLocalRepeat(*observerLocal, *observerSync, entries); status = g_nbObserverDelegate->Put(KEY_1, VALUE_2); EXPECT_EQ(status, OK); entries[UPDATE_LOCAL].clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); entries[UPDATE_NATIVE].clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_NATIVE])); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_NATIVE])); + observerSync->Clear(); status = g_nbObserverDelegate->Delete(KEY_1); EXPECT_EQ(status, OK); entries[DELETE_LOCAL].clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_LOCAL])); entries[DELETE_NATIVE].clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_NATIVE])); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_NATIVE])); + observerSync->Clear(); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); } @@ -1422,8 +1433,8 @@ void CheckPressureForNativeRepeat(KvStoreObserverImpl &observerLocal, KvStoreObs HWTEST_F(DistributeddbNbObserverTest, Pressure009, TestSize.Level1) { DBStatus status; - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); /** * @tc.steps: step1. Register a sync observer of key KEY_EMPTY 5 times repeatedly. @@ -1431,7 +1442,7 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure009, TestSize.Level1) */ for (unsigned int opCnt = NB_OPERATION_CNT_START; opCnt < NB_OPERATION_CNT_END; ++opCnt) { status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); if (opCnt == NB_OPERATION_CNT_START) { EXPECT_EQ(status, OK); } else { @@ -1440,28 +1451,28 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure009, TestSize.Level1) } vector< vector > entries(6); // 6 element - CheckPressureForNativeRepeat(observerLocal, observerSync, entries); + CheckPressureForNativeRepeat(*observerLocal, *observerSync, entries); status = g_nbObserverDelegate->Put(KEY_1, VALUE_2); EXPECT_EQ(status, OK); entries[UPDATE_LOCAL].clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); entries[UPDATE_NATIVE].clear(); DistributedDB::Entry entry = { KEY_1, VALUE_2 }; entries[UPDATE_NATIVE].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, UPDATE_LIST, entries[UPDATE_NATIVE])); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, UPDATE_LIST, entries[UPDATE_NATIVE])); + observerSync->Clear(); status = g_nbObserverDelegate->Delete(KEY_1); EXPECT_EQ(status, OK); entries[DELETE_LOCAL].clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_LOCAL])); entries[DELETE_NATIVE].clear(); entries[DELETE_NATIVE].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, DELETE_LIST, entries[DELETE_NATIVE])); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, DELETE_LIST, entries[DELETE_NATIVE])); + observerSync->Clear(); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -1474,14 +1485,14 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure009, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, Pressure012, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); /** @@ -1490,21 +1501,21 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure012, TestSize.Level1) */ g_nbObserverDelegate->PutLocal(KEY_EMPTY, VALUE_1); vector insertLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); vector insertNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + observerLocal->Clear(); g_nbObserverDelegate->Put(KEY_EMPTY, VALUE_1); insertLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); insertNativeEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + observerSync->Clear(); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -1517,14 +1528,14 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure012, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, Pressure013, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); /** @@ -1533,21 +1544,21 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure013, TestSize.Level1) */ g_nbObserverDelegate->DeleteLocal(KEY_1); vector deleteLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerLocal->Clear(); g_nbObserverDelegate->Delete(KEY_1); deleteLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); deleteNativeEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + observerSync->Clear(); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -1560,15 +1571,15 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure013, TestSize.Level1) */ HWTEST_F(DistributeddbNbObserverTest, Pressure014, TestSize.Level1) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); g_nbObserverDelegate->PutLocal(KEY_1, VALUE_1); g_nbObserverDelegate->Put(KEY_1, VALUE_1); DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); /** @@ -1579,10 +1590,10 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure014, TestSize.Level1) vector updateLocalEntries; DistributedDB::Entry entry = { KEY_1, VALUE_1 }; updateLocalEntries.push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ONE_TIME, UPDATE_LIST, updateLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ONE_TIME, UPDATE_LIST, updateLocalEntries)); vector updateNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, UPDATE_LIST, updateNativeEntries)); - observerLocal.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, UPDATE_LIST, updateNativeEntries)); + observerLocal->Clear(); /** * @tc.steps: step2. put a record (KEY_1, VALUE_1) to sync db and check observerSync. @@ -1590,15 +1601,15 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure014, TestSize.Level1) */ g_nbObserverDelegate->Put(KEY_1, VALUE_1); updateLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, UPDATE_LIST, updateLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, UPDATE_LIST, updateLocalEntries)); updateNativeEntries.clear(); updateNativeEntries.push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, UPDATE_LIST, updateNativeEntries)); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, UPDATE_LIST, updateNativeEntries)); + observerSync->Clear(); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->DeleteLocal(KEY_1); EXPECT_EQ(status, OK); @@ -1662,11 +1673,12 @@ void CheckPressureAfterClose(KvStoreObserverImpl &observerLocal, KvStoreObserver */ HWTEST_F(DistributeddbNbObserverTest, Pressure015, TestSize.Level1) { - KvStoreObserverImpl observerLocal, observerSync; - DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); + DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); /** @@ -1690,12 +1702,12 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure015, TestSize.Level1) ASSERT_TRUE(g_nbObserverManager != nullptr && g_nbObserverDelegate != nullptr); vector< vector > entries(6); // 6 element - CheckPressureAfterClose(observerLocal, observerSync, entries); + CheckPressureAfterClose(*observerLocal, *observerSync, entries); vector insertLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, INSERT_LIST, insertLocalEntries)); vector insertNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, INSERT_LIST, insertNativeEntries)); } void CheckPressureAfterReopen(KvStoreObserverImpl &observerLocal, KvStoreObserverImpl &observerSync, @@ -1758,12 +1770,13 @@ void CheckPressureAfterReopen(KvStoreObserverImpl &observerLocal, KvStoreObserve */ HWTEST_F(DistributeddbNbObserverTest, Pressure016, TestSize.Level2) { - KvStoreObserverImpl observerSync, observerLocal; + std::shared_ptr observerSync = std::make_shared(); + std::shared_ptr observerLocal = std::make_shared(); DBStatus status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); /** * @tc.steps: step1. close db. @@ -1788,33 +1801,33 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure016, TestSize.Level2) } ASSERT_TRUE(g_nbObserverManager != nullptr && g_nbObserverDelegate != nullptr); vector< vector > entries(6); // 6 element - CheckPressureAfterClose(observerLocal, observerSync, entries); + CheckPressureAfterClose(*observerLocal, *observerSync, entries); /** * @tc.steps: step3. register observerLocal and observerSync on key = KEY_EMPTY again. * @tc.expected: step3. register success. */ status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); - CheckPressureAfterReopen(observerLocal, observerSync, entries); + CheckPressureAfterReopen(*observerLocal, *observerSync, entries); status = g_nbObserverDelegate->Delete(KEY_1); entries[DELETE_LOCAL].clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_LOCAL])); entries[DELETE_NATIVE].clear(); DistributedDB::Entry entry = { KEY_1, VALUE_2 }; entries[DELETE_NATIVE].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ONE_TIME, DELETE_LIST, entries[DELETE_NATIVE])); - observerSync.Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ONE_TIME, DELETE_LIST, entries[DELETE_NATIVE])); + observerSync->Clear(); - status = g_nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = g_nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = g_nbObserverDelegate->UnRegisterObserver(&observerSync); + status = g_nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); } @@ -1827,12 +1840,13 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure016, TestSize.Level2) */ HWTEST_F(DistributeddbNbObserverTest, Pressure017, TestSize.Level2) { - KvStoreObserverImpl observerSync, observerLocal; + std::shared_ptr observerSync = std::make_shared(); + std::shared_ptr observerLocal = std::make_shared(); DBStatus registerStatus = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(registerStatus, OK); registerStatus = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(registerStatus, OK); /** @@ -1849,9 +1863,9 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure017, TestSize.Level2) * @tc.expected: step2. neither the local observer nor the sync observer was triggered. */ vector deleteLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); if (g_option.isMemoryDb) { g_nbObserverDelegate = DistributedDBNbTestTools::GetNbDelegateSuccess(g_nbObserverManager, @@ -1874,13 +1888,13 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure017, TestSize.Level2) */ HWTEST_F(DistributeddbNbObserverTest, Pressure018, TestSize.Level2) { - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); DBStatus statusLocal = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(statusLocal, OK); DBStatus statusSync = g_nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(statusSync, OK); /** @@ -1890,9 +1904,9 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure018, TestSize.Level2) EXPECT_EQ(g_nbObserverManager->CloseKvStore(g_nbObserverDelegate), OK); g_nbObserverDelegate = nullptr; vector deleteLocalEntries; - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); vector deleteNativeEntries; - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); if (!g_option.isMemoryDb) { DBStatus status = g_nbObserverManager->DeleteKvStore(STORE_ID_1); @@ -1901,9 +1915,9 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure018, TestSize.Level2) delete g_nbObserverManager; g_nbObserverManager = nullptr; deleteLocalEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerLocal, CHANGED_ZERO_TIME, DELETE_LIST, deleteLocalEntries)); deleteNativeEntries.clear(); - EXPECT_TRUE(VerifyObserverResult(observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); + EXPECT_TRUE(VerifyObserverResult(*observerSync, CHANGED_ZERO_TIME, DELETE_LIST, deleteNativeEntries)); RemoveDir(DIRECTOR); g_nbObserverDelegate = DistributedDBNbTestTools::GetNbDelegateSuccess(g_nbObserverManager, @@ -1911,54 +1925,56 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure018, TestSize.Level2) ASSERT_TRUE(g_nbObserverManager != nullptr && g_nbObserverDelegate != nullptr); } -void CheckPressureAcrossDatabase(vector &nbDelegateVec, KvStoreObserverImpl *observerLocals, - KvStoreObserverImpl *observerSyncs, vector< vector > &entries, unsigned int &opCnt) +void CheckPressureAcrossDatabase(vector &nbDelegateVec, + std::vector> &observerLocals, + std::vector> &observerSyncs, + vector< vector > &entries, unsigned int &opCnt) { DBStatus status = nbDelegateVec[opCnt]->PutLocal(KEY_1, VALUE_1); EXPECT_EQ(status, OK); DistributedDB::Entry entry = { KEY_1, VALUE_1 }; entries[INSERT_LOCAL].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerLocals[opCnt], CHANGED_ONE_TIME, INSERT_LIST, entries[INSERT_LOCAL])); - EXPECT_TRUE(VerifyObserverResult(observerSyncs[opCnt], CHANGED_ZERO_TIME, INSERT_LIST, entries[INSERT_NATIVE])); - observerLocals[opCnt].Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerLocals[opCnt], CHANGED_ONE_TIME, INSERT_LIST, entries[INSERT_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerSyncs[opCnt], CHANGED_ZERO_TIME, INSERT_LIST, entries[INSERT_NATIVE])); + observerLocals[opCnt]->Clear(); status = nbDelegateVec[opCnt]->Put(KEY_1, VALUE_1); EXPECT_EQ(status, OK); entries[INSERT_LOCAL].clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocals[opCnt], CHANGED_ZERO_TIME, INSERT_LIST, entries[INSERT_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerLocals[opCnt], CHANGED_ZERO_TIME, INSERT_LIST, entries[INSERT_LOCAL])); entries[INSERT_NATIVE].clear(); entries[INSERT_NATIVE].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerSyncs[opCnt], CHANGED_ONE_TIME, INSERT_LIST, entries[INSERT_NATIVE])); + EXPECT_TRUE(VerifyObserverResult(*observerSyncs[opCnt], CHANGED_ONE_TIME, INSERT_LIST, entries[INSERT_NATIVE])); entries[INSERT_NATIVE].clear(); - observerSyncs[opCnt].Clear(); + observerSyncs[opCnt]->Clear(); status = nbDelegateVec[opCnt]->PutLocal(KEY_1, VALUE_2); EXPECT_EQ(status, OK); entry.value = VALUE_2; entries[UPDATE_LOCAL].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerLocals[opCnt], CHANGED_ONE_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); - EXPECT_TRUE(VerifyObserverResult(observerSyncs[opCnt], CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_NATIVE])); - observerLocals[opCnt].Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerLocals[opCnt], CHANGED_ONE_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerSyncs[opCnt], CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_NATIVE])); + observerLocals[opCnt]->Clear(); status = nbDelegateVec[opCnt]->Put(KEY_1, VALUE_2); EXPECT_EQ(status, OK); entries[UPDATE_LOCAL].clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocals[opCnt], CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerLocals[opCnt], CHANGED_ZERO_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); entries[UPDATE_LOCAL].clear(); entries[UPDATE_LOCAL].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerSyncs[opCnt], CHANGED_ONE_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerSyncs[opCnt], CHANGED_ONE_TIME, UPDATE_LIST, entries[UPDATE_LOCAL])); entries[UPDATE_LOCAL].clear(); - observerSyncs[opCnt].Clear(); + observerSyncs[opCnt]->Clear(); EXPECT_EQ((nbDelegateVec[opCnt]->DeleteLocal(KEY_1)), OK); entries[DELETE_LOCAL].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerLocals[opCnt], CHANGED_ONE_TIME, DELETE_LIST, entries[DELETE_LOCAL])); - EXPECT_TRUE(VerifyObserverResult(observerSyncs[opCnt], CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_NATIVE])); - observerLocals[opCnt].Clear(); + EXPECT_TRUE(VerifyObserverResult(*observerLocals[opCnt], CHANGED_ONE_TIME, DELETE_LIST, entries[DELETE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerSyncs[opCnt], CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_NATIVE])); + observerLocals[opCnt]->Clear(); EXPECT_EQ((nbDelegateVec[opCnt]->Delete(KEY_1)), OK); entries[DELETE_LOCAL].clear(); - EXPECT_TRUE(VerifyObserverResult(observerLocals[opCnt], CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_LOCAL])); + EXPECT_TRUE(VerifyObserverResult(*observerLocals[opCnt], CHANGED_ZERO_TIME, DELETE_LIST, entries[DELETE_LOCAL])); entries[DELETE_NATIVE].clear(); entries[DELETE_NATIVE].push_back(entry); - EXPECT_TRUE(VerifyObserverResult(observerSyncs[opCnt], CHANGED_ONE_TIME, DELETE_LIST, entries[DELETE_NATIVE])); + EXPECT_TRUE(VerifyObserverResult(*observerSyncs[opCnt], CHANGED_ONE_TIME, DELETE_LIST, entries[DELETE_NATIVE])); entries[DELETE_NATIVE].clear(); - observerSyncs[opCnt].Clear(); + observerSyncs[opCnt]->Clear(); } /* @@ -1982,14 +1998,16 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure019, TestSize.Level2) * @tc.steps: step1. register different observer on different stores. * @tc.expected: step1. each observer is registered successfully. */ - KvStoreObserverImpl observerLocals[STORE_NUM]; - KvStoreObserverImpl observerSyncs[STORE_NUM]; + std::vector> observerLocals; + std::vector> observerSyncs; for (unsigned int opCnt = 0; opCnt < static_cast(nbDelegateVec.size()); ++opCnt) { MST_LOG("opCnt = %d", opCnt); - status = nbDelegateVec[opCnt]->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, &observerLocals[opCnt]); + observerLocals[opCnt] = std::make_shared(); + observerSyncs[opCnt] = std::make_shared(); + status = nbDelegateVec[opCnt]->RegisterObserver(KEY_EMPTY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocals[opCnt]); EXPECT_EQ(status, OK); status = nbDelegateVec[opCnt]->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSyncs[opCnt]); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSyncs[opCnt]); EXPECT_EQ(status, OK); } @@ -2002,9 +2020,9 @@ HWTEST_F(DistributeddbNbObserverTest, Pressure019, TestSize.Level2) CheckPressureAcrossDatabase(nbDelegateVec, observerLocals, observerSyncs, entries, opCnt); } for (unsigned int opCnt = 0; opCnt < static_cast(nbDelegateVec.size()); ++opCnt) { - status = nbDelegateVec[opCnt]->UnRegisterObserver(&observerLocals[opCnt]); + status = nbDelegateVec[opCnt]->UnRegisterObserver(observerLocals[opCnt]); EXPECT_EQ(status, OK); - status = nbDelegateVec[opCnt]->UnRegisterObserver(&observerSyncs[opCnt]); + status = nbDelegateVec[opCnt]->UnRegisterObserver(observerSyncs[opCnt]); EXPECT_EQ(status, OK); } @@ -2145,13 +2163,13 @@ HWTEST_F(DistributeddbNbObserverTest, RekeyNbDb001, TestSize.Level2) * @tc.steps: step1. register observer. * @tc.expected: step1. register successfully. */ - KvStoreObserverImpl observerLocal; - KvStoreObserverImpl observerSync; + std::shared_ptr observerLocal = std::make_shared(); + std::shared_ptr observerSync = std::make_shared(); DBStatus status = nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_LOCAL_ONLY, &observerLocal); + OBSERVER_CHANGES_LOCAL_ONLY, observerLocal); EXPECT_EQ(status, OK); status = nbObserverDelegate->RegisterObserver(KEY_EMPTY, - OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, &observerSync); + OBSERVER_CHANGES_NATIVE | OBSERVER_CHANGES_FOREIGN, observerSync); EXPECT_EQ(status, OK); /** @@ -2164,9 +2182,9 @@ HWTEST_F(DistributeddbNbObserverTest, RekeyNbDb001, TestSize.Level2) * @tc.steps: step3. unregister observer. * @tc.expected: step3. unregister successfully. */ - status = nbObserverDelegate->UnRegisterObserver(&observerLocal); + status = nbObserverDelegate->UnRegisterObserver(observerLocal); EXPECT_EQ(status, OK); - status = nbObserverDelegate->UnRegisterObserver(&observerSync); + status = nbObserverDelegate->UnRegisterObserver(observerSync); EXPECT_EQ(status, OK); /** diff --git a/frameworks/libs/distributeddb/test/unittest/common/common/distributeddb_auto_launch_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/common/distributeddb_auto_launch_test.cpp index cb516587c7aee995563592d2e1e567b86aa091e5..a746df67ae9630a2fa7910703c2a46b820956580 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/common/distributeddb_auto_launch_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/common/distributeddb_auto_launch_test.cpp @@ -278,7 +278,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch002, TestSize.Level3) cv.notify_one(); } }; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps: step1. right param A B enable @@ -312,7 +312,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch002, TestSize.Level3) finished = false; } EXPECT_TRUE(observer->GetCallCount() == 2); // A and B - delete observer; + observer = nullptr; /** * @tc.steps: step4. param A B disable * @tc.expected: step4. notifier WRITE_CLOSED @@ -353,7 +353,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch003, TestSize.Level3) finished = true; cv.notify_one(); }; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** @@ -389,7 +389,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch003, TestSize.Level3) finished = false; } EXPECT_TRUE(observer->GetCallCount() == 1); // only A - delete observer; + observer = nullptr; /** * @tc.steps: step4. param A B disable * @tc.expected: step4. notifier WRITE_CLOSED @@ -497,7 +497,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch005, TestSize.Level3) finished = true; cv.notify_one(); }; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps: step1. RunOnConnectCallback @@ -541,7 +541,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch005, TestSize.Level3) std::unique_lock lock(cvMutex); cv.wait(lock, [&finished] {return finished;}); EXPECT_TRUE(statusMap[g_identifierA] == WRITE_CLOSED); - delete observer; + observer = nullptr; g_communicatorAggregator->RunOnConnectCallback(REMOTE_DEVICE_ID, false); } @@ -558,7 +558,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch006, TestSize.Level3) const std::string &storeId, AutoLaunchStatus status) { LOGD("int AutoLaunch006 notifier status:%d", status); }; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); std::mutex cvLock; std::condition_variable cv; @@ -597,7 +597,6 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch006, TestSize.Level3) std::unique_lock lock(cvLock); cv.wait(lock, [&threadIsWorking] { return !threadIsWorking; }); - delete observer; observer = nullptr; g_communicatorAggregator->RunOnConnectCallback(REMOTE_DEVICE_ID, false); } @@ -634,8 +633,8 @@ void TestAutoLaunchNotifier(const std::string &userId, const std::string &appId, g_cv.notify_one(); }; -bool AutoLaunchCallBack(const std::string &identifier, AutoLaunchParam ¶m, KvStoreObserverUnitTest *observer, - bool ret) +bool AutoLaunchCallBack(const std::string &identifier, AutoLaunchParam ¶m, + const std::weak_ptr &observer, bool ret) { LOGD("int AutoLaunchCallBack"); EXPECT_TRUE(identifier == g_identifierA); @@ -667,7 +666,7 @@ bool AutoLaunchCallBackBadParam(const std::string &identifier, AutoLaunchParam & */ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch007, TestSize.Level3) { - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps: step1. SetAutoLaunchRequestCallback @@ -719,7 +718,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch007, TestSize.Level3) g_finished = false; } RuntimeContext::GetInstance()->SetAutoLaunchRequestCallback(nullptr, DBTypeInner::DB_KV); - delete observer; + observer = nullptr; } /** @@ -731,7 +730,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch007, TestSize.Level3) */ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch008, TestSize.Level3) { - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps: step1. SetAutoLaunchRequestCallback @@ -758,7 +757,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch008, TestSize.Level3) EXPECT_TRUE(observer->GetCallCount() == 0); EXPECT_TRUE(g_finished == false); RuntimeContext::GetInstance()->SetAutoLaunchRequestCallback(nullptr, DBTypeInner::DB_KV); - delete observer; + observer = nullptr; } /** @@ -769,7 +768,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch008, TestSize.Level3) */ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch009, TestSize.Level3) { - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps: step1. SetAutoLaunchRequestCallback @@ -799,7 +798,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch009, TestSize.Level3) g_finished = false; } RuntimeContext::GetInstance()->SetAutoLaunchRequestCallback(nullptr, DBTypeInner::DB_KV); - delete observer; + observer = nullptr; } /** @@ -811,7 +810,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch009, TestSize.Level3) */ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch010, TestSize.Level3) { - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps: step1. SetAutoLaunchRequestCallback, then set nullptr @@ -839,7 +838,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch010, TestSize.Level3) EXPECT_TRUE(observer->GetCallCount() == 0); EXPECT_TRUE(g_finished == false); RuntimeContext::GetInstance()->SetAutoLaunchRequestCallback(nullptr, DBTypeInner::DB_KV); - delete observer; + observer = nullptr; } /** @@ -955,7 +954,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch013, TestSize.Level3) EXPECT_TRUE(RuntimeContext::GetInstance()->EnableKvStoreAutoLaunch(g_propB, notifier, option) == E_OK); EXPECT_TRUE(RuntimeContext::GetInstance()->EnableKvStoreAutoLaunch(g_propC, notifier, option) == E_OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); RuntimeContext::GetInstance()->SetAutoLaunchRequestCallback( std::bind(AutoLaunchCallBack, std::placeholders::_1, std::placeholders::_2, observer, true), @@ -1007,7 +1006,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch013, TestSize.Level3) g_finished = false; } RuntimeContext::GetInstance()->SetAutoLaunchRequestCallback(nullptr, DBTypeInner::DB_KV); - delete observer; + observer = nullptr; /** * @tc.steps: step4. param A B disable * @tc.expected: step4. notifier WRITE_CLOSED @@ -1031,7 +1030,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch014, TestSize.Level3) * @tc.steps: step1. SetAutoLaunchRequestCallback * @tc.expected: step1. success. */ - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); RuntimeConfig::SetAutoLaunchRequestCallback( std::bind(AutoLaunchCallBack, std::placeholders::_1, std::placeholders::_2, observer, true), DBType::DB_KV); @@ -1068,7 +1067,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch014, TestSize.Level3) RuntimeConfig::ReleaseAutoLaunch(USER_ID, APP_ID, STORE_ID_0, DBType::DB_KV); EXPECT_EQ(g_statusMap[DBCommon::TransferHashString(USER_ID + "-" + APP_ID + "-" + STORE_ID_0)], AutoLaunchStatus::WRITE_CLOSED); - delete observer; + observer = nullptr; } /** @@ -1083,7 +1082,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch015, TestSize.Level3) * @tc.steps: step1. SetAutoLaunchRequestCallback * @tc.expected: step1. success. */ - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); RuntimeConfig::SetAutoLaunchRequestCallback( std::bind(AutoLaunchCallBack, std::placeholders::_1, std::placeholders::_2, observer, true), DBType::DB_KV); @@ -1107,7 +1106,7 @@ HWTEST_F(DistributedDBAutoLaunchUnitTest, AutoLaunch015, TestSize.Level3) RuntimeConfig::ReleaseAutoLaunch(USER_ID, APP_ID, STORE_ID_0, DBType::DB_KV); th.join(); - delete observer; + observer = nullptr; } /** diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_auto_launch_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_auto_launch_test.cpp index c6ac19b0b4c72d04e213900dba1c546cd08c1ceb..846a733a339381ca2801a363a3b9fe92b09b8c6b 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_auto_launch_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_auto_launch_test.cpp @@ -218,7 +218,7 @@ HWTEST_F(DistributedDBInterfacesAutoLaunchTest, EnableKvStoreAutoLaunch001, Test passwdVect = {'p', 's', 'd', '2'}; CipherPassword passwdOther; passwdOther.SetValue(passwdVect.data(), passwdVect.size()); - AutoLaunchOption launchOption = {true, true, CipherType::DEFAULT, passwdOther, "", false, g_testDir, nullptr}; + AutoLaunchOption launchOption = {true, true, CipherType::DEFAULT, passwdOther, "", false, g_testDir}; DBStatus status = KvStoreDelegateManager::EnableKvStoreAutoLaunch(USER_ID1, APP_ID1, storeId, launchOption, nullptr); EXPECT_NE(status, OK); @@ -261,7 +261,7 @@ HWTEST_F(DistributedDBInterfacesAutoLaunchTest, EnableKvStoreAutoLaunch002, Test */ CipherPassword passwd; std::string storeId = "test2"; - AutoLaunchOption launchOption = {false, false, CipherType::DEFAULT, passwd, "", false, g_testDir, nullptr}; + AutoLaunchOption launchOption = {false, false, CipherType::DEFAULT, passwd, "", false, g_testDir}; DBStatus status = KvStoreDelegateManager::EnableKvStoreAutoLaunch(USER_ID1, APP_ID1, storeId, launchOption, nullptr); EXPECT_NE(status, OK); @@ -364,7 +364,7 @@ void TriggerAutoLaunch(const std::string &storeId, bool isWriteCovered) */ PrePutDataIntoDatabase(storeId); CipherPassword passwd; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_NE(observer, nullptr); AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, observer}; @@ -395,7 +395,6 @@ void TriggerAutoLaunch(const std::string &storeId, bool isWriteCovered) EXPECT_EQ(KvStoreDelegateManager::DisableKvStoreAutoLaunch(USER_ID1, APP_ID1, storeId), OK); std::this_thread::sleep_for(std::chrono::milliseconds(WAIT_FOR_RESPONSE_TIME)); - delete observer; observer = nullptr; EXPECT_EQ(g_mgr.DeleteKvStore(storeId), OK); } @@ -456,7 +455,7 @@ HWTEST_F(DistributedDBInterfacesAutoLaunchTest, EnableKvStoreAutoLaunch005, Test */ std::string storeId = "test5"; CipherPassword passwd; - AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, nullptr}; + AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir}; DBStatus status = KvStoreDelegateManager::EnableKvStoreAutoLaunch(USER_ID1, APP_ID1, storeId, launchOption, nullptr); EXPECT_EQ(status, OK); @@ -486,7 +485,7 @@ HWTEST_F(DistributedDBInterfacesAutoLaunchTest, EnableKvStoreAutoLaunch006, Test * @tc.expected: step1. Returns OK. */ CipherPassword passwd; - AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, nullptr}; + AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir}; for (int i = 0; i < MAX_AUTO_LAUNCH_NUM; i++) { std::string storeId = "store_" + std::to_string(i + 1); DBStatus status = KvStoreDelegateManager::EnableKvStoreAutoLaunch(USER_ID1, APP_ID1, storeId, @@ -559,7 +558,7 @@ HWTEST_F(DistributedDBInterfacesAutoLaunchTest, DisableKvStoreAutoLaunch001, Tes * @tc.expected: step1. Returns OK. */ CipherPassword passwd; - AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, nullptr}; + AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir}; std::string storeId = "test7"; DBStatus status = KvStoreDelegateManager::EnableKvStoreAutoLaunch(USER_ID1, APP_ID1, storeId, launchOption, g_autoLaunchNotifyFunc); @@ -600,7 +599,7 @@ HWTEST_F(DistributedDBInterfacesAutoLaunchTest, AutoLaunchLifeCycle001, TestSize * @tc.expected: step1. Returns OK. */ CipherPassword passwd; - AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, nullptr}; + AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir}; std::string storeId = "test8"; DBStatus status = KvStoreDelegateManager::EnableKvStoreAutoLaunch(USER_ID1, APP_ID1, storeId, launchOption, g_autoLaunchNotifyFunc); @@ -644,7 +643,7 @@ namespace { void DelayAutoLaunchCycle(const std::string &storeId, bool isWrite) { CipherPassword passwd; - AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, nullptr}; + AutoLaunchOption launchOption = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir}; /** * @tc.steps: step1. Enable the auto launch for 'test8'. * @tc.expected: step1. Returns OK. diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_database_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_database_test.cpp index 1c3b9b5cfa05e1404b157cff05487faa5ade61af..96de3af577f446732245dc23a9f0e96ac235890d 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_database_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_database_test.cpp @@ -634,7 +634,7 @@ HWTEST_F(DistributedDBInterfacesDatabaseTest, GetKvStore004, TestSize.Level1) * @tc.expected: step1. Returns a non-null kvstore and error code is OK. */ KvStoreNbDelegate::Option option = {true, false, false}; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_NE(observer, nullptr); Key key; Value value1; @@ -675,7 +675,6 @@ HWTEST_F(DistributedDBInterfacesDatabaseTest, GetKvStore004, TestSize.Level1) EXPECT_EQ(g_mgr.CloseKvStore(g_kvNbDelegatePtr), OK); g_kvNbDelegatePtr = nullptr; - delete observer; observer = nullptr; EXPECT_TRUE(g_mgr.DeleteKvStore("distributed_getkvstore_004") == OK); } diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_encrypt_database_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_encrypt_database_test.cpp index 4d868fae466eeb6339944316a28faf2314891831..d8854aabf5bc459760304e3fd9bfea3ba5831bd0 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_encrypt_database_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_encrypt_database_test.cpp @@ -444,7 +444,7 @@ HWTEST_F(DistributedDBInterfacesEncryptDatabaseTest, SingleVerRekeyCheck002, Tes g_mgr.GetKvStore(STORE_ID2, option, delegateCallback); ASSERT_TRUE(kvStore != nullptr); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the empty key. @@ -465,7 +465,6 @@ HWTEST_F(DistributedDBInterfacesEncryptDatabaseTest, SingleVerRekeyCheck002, Tes * @tc.steps:step4. Unregister the observer. */ EXPECT_EQ(kvStore->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** * @tc.steps:step5. Execute the rekey operation. diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_encrypt_delegate_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_encrypt_delegate_test.cpp index 96d4b864c2bb440e9c5cea5567918e5d98475de8..1b1e5d55d57b76e67cdde2d2d709b4afe3cb47c8 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_encrypt_delegate_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_encrypt_delegate_test.cpp @@ -499,7 +499,7 @@ HWTEST_F(DistributedDBInterfacesEncryptDelegateTest, EncryptedDbSwitch003, TestS * @tc.steps: step1. register observer * @tc.expected: step1. Get result OK */ - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_NE(observer, nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(KEY_1, OBSERVER_CHANGES_NATIVE, observer), OK); /** @@ -508,7 +508,6 @@ HWTEST_F(DistributedDBInterfacesEncryptDelegateTest, EncryptedDbSwitch003, TestS */ EXPECT_EQ(g_kvNbDelegatePtr->Rekey(g_passwd2), BUSY); // finilize logic - delete observer; observer = nullptr; EXPECT_EQ(g_mgr.CloseKvStore(g_kvNbDelegatePtr), OK); EXPECT_EQ(g_mgr.DeleteKvStore(STORE_ID1), OK); diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_extend_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_extend_test.cpp index 5e30733d9b349ddac894a38847dcadeab7f38ffe..c1b0db1877960c6a5dc0561735ce7a8b6fc46a32 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_extend_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_extend_test.cpp @@ -939,7 +939,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateExtendTest, OptionModeValidCheck001, T * @tc.expected: step1. Get results OK and non-null delegate. */ KvStoreNbDelegate::Option option = {true, false, false}; - KvStoreObserverUnitTest *observer = new KvStoreObserverUnitTest(); + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); option.observer = observer; std::vector invalidModeVec = {0, 5, 6, 7, 9, 16}; @@ -962,7 +962,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateExtendTest, OptionModeValidCheck001, T g_kvNbDelegatePtr = nullptr; } - delete observer; + observer = nullptr; } /** diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_local_batch_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_local_batch_test.cpp index ff1baa1ed80cbe99393a572185147ffbfe900709..1c22712414b52973be24bfd91f67dc4488b7ec1b 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_local_batch_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_local_batch_test.cpp @@ -1002,7 +1002,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerPutLocalBatch ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -1039,7 +1039,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerPutLocalBatch * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** @@ -1069,7 +1068,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerPutLocalBatch ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -1115,7 +1114,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerPutLocalBatch * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** @@ -1145,7 +1143,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerPutLocalBatch ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -1183,7 +1181,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerPutLocalBatch * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** @@ -1213,7 +1210,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerPutLocalBatch ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -1259,7 +1256,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerPutLocalBatch * @tc.expected: step4. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** @@ -1289,7 +1285,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerDeleteLocalBa ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -1321,7 +1317,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateLocalBatchTest, SingleVerDeleteLocalBa * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_test.cpp index 6fd9ffbc98d6da01d3c7aeed4c4db8fd2837ed85..cbf79db64ee37ef029183cc2c0c00ea46f78652e 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_delegate_test.cpp @@ -278,7 +278,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, CombineTest001, TestSize.Level1) Value value; value = {'G', 'D', 'O'}; Value valueRead; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -312,7 +312,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, CombineTest001, TestSize.Level1) * @tc.expected: step7. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; Key key1; key1 = {'D', 'B', 'N'}; @@ -1807,7 +1806,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerPutBatchObserver001, Te ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -1846,7 +1845,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerPutBatchObserver001, Te * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** * @tc.steps:step6. Close the kv store. @@ -1875,7 +1873,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerPutBatchObserver002, Te ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -1921,7 +1919,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerPutBatchObserver002, Te * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** * @tc.steps:step6. Close the kv store. @@ -1950,7 +1947,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerPutBatchObserver003, Te ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -1988,7 +1985,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerPutBatchObserver003, Te * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** * @tc.steps:step6. Close the kv store. @@ -2017,7 +2013,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerPutBatchObserver004, Te ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -2063,7 +2059,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerPutBatchObserver004, Te * @tc.expected: step4. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** * @tc.steps:step5. Close the kv store. @@ -2092,7 +2087,7 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerDeleteBatchObserver001, ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -2124,7 +2119,6 @@ HWTEST_F(DistributedDBInterfacesNBDelegateTest, SingleVerDeleteBatchObserver001, * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; /** * @tc.steps:step6. Close the kv store. diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_publish_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_publish_test.cpp index f0e9bcfd514c9217ce7ce727d65bdd5c3892cd62..e7d3ee273b91f0c73560353d3b3e96c46fbf5d40 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_publish_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_publish_test.cpp @@ -221,11 +221,11 @@ HWTEST_F(DistributedDBInterfacesNBPublishTest, SingleVerPublishKey002, TestSize. EXPECT_EQ(g_kvNbDelegatePtr->PutLocal(KEY_2, VALUE_2), OK); EXPECT_EQ(g_kvNbDelegatePtr->Put(KEY_2, VALUE_3), OK); - KvStoreObserverUnitTest *observerLocal = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observerLocal = std::make_shared(); ASSERT_TRUE(observerLocal != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal), OK); - KvStoreObserverUnitTest *observerSync = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observerSync = std::make_shared(); ASSERT_TRUE(observerSync != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_NATIVE, observerSync), OK); /** @@ -270,9 +270,7 @@ HWTEST_F(DistributedDBInterfacesNBPublishTest, SingleVerPublishKey002, TestSize. // finilize EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observerLocal), OK); EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observerSync), OK); - delete observerLocal; observerLocal = nullptr; - delete observerSync; observerSync = nullptr; EXPECT_EQ(g_mgr.CloseKvStore(g_kvNbDelegatePtr), OK); @@ -298,11 +296,11 @@ HWTEST_F(DistributedDBInterfacesNBPublishTest, SingleVerPublishKey003, TestSize. EXPECT_EQ(g_kvNbDelegatePtr->PutLocal(KEY_2, VALUE_2), OK); EXPECT_EQ(g_kvNbDelegatePtr->Put(KEY_2, VALUE_3), OK); - KvStoreObserverUnitTest *observerLocal = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observerLocal = std::make_shared(); ASSERT_TRUE(observerLocal != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal), OK); - KvStoreObserverUnitTest *observerSync = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observerSync = std::make_shared(); ASSERT_TRUE(observerSync != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_NATIVE, observerSync), OK); /** @@ -346,9 +344,7 @@ HWTEST_F(DistributedDBInterfacesNBPublishTest, SingleVerPublishKey003, TestSize. // finilize EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observerLocal), OK); EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observerSync), OK); - delete observerLocal; observerLocal = nullptr; - delete observerSync; observerSync = nullptr; EXPECT_EQ(g_mgr.CloseKvStore(g_kvNbDelegatePtr), OK); @@ -375,11 +371,11 @@ HWTEST_F(DistributedDBInterfacesNBPublishTest, SingleVerPublishKey004, TestSize. EXPECT_EQ(g_kvNbDelegatePtr->Put(KEY_2, VALUE_3), OK); EXPECT_EQ(g_kvNbDelegatePtr->Put(KEY_1, VALUE_4), OK); - KvStoreObserverUnitTest *observerLocal = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observerLocal = std::make_shared(); ASSERT_TRUE(observerLocal != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal), OK); - KvStoreObserverUnitTest *observerSync = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observerSync = std::make_shared(); ASSERT_TRUE(observerSync != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_NATIVE, observerSync), OK); /** @@ -424,9 +420,7 @@ HWTEST_F(DistributedDBInterfacesNBPublishTest, SingleVerPublishKey004, TestSize. // finilize EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observerLocal), OK); EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observerSync), OK); - delete observerLocal; observerLocal = nullptr; - delete observerSync; observerSync = nullptr; EXPECT_EQ(g_mgr.CloseKvStore(g_kvNbDelegatePtr), OK); @@ -453,11 +447,11 @@ HWTEST_F(DistributedDBInterfacesNBPublishTest, SingleVerPublishKey005, TestSize. EXPECT_EQ(g_kvNbDelegatePtr->Put(KEY_2, VALUE_3), OK); EXPECT_EQ(g_kvNbDelegatePtr->Put(KEY_1, VALUE_4), OK); - KvStoreObserverUnitTest *observerLocal = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observerLocal = std::make_shared(); ASSERT_TRUE(observerLocal != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_LOCAL_ONLY, observerLocal), OK); - KvStoreObserverUnitTest *observerSync = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observerSync = std::make_shared(); ASSERT_TRUE(observerSync != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_NATIVE, observerSync), OK); /** @@ -501,9 +495,7 @@ HWTEST_F(DistributedDBInterfacesNBPublishTest, SingleVerPublishKey005, TestSize. // finilize EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observerLocal), OK); EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observerSync), OK); - delete observerLocal; observerLocal = nullptr; - delete observerSync; observerSync = nullptr; EXPECT_EQ(g_mgr.CloseKvStore(g_kvNbDelegatePtr), OK); diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_transaction_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_transaction_test.cpp index 44427f4a88a989d7a629dc53e6c7275b3ee78378..e9c6afb214453ffa17e05bc4cdce47b9a7d3194a 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_transaction_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_transaction_test.cpp @@ -316,11 +316,10 @@ HWTEST_F(DistributedDBInterfacesNBTransactionTest, start004, TestSize.Level4) CipherPassword password; EXPECT_EQ(g_kvNbDelegatePtr->Rekey(password), BUSY); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(KEY_3, OBSERVER_CHANGES_NATIVE, observer), BUSY); EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), NOT_FOUND); - delete observer; observer = nullptr; std::string filePath = g_testDir + "/test.txt"; @@ -507,7 +506,7 @@ HWTEST_F(DistributedDBInterfacesNBTransactionTest, commit004, TestSize.Level1) g_mgr.GetKvStore("distributed_nb_transaction_commit004", option, g_kvNbDelegateCallback); ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_NATIVE, observer), OK); /** @@ -572,7 +571,6 @@ HWTEST_F(DistributedDBInterfacesNBTransactionTest, commit004, TestSize.Level1) // finilize EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; EXPECT_EQ(g_mgr.CloseKvStore(g_kvNbDelegatePtr), OK); @@ -666,7 +664,7 @@ HWTEST_F(DistributedDBInterfacesNBTransactionTest, commit006, TestSize.Level1) EXPECT_TRUE(g_kvNbDelegatePtr->SetConflictNotifier(CONFLICT_ALL, NotifierCallback) == OK); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); ASSERT_TRUE(observer != nullptr); EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(NULL_KEY, OBSERVER_CHANGES_NATIVE, observer), OK); /** @@ -713,7 +711,6 @@ HWTEST_F(DistributedDBInterfacesNBTransactionTest, commit006, TestSize.Level1) // finilize g_conflictData.clear(); EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; EXPECT_EQ(g_mgr.CloseKvStore(g_kvNbDelegatePtr), OK); diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_unpublish_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_unpublish_test.cpp index 012539dd08659c66bfc3295ba2d86542631d564b..c2e5970d00dce3806458135913e00a9559af7a23 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_unpublish_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_nb_unpublish_test.cpp @@ -29,8 +29,8 @@ namespace { KvStoreDelegateManager g_mgr("app0", "user0"); string g_testDir; KvStoreConfig g_config; - KvStoreObserverUnitTest *g_syncObserver = nullptr; - KvStoreObserverUnitTest *g_localObserver = nullptr; + std::shared_ptr g_syncObserver; + std::shared_ptr g_localObserver; Entry g_entry1; Entry g_entry2; @@ -64,9 +64,9 @@ namespace { static void RegisterObservers() { - g_localObserver = new (std::nothrow) KvStoreObserverUnitTest; + g_localObserver = std::make_shared(); ASSERT_TRUE(g_localObserver != nullptr); - g_syncObserver = new (std::nothrow) KvStoreObserverUnitTest; + g_syncObserver = std::make_shared(); ASSERT_TRUE(g_syncObserver != nullptr); Key key; EXPECT_EQ(g_kvNbDelegatePtr->RegisterObserver(key, 3, g_syncObserver), OK); // sync data observer. @@ -115,7 +115,6 @@ void DistributedDBInterfacesNBUnpublishTest::TearDown(void) if (g_kvNbDelegatePtr != nullptr) { g_kvNbDelegatePtr->UnRegisterObserver(g_localObserver); } - delete g_localObserver; g_localObserver = nullptr; } @@ -123,7 +122,6 @@ void DistributedDBInterfacesNBUnpublishTest::TearDown(void) if (g_kvNbDelegatePtr != nullptr) { g_kvNbDelegatePtr->UnRegisterObserver(g_syncObserver); } - delete g_syncObserver; g_syncObserver = nullptr; } if (g_kvNbDelegatePtr != nullptr) { diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_single_version_result_set_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_single_version_result_set_test.cpp index b3ff526e4886f84cb6b7f27f972728b140a6ad28..71d98fc7963f6d05020df8a6b3ea3c7166e5297b 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_single_version_result_set_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_single_version_result_set_test.cpp @@ -561,9 +561,10 @@ HWTEST_F(DistributedDBInterfacesSingleVersionResultSetTest, SingleVerNaturalStor EXPECT_EQ(storeObj.SetCloudSyncConfig(config), -E_INTERNAL_ERROR); std::map versionMap; EXPECT_EQ(storeObj.GetCloudVersion("", versionMap), -E_INTERNAL_ERROR); - EXPECT_EQ(storeObj.UnRegisterObserverAction(nullptr), -E_INTERNAL_ERROR); + std::weak_ptr observer; + EXPECT_EQ(storeObj.UnRegisterObserverAction(observer), -E_INTERNAL_ERROR); ObserverAction action; - EXPECT_EQ(storeObj.RegisterObserverAction(nullptr, action), -E_INTERNAL_ERROR); + EXPECT_EQ(storeObj.RegisterObserverAction(observer, action), -E_INTERNAL_ERROR); Key keyPrefix; EXPECT_EQ(storeObj.DeleteMetaDataByPrefixKey(keyPrefix), -E_INVALID_ARGS); keyPrefix.push_back(0); diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_transaction_optimization_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_transaction_optimization_test.cpp index 8a07f8898794e682a4a9d0d2a44d9fa3fbf67034..66373fbdcedf6d4770e6333156ef7985fe5548da 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_transaction_optimization_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_interfaces_transaction_optimization_test.cpp @@ -385,9 +385,9 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, SyncAndLocalObserve ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *syncObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr syncObserver = std::make_shared(); ASSERT_TRUE(syncObserver != nullptr); - KvStoreObserverUnitTest *localObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr localObserver = std::make_shared(); ASSERT_TRUE(localObserver != nullptr); /** @@ -439,10 +439,8 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, SyncAndLocalObserve * @tc.expected: step7. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(syncObserver), OK); - delete syncObserver; syncObserver = nullptr; EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(localObserver), OK); - delete localObserver; localObserver = nullptr; /** @@ -489,9 +487,9 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, OnlyDeleteInTransac EXPECT_TRUE(localEntries.size() == DIVIDE_BATCH_PRESET_SIZE); EXPECT_EQ(g_kvNbDelegatePtr->PutLocalBatch(localEntries), OK); - KvStoreObserverUnitTest *syncObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr syncObserver = std::make_shared(); ASSERT_TRUE(syncObserver != nullptr); - KvStoreObserverUnitTest *localObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr localObserver = std::make_shared(); ASSERT_TRUE(localObserver != nullptr); /** @@ -534,10 +532,8 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, OnlyDeleteInTransac * @tc.expected: step8. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(syncObserver), OK); - delete syncObserver; syncObserver = nullptr; EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(localObserver), OK); - delete localObserver; localObserver = nullptr; /** @@ -568,9 +564,9 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, SyncAndLocalObserve ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *syncObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr syncObserver = std::make_shared(); ASSERT_TRUE(syncObserver != nullptr); - KvStoreObserverUnitTest *localObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr localObserver = std::make_shared(); ASSERT_TRUE(localObserver != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -619,10 +615,8 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, SyncAndLocalObserve * @tc.expected: step7. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(syncObserver), OK); - delete syncObserver; syncObserver = nullptr; EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(localObserver), OK); - delete localObserver; localObserver = nullptr; /** @@ -653,9 +647,9 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, PutRollback001, Tes ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *syncObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr syncObserver = std::make_shared(); ASSERT_TRUE(syncObserver != nullptr); - KvStoreObserverUnitTest *localObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr localObserver = std::make_shared(); ASSERT_TRUE(localObserver != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -702,10 +696,8 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, PutRollback001, Tes * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(syncObserver), OK); - delete syncObserver; syncObserver = nullptr; EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(localObserver), OK); - delete localObserver; localObserver = nullptr; /** @@ -736,9 +728,9 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, PutBatchRollback001 ASSERT_TRUE(g_kvNbDelegatePtr != nullptr); EXPECT_TRUE(g_kvDelegateStatus == OK); - KvStoreObserverUnitTest *syncObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr syncObserver = std::make_shared(); ASSERT_TRUE(syncObserver != nullptr); - KvStoreObserverUnitTest *localObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr localObserver = std::make_shared(); ASSERT_TRUE(localObserver != nullptr); /** * @tc.steps:step2. Register the non-null observer for the special key. @@ -794,10 +786,8 @@ HWTEST_F(DistributedDBInterfacesTransactionOptimizationTest, PutBatchRollback001 * @tc.expected: step5. Returns OK. */ EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(syncObserver), OK); - delete syncObserver; syncObserver = nullptr; EXPECT_EQ(g_kvNbDelegatePtr->UnRegisterObserver(localObserver), OK); - delete localObserver; localObserver = nullptr; /** diff --git a/frameworks/libs/distributeddb/test/unittest/common/syncer/cloud/distributeddb_cloud_kvstore_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/syncer/cloud/distributeddb_cloud_kvstore_test.cpp index 2cd4b6e46b69a6ba8e134e0940289e0a752c04e3..c9074c5b81881dedd5a9e2e10b279d228cadea29 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/syncer/cloud/distributeddb_cloud_kvstore_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/syncer/cloud/distributeddb_cloud_kvstore_test.cpp @@ -466,9 +466,9 @@ HWTEST_F(DistributedDBCloudKvStoreTest, SyncOptionCheck005, TestSize.Level0) * @tc.steps:step1. Register MAX_OBSERVER_COUNT observers. * @tc.expected: step1 OK. */ - std::vector observerList; + std::vector> observerList; for (int i = 0; i < DBConstant::MAX_OBSERVER_COUNT; i++) { - auto *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); observerList.push_back(observer); EXPECT_EQ(kvDelegatePtrS1_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD, observer), OK); } @@ -476,18 +476,16 @@ HWTEST_F(DistributedDBCloudKvStoreTest, SyncOptionCheck005, TestSize.Level0) * @tc.steps:step2. Register one more observer. * @tc.expected: step2 Registration failed, return OVER_MAX_LIMITS. */ - auto *overMaxObserver = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr overMaxObserver = std::make_shared(); EXPECT_EQ(kvDelegatePtrS1_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD, overMaxObserver), OVER_MAX_LIMITS); /** * @tc.steps:step3. UnRegister all observers. * @tc.expected: step3 OK. */ EXPECT_EQ(kvDelegatePtrS1_->UnRegisterObserver(overMaxObserver), NOT_FOUND); - delete overMaxObserver; overMaxObserver = nullptr; for (auto &observer : observerList) { EXPECT_EQ(kvDelegatePtrS1_->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; } } @@ -1854,7 +1852,7 @@ HWTEST_F(DistributedDBCloudKvStoreTest, ObserverDataChangeTest001, TestSize.Leve * @tc.steps: step2. delegate2 call RegisterObserver with OBSERVER_CHANGES_CLOUD mode * @tc.expected: step2. sync with cloud and check data change success */ - auto *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); EXPECT_EQ(kvDelegatePtrS2_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD, observer), OK); BlockSync(kvDelegatePtrS2_, OK, g_CloudSyncoption); EXPECT_EQ(kvDelegatePtrS2_->Get(k1, actualValue), OK); @@ -1869,7 +1867,6 @@ HWTEST_F(DistributedDBCloudKvStoreTest, ObserverDataChangeTest001, TestSize.Leve observer->ResetToZero(); EXPECT_EQ(kvDelegatePtrS2_->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; } @@ -1903,7 +1900,7 @@ HWTEST_F(DistributedDBCloudKvStoreTest, ObserverDataChangeTest002, TestSize.Leve * @tc.steps: step2. delegate2 call RegisterObserver with OBSERVER_CHANGES_CLOUD | OBSERVER_CHANGES_BRIEF mode * @tc.expected: step2. sync with cloud and check data change success */ - auto *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); EXPECT_EQ(kvDelegatePtrS2_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD | OBSERVER_CHANGES_BRIEF, observer), OK); BlockSync(kvDelegatePtrS2_, OK, g_CloudSyncoption); EXPECT_EQ(kvDelegatePtrS2_->Get(k1, actualValue), OK); @@ -1918,7 +1915,6 @@ HWTEST_F(DistributedDBCloudKvStoreTest, ObserverDataChangeTest002, TestSize.Leve observer->ResetToZero(); EXPECT_EQ(kvDelegatePtrS2_->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; } @@ -1935,14 +1931,13 @@ HWTEST_F(DistributedDBCloudKvStoreTest, ObserverDataChangeTest003, TestSize.Leve * @tc.steps: step1. call RegisterObserver with err mode (out of enum range of 0x100 to 0xF00) * @tc.expected: step1. return INVALID_ARGS */ - auto *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); unsigned int errMode = 0x1000; EXPECT_EQ(kvDelegatePtrS1_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD | errMode, observer), INVALID_ARGS); errMode = 0x110; EXPECT_EQ(kvDelegatePtrS1_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD | errMode, observer), INVALID_ARGS); errMode = OBSERVER_CHANGES_LOCAL_ONLY; EXPECT_EQ(kvDelegatePtrS1_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD | errMode, observer), INVALID_ARGS); - delete observer; observer = nullptr; } @@ -1959,12 +1954,11 @@ HWTEST_F(DistributedDBCloudKvStoreTest, ObserverDataChangeTest004, TestSize.Leve * @tc.steps: step1. register cloud observer twice * @tc.expected: step1. return ALREADY_SET */ - auto *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); EXPECT_EQ(kvDelegatePtrS1_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD | OBSERVER_CHANGES_BRIEF, observer), OK); EXPECT_EQ(kvDelegatePtrS1_->RegisterObserver({}, OBSERVER_CHANGES_CLOUD, observer), ALREADY_SET); observer->ResetToZero(); EXPECT_EQ(kvDelegatePtrS1_->UnRegisterObserver(observer), OK); - delete observer; observer = nullptr; } } diff --git a/frameworks/libs/distributeddb/test/unittest/common/syncer/distributeddb_relational_multi_user_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/syncer/distributeddb_relational_multi_user_test.cpp index 9c71b2b551cfdf308de45eae51c54541e7dcbad4..cbcfe0e7c4387dbc49e993f1c618e9782dd47c81 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/syncer/distributeddb_relational_multi_user_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/syncer/distributeddb_relational_multi_user_test.cpp @@ -252,8 +252,8 @@ namespace { param.appId = APP_ID; param.storeId = STORE_ID; CipherPassword passwd; - param.option = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, nullptr, - 0, nullptr}; + param.option = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, + std::weak_ptr(), 0, nullptr}; param.notifier = g_notifier; param.option.syncDualTupleMode = true; return true; @@ -269,8 +269,8 @@ namespace { param.appId = APP_ID; param.storeId = STORE_ID; CipherPassword passwd; - param.option = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, nullptr, - 0, nullptr}; + param.option = {true, false, CipherType::DEFAULT, passwd, "", false, g_testDir, + std::weak_ptr(), 0, nullptr}; param.notifier = g_notifier; param.option.syncDualTupleMode = false; return true; diff --git a/frameworks/libs/distributeddb/test/unittest/common/syncer/distributeddb_single_ver_multi_user_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/syncer/distributeddb_single_ver_multi_user_test.cpp index f21a0ba7f05123a0f0b51212d8624164cb963fd7..591f65734823c7ad0ccf1f478055c039ea365165 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/syncer/distributeddb_single_ver_multi_user_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/syncer/distributeddb_single_ver_multi_user_test.cpp @@ -216,8 +216,8 @@ void CheckSyncTest(DBStatus status1, DBStatus status2, std::vector } } -bool AutoLaunchCallBack(const std::string &identifier, AutoLaunchParam ¶m, KvStoreObserverUnitTest *observer, - bool ret) +bool AutoLaunchCallBack(const std::string &identifier, AutoLaunchParam ¶m, + const std::weak_ptr &observer, bool ret) { LOGD("int AutoLaunchCallBack"); EXPECT_TRUE(identifier == g_identifier); @@ -455,7 +455,7 @@ HWTEST_F(DistributedDBSingleVerMultiUserTest, MultiUser003, TestSize.Level3) */ g_mgr1.SetSyncActivationCheckCallback(g_syncActivationCheckCallback1); - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); EXPECT_TRUE(observer != nullptr); /** * @tc.steps: step2. SetAutoLaunchRequestCallback @@ -502,7 +502,7 @@ HWTEST_F(DistributedDBSingleVerMultiUserTest, MultiUser003, TestSize.Level3) RuntimeConfig::SetAutoLaunchRequestCallback(nullptr, DBType::DB_KV); RuntimeConfig::ReleaseAutoLaunch(USER_ID_2, APP_ID, STORE_ID, DBType::DB_KV); CloseStore(); - delete observer; + observer = nullptr; } /** @@ -524,7 +524,7 @@ HWTEST_F(DistributedDBSingleVerMultiUserTest, MultiUser004, TestSize.Level1) * @tc.expected: step2. success. */ AutoLaunchNotifier notifier = nullptr; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); EXPECT_TRUE(observer != nullptr); AutoLaunchOption option; CipherPassword passwd; @@ -578,7 +578,7 @@ HWTEST_F(DistributedDBSingleVerMultiUserTest, MultiUser004, TestSize.Level1) std::this_thread::sleep_for(std::chrono::milliseconds(WAIT_TIME)); EXPECT_TRUE(g_mgr1.DisableKvStoreAutoLaunch(USER_ID_1, APP_ID, STORE_ID) == OK); CloseStore(); - delete observer; + observer = nullptr; } /** @@ -935,7 +935,7 @@ HWTEST_F(DistributedDBSingleVerMultiUserTest, MultiUser015, TestSize.Level1) * @tc.expected: step2. success. */ AutoLaunchNotifier notifier = nullptr; - KvStoreObserverUnitTest *observer = new (std::nothrow) KvStoreObserverUnitTest; + std::shared_ptr observer = std::make_shared(); EXPECT_TRUE(observer != nullptr); AutoLaunchOption autoLaunchOption; CipherPassword passwd; @@ -976,5 +976,5 @@ HWTEST_F(DistributedDBSingleVerMultiUserTest, MultiUser015, TestSize.Level1) g_kvDelegatePtr1 = nullptr; DBStatus status = subUserMgr.DeleteKvStore(STORE_ID); ASSERT_TRUE(status == OK); - delete observer; + observer = nullptr; }