From: Sangyoon Jang Date: Tue, 19 Nov 2019 09:16:29 +0000 (+0900) Subject: Add test cases for updating shared data dir X-Git-Tag: submit/tizen/20191213.074937~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F92%2F218192%2F13;p=platform%2Fcore%2Fappfw%2Ftpk-backend.git Add test cases for updating shared data dir Added: - RollbackTest.UpdateMode_SharedData: update case of shareddata -> non-shareddata - RollbackTest.UpdateMode_NonSharedData: update case of non-shareddata -> shareddata - SmokeTest.RecoveryMode_SharedData: recovery case of shareddata -> non-shareddata - SmokeTest.RecoveryMode_NonSharedData: recovery case of non-shareddata -> shareddata Requires: - https://review.tizen.org/gerrit/c/platform/core/appfw/app-installers/+/218218 Change-Id: I078c5b1f907382b3ff88b42508678b772da48e13 Signed-off-by: Sangyoon Jang --- diff --git a/src/unit_tests/smoke_test.cc b/src/unit_tests/smoke_test.cc index 2d3bcf1..32df918 100644 --- a/src/unit_tests/smoke_test.cc +++ b/src/unit_tests/smoke_test.cc @@ -750,6 +750,78 @@ TEST_F(SmokeTest, RecoveryMode_CrashAfterUnzip) { ASSERT_FALSE(bf::exists(recovery_info->unpacked_dir())); } +TEST_F(RollbackSmokeTest, UpdateMode_RollbackSharedDataUpdate) { + bf::path path_old = kSmokePackagesDirectory / "UpdateMode_SharedData.tpk"; + bf::path path_new = kSmokePackagesDirectory / "UpdateMode_SharedData_2.tpk"; + std::string pkgid = "smoketpk.shareddata"; + std::string appid = "smoketpk.shareddata"; + std::string exec = "shareddata"; + ASSERT_EQ(backend.InstallSuccess(path_old), ci::AppInstaller::Result::OK); + ASSERT_EQ(backend.Install(path_new), ci::AppInstaller::Result::ERROR); + ASSERT_TRUE(ValidatePackage(pkgid, {appid, exec}, params)); + ASSERT_TRUE(CheckSharedDataExistance(pkgid, params)); +} + +TEST_F(RollbackSmokeTest, UpdateMode_RollbackNonSharedDataUpdate) { + bf::path path_old = kSmokePackagesDirectory / "UpdateMode_NonSharedData.tpk"; + bf::path path_new = kSmokePackagesDirectory / "UpdateMode_NonSharedData_2.tpk"; + std::string pkgid = "smoketpk.non-shareddata"; + std::string appid = "smoketpk.non-shareddata"; + std::string exec = "shareddata"; + ASSERT_EQ(backend.InstallSuccess(path_old), ci::AppInstaller::Result::OK); + ASSERT_EQ(backend.Install(path_new), ci::AppInstaller::Result::ERROR); + ASSERT_TRUE(ValidatePackage(pkgid, {appid, exec}, params)); + ASSERT_TRUE(CheckSharedDataNonExistance(pkgid, params)); +} + +TEST_F(SmokeTest, RecoveryMode_SharedDataUpdate) { + bf::path path_old = + kSmokePackagesDirectory / "RecoveryMode_SharedData.tpk"; + bf::path path_new = + kSmokePackagesDirectory / "RecoveryMode_SharedData_2.tpk"; + RemoveAllRecoveryFiles("/tpk-recovery", params.test_user.uid); + ASSERT_EQ(backend.Install(path_old), ci::AppInstaller::Result::OK); + ci::Subprocess backend_crash("/usr/bin/tpk-backend-ut/smoke-test-helper"); + std::string test_uid_str = std::to_string(params.test_user.uid); + backend_crash.Run("-i", path_new.string(), "-u", test_uid_str.c_str()); + ASSERT_NE(backend_crash.Wait(), 0); + + std::string pkgid = "smoketpk.recovery-shareddata"; + std::string appid = "smoketpk.recovery-shareddata"; + std::string exec = "shareddata"; + bf::path recovery_file = FindRecoveryFile("/tpk-recovery", + params.test_user.uid); + ASSERT_FALSE(recovery_file.empty()); + ASSERT_EQ(backend.Recover(recovery_file), ci::AppInstaller::Result::OK); + + ASSERT_TRUE(ValidatePackage(pkgid, {appid, exec}, params)); + ASSERT_TRUE(CheckSharedDataExistance(pkgid, params)); +} + +TEST_F(SmokeTest, RecoveryMode_NonSharedDataUpdate) { + bf::path path_old = + kSmokePackagesDirectory / "RecoveryMode_NonSharedData.tpk"; + bf::path path_new = + kSmokePackagesDirectory / "RecoveryMode_NonSharedData_2.tpk"; + RemoveAllRecoveryFiles("/tpk-recovery", params.test_user.uid); + ASSERT_EQ(backend.Install(path_old), ci::AppInstaller::Result::OK); + ci::Subprocess backend_crash("/usr/bin/tpk-backend-ut/smoke-test-helper"); + std::string test_uid_str = std::to_string(params.test_user.uid); + backend_crash.Run("-i", path_new.string(), "-u", test_uid_str.c_str()); + ASSERT_NE(backend_crash.Wait(), 0); + + std::string pkgid = "smoketpk.recovery-non-shareddata"; + std::string appid = "smoketpk.recovery-non-shareddata"; + std::string exec = "shareddata"; + bf::path recovery_file = FindRecoveryFile("/tpk-recovery", + params.test_user.uid); + ASSERT_FALSE(recovery_file.empty()); + ASSERT_EQ(backend.Recover(recovery_file), ci::AppInstaller::Result::OK); + + ASSERT_TRUE(ValidatePackage(pkgid, {appid, exec}, params)); + ASSERT_TRUE(CheckSharedDataNonExistance(pkgid, params)); +} + } // namespace smoke_test int main(int argc, char** argv) { diff --git a/src/unit_tests/test_samples/smoke/RecoveryMode_NonSharedData.tpk b/src/unit_tests/test_samples/smoke/RecoveryMode_NonSharedData.tpk new file mode 100644 index 0000000..a7df83b Binary files /dev/null and b/src/unit_tests/test_samples/smoke/RecoveryMode_NonSharedData.tpk differ diff --git a/src/unit_tests/test_samples/smoke/RecoveryMode_NonSharedData_2.tpk b/src/unit_tests/test_samples/smoke/RecoveryMode_NonSharedData_2.tpk new file mode 100644 index 0000000..441c58b Binary files /dev/null and b/src/unit_tests/test_samples/smoke/RecoveryMode_NonSharedData_2.tpk differ diff --git a/src/unit_tests/test_samples/smoke/RecoveryMode_SharedData.tpk b/src/unit_tests/test_samples/smoke/RecoveryMode_SharedData.tpk new file mode 100644 index 0000000..d1dc366 Binary files /dev/null and b/src/unit_tests/test_samples/smoke/RecoveryMode_SharedData.tpk differ diff --git a/src/unit_tests/test_samples/smoke/RecoveryMode_SharedData_2.tpk b/src/unit_tests/test_samples/smoke/RecoveryMode_SharedData_2.tpk new file mode 100644 index 0000000..cf91a3a Binary files /dev/null and b/src/unit_tests/test_samples/smoke/RecoveryMode_SharedData_2.tpk differ diff --git a/src/unit_tests/test_samples/smoke/UpdateMode_NonSharedData.tpk b/src/unit_tests/test_samples/smoke/UpdateMode_NonSharedData.tpk new file mode 100644 index 0000000..1eea6e5 Binary files /dev/null and b/src/unit_tests/test_samples/smoke/UpdateMode_NonSharedData.tpk differ diff --git a/src/unit_tests/test_samples/smoke/UpdateMode_NonSharedData_2.tpk b/src/unit_tests/test_samples/smoke/UpdateMode_NonSharedData_2.tpk new file mode 100644 index 0000000..be7893d Binary files /dev/null and b/src/unit_tests/test_samples/smoke/UpdateMode_NonSharedData_2.tpk differ diff --git a/src/unit_tests/test_samples/smoke/UpdateMode_SharedData.tpk b/src/unit_tests/test_samples/smoke/UpdateMode_SharedData.tpk new file mode 100644 index 0000000..9df9b8a Binary files /dev/null and b/src/unit_tests/test_samples/smoke/UpdateMode_SharedData.tpk differ diff --git a/src/unit_tests/test_samples/smoke/UpdateMode_SharedData_2.tpk b/src/unit_tests/test_samples/smoke/UpdateMode_SharedData_2.tpk new file mode 100644 index 0000000..aa59e29 Binary files /dev/null and b/src/unit_tests/test_samples/smoke/UpdateMode_SharedData_2.tpk differ