From: ilho kim Date: Wed, 15 Nov 2023 01:40:49 +0000 (+0900) Subject: Add extensive smoke test X-Git-Tag: accepted/tizen/unified/20241203.164206~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a51d82f903a0856fc12dedbe2adb1c060b6f11d8;p=platform%2Fcore%2Fappfw%2Ftpk-backend.git Add extensive smoke test SmokeTest.UninstallationMode_Rollback Change-Id: Id6dba3894e643010a9beb6ed8f8f28830d316967 Signed-off-by: Ilho Kim --- diff --git a/test/smoke_tests/extensive_smoke_test.cc b/test/smoke_tests/extensive_smoke_test.cc index 1826814..f3599be 100644 --- a/test/smoke_tests/extensive_smoke_test.cc +++ b/test/smoke_tests/extensive_smoke_test.cc @@ -787,6 +787,82 @@ TEST_F(SmokeTest, RecoveryMode_RemoveResControl) { }, params.pkg_type); } +TEST_F(SmokeTest, UninstallationMode_Rollback) { + fs::path path = kSmokePackagesDirectory / "UninstallationMode_Rollback.tpk"; + std::string pkgid = "smoketpk52"; + std::string appid = "smoketpk52.UninstallationMode_Rollback"; + std::string exec = "smoketpk52"; + std::string test_uid_str = std::to_string(params.test_user.uid); + ASSERT_EQ(BackendInterface::SubProcessResult::SUCCESS, + backend.InstallWithSubprocess(path)); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); + const char* argv[] = {"", "-d", pkgid.c_str(), "-u", test_uid_str.c_str()}; + backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + fs::path recovery_file = FindRecoveryFile("/tpk-recovery", + params.test_user.uid); + if (!recovery_file.empty()) { + std::cout << "Find recovery file : " << recovery_file << std::endl; + std::unique_ptr recovery_info = + GetRecoverFileInfo(recovery_file); + EXTENDED_ASSERT_EQ(backend.RecoverWithSubprocess(recovery_file), + BackendInterface::SubProcessResult::SUCCESS); + EXTENDED_ASSERT_EQ(BackendInterface::SubProcessResult::SUCCESS, + backend.InstallWithSubprocess(path)); + } + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE(expected_file_status.IsEqual(new_file_status)); + EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid, exec}, params)); + return true; + }); +} + +TEST_F(PreloadSmokeTest, ReadonlyUpdateUninstallMode_Rollback) { + fs::path path_old = kSmokePackagesDirectory / + "ReadonlyUpdateUninstallMode_Rollback.tpk"; + fs::path path_new = kSmokePackagesDirectory / + "ReadonlyUpdateUninstallMode_Rollback_2.tpk"; + std::string pkgid = "smoketpk53"; + std::string appid = "smoketpk53.ReadonlyUpdateUninstallMode_Rollback"; + std::string exec = "smoketpk53"; + ASSERT_EQ(backend.InstallPreloadWithSubprocess(path_old), + BackendInterface::SubProcessResult::SUCCESS); + FileInfoCollector expected_file_status_old(pkgid, params); + ASSERT_TRUE(expected_file_status_old.Init()); + ASSERT_EQ(backend.InstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + params.is_readonly = false; + FileInfoCollector expected_file_status_new(pkgid, params); + ASSERT_TRUE(expected_file_status_new.Init()); + + std::string test_uid_str = std::to_string(params.test_user.uid); + const char* argv[] = {"", "-d", pkgid.c_str(), "-u", test_uid_str.c_str()}; + backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + fs::path recovery_file = FindRecoveryFile("/tpk-recovery", + params.test_user.uid); + if (!recovery_file.empty()) { + std::cout << "Find recovery file : " << recovery_file << std::endl; + std::unique_ptr recovery_info = + GetRecoverFileInfo(recovery_file); + EXTENDED_ASSERT_EQ(backend.RecoverWithSubprocess(recovery_file), + BackendInterface::SubProcessResult::SUCCESS); + params.is_readonly = true; + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE(expected_file_status_old.IsEqual(new_file_status)); + EXTENDED_ASSERT_EQ(backend.InstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + params.is_readonly = false; + } + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE(expected_file_status_new.IsEqual(new_file_status)); + EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid, exec}, params)); + return true; + }); +} + } // namespace smoke_test const char kHelpMessage[] = R"(Allowed options: diff --git a/test/smoke_tests/test_samples/smoke/ReadonlyUpdateUninstallMode_Rollback.tpk b/test/smoke_tests/test_samples/smoke/ReadonlyUpdateUninstallMode_Rollback.tpk new file mode 100644 index 0000000..4bc5504 Binary files /dev/null and b/test/smoke_tests/test_samples/smoke/ReadonlyUpdateUninstallMode_Rollback.tpk differ diff --git a/test/smoke_tests/test_samples/smoke/ReadonlyUpdateUninstallMode_Rollback_2.tpk b/test/smoke_tests/test_samples/smoke/ReadonlyUpdateUninstallMode_Rollback_2.tpk new file mode 100644 index 0000000..4a8cb88 Binary files /dev/null and b/test/smoke_tests/test_samples/smoke/ReadonlyUpdateUninstallMode_Rollback_2.tpk differ diff --git a/test/smoke_tests/test_samples/smoke/UninstallationMode_Rollback.tpk b/test/smoke_tests/test_samples/smoke/UninstallationMode_Rollback.tpk new file mode 100644 index 0000000..8e1cec8 Binary files /dev/null and b/test/smoke_tests/test_samples/smoke/UninstallationMode_Rollback.tpk differ