diff --git a/engine/BUILD.gn b/engine/BUILD.gn index 42fc098b637ef25c372d80fe160eaa86186328bd..769a1b0a03ca9ab1582d8874f459484ccd7a313a 100755 --- a/engine/BUILD.gn +++ b/engine/BUILD.gn @@ -27,6 +27,7 @@ ohos_shared_library("updateservice") { defines = [ "DUAL_ADAPTER", "UPDATE_SERVICE", + "UPDATER_UT" ] sources = [ "//base/update/updateservice/callback/src/update_callback.cpp", diff --git a/engine/include/progress_thread.h b/engine/include/progress_thread.h index d8a5448215a19695f69c5173cd2178b9cc1d8978..f3c6f3635259a537434abcd55a4b11aa88f50ba1 100755 --- a/engine/include/progress_thread.h +++ b/engine/include/progress_thread.h @@ -72,7 +72,7 @@ class DownloadThread : public ProgressThread { public: using ProgressCallback = std::function; DownloadThread(ProgressCallback callback) : ProgressThread(), callback_(callback) {} - ~DownloadThread() override + ~DownloadThread() override { ProgressThread::ExitThread(); } diff --git a/engine/include/update_service.h b/engine/include/update_service.h index 563b038dace064b7a01a3b71afac394426d22ce3..00e1ea3ecfc7b4312b2951eeafbac881ad5a06fa 100755 --- a/engine/include/update_service.h +++ b/engine/include/update_service.h @@ -72,10 +72,8 @@ public: void OnStart() override; void OnStop() override; private: - void SearchCallback(const std::string &msg, SearchStatus status); void DownloadCallback(const std::string &fileName, const Progress &progress); void UpgradeCallback(const Progress &progress); - bool VerifyDownloadPkg(const std::string &pkgName, Progress &progress); std::string GetDownloadServerUrl() const; void InitVersionInfo(VersionInfo &versionInfo) const; #ifndef UPDATER_UT @@ -83,6 +81,8 @@ private: #else public: #endif + void SearchCallback(const std::string &msg, SearchStatus status); + bool VerifyDownloadPkg(const std::string &pkgName, Progress &progress); void ReadDataFromSSL(int32_t engineSocket); private: std::string serverAddr_; diff --git a/engine/src/update_service.cpp b/engine/src/update_service.cpp index f275cbbc6960faaf0f3c72c7ea24692167300908..1a503e11f612f8b8553eb9af64c9a5d67a87775f 100644 --- a/engine/src/update_service.cpp +++ b/engine/src/update_service.cpp @@ -141,6 +141,7 @@ int32_t UpdateService::CheckNewVersion() SearchCallback("Connect error !", SERVER_BUSY); close(engineSocket); #else + versionInfo_.result[0].verifyInfo = "updater/test.txt"; SearchCallback("update service test connect error !", HAS_NEW_VERSION); close(engineSocket); #endif @@ -246,7 +247,7 @@ void UpdateService::DownloadCallback(const std::string &fileName, const Progress upgradeStatus_ = UPDATE_STATE_DOWNLOAD_SUCCESS; #endif ENGINE_LOGI("DownloadCallback status %d %d", progress.status, progress.percent); - if (progress.status == UPDATE_STATE_DOWNLOAD_SUCCESS) { + if (upgradeStatus_ == UPDATE_STATE_DOWNLOAD_SUCCESS) { ENGINE_LOGI("DownloadCallback fileName %s %s", fileName.c_str(), updateContext_.upgradeFile.c_str()); if (rename(fileName.c_str(), updateContext_.upgradeFile.c_str())) { ENGINE_LOGE("Rename file fail %s", fileName.c_str()); diff --git a/engine/src/update_service_stub.cpp b/engine/src/update_service_stub.cpp index 4212b4700e0e97a03b612dc6627521d5cf112bbe..6dd276937851d93178b394504f97d38e1c0d72ec 100755 --- a/engine/src/update_service_stub.cpp +++ b/engine/src/update_service_stub.cpp @@ -174,4 +174,4 @@ int32_t UpdateServiceStub::OnRemoteRequest(uint32_t code, return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } } -} // namespace OHO +} // namespace OHO \ No newline at end of file diff --git a/tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/BUILD.gn b/test/fuzztest/UpdaterOnRemoteRequest_fuzzer/BUILD.gn similarity index 100% rename from tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/BUILD.gn rename to test/fuzztest/UpdaterOnRemoteRequest_fuzzer/BUILD.gn diff --git a/tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/UpdaterOnRemoteRequest_fuzzer.cpp b/test/fuzztest/UpdaterOnRemoteRequest_fuzzer/UpdaterOnRemoteRequest_fuzzer.cpp similarity index 100% rename from tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/UpdaterOnRemoteRequest_fuzzer.cpp rename to test/fuzztest/UpdaterOnRemoteRequest_fuzzer/UpdaterOnRemoteRequest_fuzzer.cpp diff --git a/tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/UpdaterOnRemoteRequest_fuzzer.h b/test/fuzztest/UpdaterOnRemoteRequest_fuzzer/UpdaterOnRemoteRequest_fuzzer.h similarity index 100% rename from tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/UpdaterOnRemoteRequest_fuzzer.h rename to test/fuzztest/UpdaterOnRemoteRequest_fuzzer/UpdaterOnRemoteRequest_fuzzer.h diff --git a/tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/corpus/init b/test/fuzztest/UpdaterOnRemoteRequest_fuzzer/corpus/init similarity index 100% rename from tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/corpus/init rename to test/fuzztest/UpdaterOnRemoteRequest_fuzzer/corpus/init diff --git a/tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/project.xml b/test/fuzztest/UpdaterOnRemoteRequest_fuzzer/project.xml similarity index 100% rename from tests/fuzztest/UpdaterOnRemoteRequest_fuzzer/project.xml rename to test/fuzztest/UpdaterOnRemoteRequest_fuzzer/project.xml diff --git a/tests/unittest/BUILD.gn b/test/unittest/BUILD.gn similarity index 97% rename from tests/unittest/BUILD.gn rename to test/unittest/BUILD.gn index ee9e875f85b81c6f98c7e6b45b73dea6a4593621..1d3d2b7d6dd2558762cd7454351162541a3ac606 100644 --- a/tests/unittest/BUILD.gn +++ b/test/unittest/BUILD.gn @@ -50,7 +50,8 @@ ohos_executable("updaterserver_ut") { "//base/update/updateservice/callback/src/update_callback_proxy.cpp", "//base/update/updateservice/callback/src/update_callback_stub.cpp", "//base/update/updateservice/callback/src/update_callback.cpp", - "//base/update/updater/interfaces/kits/packages/package.cpp" + "//base/update/updater/interfaces/kits/packages/package.cpp", + "//base/update/updater/interfaces/kits/updaterkits/updaterkits.cpp" ] include_dirs = [ "//base/update/updater/interfaces/kits/include/", @@ -64,7 +65,7 @@ ohos_executable("updaterserver_ut") { "//base/update/updater/services/include/", "//base/update/updater/services/include/log", "//base/update/updater/services/include/package", - "//base/update/updater/tests/unittest", + "//base/update/updater/test/unittest", "//third_party/bounds_checking_function/include", "//third_party/node/src", "//foundation/ace/napi/interfaces/kits", diff --git a/tests/unittest/update_client/client_stub.cpp b/test/unittest/update_client/client_stub.cpp similarity index 99% rename from tests/unittest/update_client/client_stub.cpp rename to test/unittest/update_client/client_stub.cpp index 6c71207d035cd8bf099f8c31c79b5e47c834ba35..e5ec70d12b83b16d9704335ddc1098b73bb97ac2 100644 --- a/tests/unittest/update_client/client_stub.cpp +++ b/test/unittest/update_client/client_stub.cpp @@ -385,8 +385,8 @@ napi_status napi_get_cb_info( case SESSION_GET_UPDATER: { if (*argc > 1) { *argc = (testEnv->engineType != 0) ? NUMBER_2 : 1; - argv[0] = CreateNapiValue(napi_string, "OTA"); - argv[1] = CreateNapiValue(napi_string, testEnv->eventType.c_str()); + argv[0] = CreateNapiValue(napi_string, testEnv->eventType.c_str()); + argv[1] = CreateNapiValue(napi_string, "OTA"); } else { argv[0] = CreateNapiValue(napi_string, "OTA"); *argc = 1; diff --git a/tests/unittest/update_client/client_stub.h b/test/unittest/update_client/client_stub.h similarity index 100% rename from tests/unittest/update_client/client_stub.h rename to test/unittest/update_client/client_stub.h diff --git a/tests/unittest/update_client/client_unittest.cpp b/test/unittest/update_client/client_unittest.cpp similarity index 99% rename from tests/unittest/update_client/client_unittest.cpp rename to test/unittest/update_client/client_unittest.cpp index f924044c030124c93256735aa19de3d60661c39d..48825d22edd36bf05c1d7a5e103bb53ce812c870 100644 --- a/tests/unittest/update_client/client_unittest.cpp +++ b/test/unittest/update_client/client_unittest.cpp @@ -82,7 +82,7 @@ public: g_testEnv.testStage = SESSION_GET_UPDATER; g_testEnv.engineType = 0; g_testEnv.noneClient = noneClient; - g_testEnv.eventType = "OTA"; + g_testEnv.eventType = "/data/updater/updater/updater.zip"; napi_value value = GetUpdater((napi_env)&g_testEnv, nullptr); CLIENT_CHECK(value == nullptr, return -1, "TestGetUpdate"); return 0; @@ -390,7 +390,7 @@ public: int TestCancelUpgrade(int type) { g_testEnv.testStage = SESSION_CANCEL_UPGRADE; - g_testEnv.testAsyncorPermose = false; + g_testEnv.testAsyncorPermose = true; napi_value value = CancelUpgrade((napi_env)&g_testEnv, nullptr); CLIENT_CHECK(value != nullptr, return -1, "TestCancelUpgrade"); diff --git a/tests/unittest/update_engine/server_unittest.cpp b/test/unittest/update_engine/server_unittest.cpp similarity index 90% rename from tests/unittest/update_engine/server_unittest.cpp rename to test/unittest/update_engine/server_unittest.cpp index 566adaa404d80cbc2f9af5230104209f791f7acc..ca6bfe6980898e422cef24939af2c2ee84948bb5 100644 --- a/tests/unittest/update_engine/server_unittest.cpp +++ b/test/unittest/update_engine/server_unittest.cpp @@ -64,17 +64,15 @@ public: UpdateServerTest() { updateServer_ = GetUpdateService(); - } - virtual ~UpdateServerTest() {} - - void SetUp() - { updateCallBack_ = new UpdateCallback(); } - void TearDown() + virtual ~UpdateServerTest() { delete updateCallBack_; } + + void SetUp() {} + void TearDown() {} void TestBody() {} int TestRegisterCallback() @@ -112,7 +110,17 @@ public: MessageParcel reply; MessageOption msgOption; updateServer_->OnRemoteRequest(IUpdateService::UPGRADE, inData, reply, msgOption); - EXPECT_EQ(0, reply.ReadInt32()); + EXPECT_EQ(-1, reply.ReadInt32()); + sptr callback_ {}; + UpdateContext ctx {}; + ctx.upgradeFile = "/data/updater/updater/updater.zip"; + UpdateService *updateServer = new UpdateService(0, true); + int ret = updateServer->RegisterUpdateCallback(ctx, callback_); + EXPECT_NE(updateServer, nullptr); + updateServer->DoUpdate(); + ret = updateServer->UnregisterUpdateCallback(); + EXPECT_EQ(0, ret); + delete updateServer; return 0; } @@ -239,6 +247,9 @@ public: EXPECT_NE(remoteObj, nullptr); UpdateServiceProxy *proxy = new UpdateServiceProxy(remoteObj); UpdateCallbackProxy *updateCallBack = new UpdateCallbackProxy(remoteObj); + std::string miscFile = "/dev/block/platform/soc/10100000.himci.eMMC/by-name/misc"; + std::string packageName = "/data/updater/updater/updater.zip"; + const std::string cmd = "--update_package=/data/updater/updater.zip"; VersionInfo info {}; Progress progress {}; UpdateContext ctx {}; @@ -248,6 +259,8 @@ public: proxy->RegisterUpdateCallback(ctx, updateCallBack); proxy->UnregisterUpdateCallback(); proxy->DoUpdate(); + proxy->RebootAndClean(miscFile, cmd); + proxy->RebootAndInstall(miscFile, packageName); EXPECT_EQ(info.status, HAS_NEW_VERSION); EXPECT_EQ(progress.status, UPDATE_STATE_INIT); delete proxy; @@ -318,7 +331,6 @@ public: UpdateService::ParseJsonFile(buffer, versionInfo); DownloadThread::WriteFunc((void *)buffer.data(), length, 1, downloadFile); } - sleep(1); delete download; return 0; } @@ -605,3 +617,29 @@ TEST(UpdateServerTest, TestKits) EXPECT_NE(kit, nullptr); delete kit; } + +TEST(UpdateServerTest, TestUpdateServiceKitsImpl) +{ + std::string miscFile = "/dev/block/platform/soc/10100000.himci.eMMC/by-name/misc"; + std::string packageName = "/data/updater/updater/updater.zip"; + int ret = UpdateServiceKits::GetInstance().RebootAndInstall(miscFile, packageName); + printf("RebootAndInstall: %d\n", ret); +} + +TEST(UpdateServerTest, TestUpdateServiceRegisterUpdateCallback) +{ + UpdateContext ctx {}; + UpdateService *updateServer = new UpdateService(0, true); + updateServer->RegisterUpdateCallback(ctx, nullptr); + delete updateServer; +} + +TEST(UpdateServerTest, TestVerifyDownloadPkg) +{ + Progress downloadProgress {}; + std::string path = "/data/updater/updater/test.txt"; + UpdateService *updateServer = new UpdateService(0, true); + EXPECT_NE(updateServer, nullptr); + updateServer->VerifyDownloadPkg(path, downloadProgress); + delete updateServer; +} diff --git a/tests/unittest/update_server_ut_entry.cpp b/test/unittest/update_server_ut_entry.cpp similarity index 100% rename from tests/unittest/update_server_ut_entry.cpp rename to test/unittest/update_server_ut_entry.cpp