Add test cases for updating shared data dir 92/218192/13
authorSangyoon Jang <jeremy.jang@samsung.com>
Tue, 19 Nov 2019 09:16:29 +0000 (18:16 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Tue, 10 Dec 2019 08:05:31 +0000 (17:05 +0900)
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 <jeremy.jang@samsung.com>
src/unit_tests/smoke_test.cc
src/unit_tests/test_samples/smoke/RecoveryMode_NonSharedData.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/RecoveryMode_NonSharedData_2.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/RecoveryMode_SharedData.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/RecoveryMode_SharedData_2.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/UpdateMode_NonSharedData.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/UpdateMode_NonSharedData_2.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/UpdateMode_SharedData.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/UpdateMode_SharedData_2.tpk [new file with mode: 0644]

index 2d3bcf1d0020940e3d5d8ade9528080dacb60df5..32df91854ffd2213a1fb5eb06131b6c3486d7d60 100644 (file)
@@ -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 (file)
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 (file)
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 (file)
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 (file)
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 (file)
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 (file)
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 (file)
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 (file)
index 0000000..aa59e29
Binary files /dev/null and b/src/unit_tests/test_samples/smoke/UpdateMode_SharedData_2.tpk differ