From: ilho kim Date: Thu, 12 Jan 2023 06:47:03 +0000 (+0900) Subject: Add routine to check file status X-Git-Tag: accepted/tizen/7.0/unified/20230117.141741~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5f298d2a43d0defddaff7b9119d9c1197fa0ead3;p=platform%2Fcore%2Fappfw%2Fwgt-backend.git Add routine to check file status Change-Id: I738d4ab97fdda67111ad8316ec4fe6e04b856cef Signed-off-by: ilho kim --- diff --git a/test/smoke_tests/extensive_smoke_test.cc b/test/smoke_tests/extensive_smoke_test.cc index e51a0f7..d1bdcfc 100644 --- a/test/smoke_tests/extensive_smoke_test.cc +++ b/test/smoke_tests/extensive_smoke_test.cc @@ -129,11 +129,23 @@ TEST_F(SmokeTest, RecoveryMode_ForInstallation) { TEST_F(SmokeTest, RecoveryMode_ForUpdate) { bf::path path_old = kSmokePackagesDirectory / "RecoveryMode_ForUpdate.wgt"; bf::path path_new = kSmokePackagesDirectory / "RecoveryMode_ForUpdate_2.wgt"; + std::string pkgid = "smokewgt10"; + std::string appid = "smokewgt10.RecoveryModeForUpdate"; RemoveAllRecoveryFiles("/wgt-recovery", params.test_user.uid); ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - std::string pkgid = "smokewgt10"; - std::string appid = "smokewgt10.RecoveryModeForUpdate"; + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status_old(pkgid, params); + ASSERT_TRUE(expected_file_status_old.Init()); + ASSERT_EQ(backend.InstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + FileInfoCollector expected_file_status_new(pkgid, params); + ASSERT_TRUE(expected_file_status_new.Init()); + ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), + BackendInterface::SubProcessResult::SUCCESS); + ASSERT_EQ(backend.InstallWithSubprocess(path_old), + BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); std::string test_user_str = std::to_string(params.test_user.uid); @@ -154,13 +166,20 @@ TEST_F(SmokeTest, RecoveryMode_ForUpdate) { EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/wgt/VERSION", version, params)); EXTENDED_ASSERT_TRUE(ValidateDataFiles(pkgid, params.test_user.uid)); + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); if (recovery_info->cleanup()) { + EXTENDED_ASSERT_TRUE( + expected_file_status_new.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), BackendInterface::SubProcessResult::SUCCESS); EXTENDED_ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); + } else { + EXTENDED_ASSERT_TRUE( + expected_file_status_old.IsEqual(new_file_status, &added_files)); } } return true; @@ -175,6 +194,18 @@ TEST_F(SmokeTest, RecoveryMode_ForDelta) { RemoveAllRecoveryFiles("/wgt-recovery", params.test_user.uid); ASSERT_EQ(BackendInterface::SubProcessResult::SUCCESS, backend.InstallWithSubprocess(path_old)); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status_old(pkgid, params); + ASSERT_TRUE(expected_file_status_old.Init()); + ASSERT_EQ(backend.InstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + FileInfoCollector expected_file_status_new(pkgid, params); + ASSERT_TRUE(expected_file_status_new.Init()); + ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), + BackendInterface::SubProcessResult::SUCCESS); + ASSERT_EQ(backend.InstallWithSubprocess(path_old), + BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); std::string test_user_str = std::to_string(params.test_user.uid); std::vector args = @@ -194,13 +225,20 @@ TEST_F(SmokeTest, RecoveryMode_ForDelta) { EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/wgt/VERSION", contents, params)); EXTENDED_ASSERT_TRUE(ValidateDataFiles(pkgid, params.test_user.uid)); + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); if (recovery_info->cleanup()) { + EXTENDED_ASSERT_TRUE( + expected_file_status_new.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), BackendInterface::SubProcessResult::SUCCESS); EXTENDED_ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); + } else { + EXTENDED_ASSERT_TRUE( + expected_file_status_old.IsEqual(new_file_status, &added_files)); } } return true; @@ -247,6 +285,18 @@ TEST_F(SmokeTest, RecoveryMode_ForMountUpdate) { RemoveAllRecoveryFiles("/wgt-recovery", params.test_user.uid); ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status_old(pkgid, params); + ASSERT_TRUE(expected_file_status_old.Init()); + ASSERT_EQ(backend.MountInstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + FileInfoCollector expected_file_status_new(pkgid, params); + ASSERT_TRUE(expected_file_status_new.Init()); + ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), + BackendInterface::SubProcessResult::SUCCESS); + ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), + BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); std::string test_user_str = std::to_string(params.test_user.uid); std::vector args = @@ -272,13 +322,20 @@ TEST_F(SmokeTest, RecoveryMode_ForMountUpdate) { EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage( pkgid, "res/wgt/VERSION", version, params)); EXTENDED_ASSERT_TRUE(ValidateDataFiles(pkgid, params.test_user.uid)); + interface.Release(); + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); if (recovery_info->cleanup()) { - interface.Release(); + EXTENDED_ASSERT_TRUE( + expected_file_status_new.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), BackendInterface::SubProcessResult::SUCCESS); EXTENDED_ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); + } else { + EXTENDED_ASSERT_TRUE( + expected_file_status_old.IsEqual(new_file_status, &added_files)); } } return true; @@ -306,11 +363,18 @@ TEST_F(SmokeTest, UpdateMode_Rollback) { std::string appid = "smokewgt07.UpdateModeRollback"; ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-i", path_new.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid}, params)); EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, @@ -327,11 +391,18 @@ TEST_F(SmokeTest, DeltaMode_Rollback) { std::string appid = "smokewgt01.DeltaMode"; ASSERT_EQ(backend.InstallWithSubprocess(path), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-i", delta_package.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid}, params)); EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/wgt/MODIFIED", "version 1\n", params)); @@ -366,11 +437,18 @@ TEST_F(HybridSmokeTest, UpdateMode_Rollback) { std::string appid1 = "smokehyb08.web"; ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-i", path_new.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid1}, params)); EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, @@ -390,10 +468,17 @@ TEST_F(HybridSmokeTest, DeltaMode_Rollback_Hybrid) { std::string appid1 = "smokehyb11.web"; ASSERT_EQ(backend.InstallWithSubprocess(path), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-i", path.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid1}, params)); // Check delta modifications bf::path root_path = GetPackageRoot(pkgid, params.test_user.uid); @@ -433,11 +518,18 @@ TEST_F(HybridSmokeTest, MountUpdateMode_Rollback) { std::string appid1 = "smokehyb10.web"; ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-w", path_new.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); ScopedTzipInterface interface(pkgid, params.test_user.uid); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid1}, params)); @@ -472,11 +564,18 @@ TEST_F(SmokeTest, MountUpdateMode_Rollback) { std::string appid = "smokewgt34.web"; ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-w", path_new.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); ScopedTzipInterface interface(pkgid, params.test_user.uid); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid}, params)); @@ -493,11 +592,23 @@ TEST_F(PreloadSmokeTest, RecoveryMode_ForReadonlyUpdateInstall) { "RecoveryMode_ForReadonlyUpdateInstall.wgt"; bf::path path_new = kSmokePackagesDirectory / "RecoveryMode_ForReadonlyUpdateInstall_2.wgt"; + std::string pkgid = "smokewgt51"; + std::string appid = "smokewgt51.RecoveryModeForReadonlyUpdateInstall"; RemoveAllRecoveryFiles("/wgt-recovery", params.test_user.uid); ASSERT_EQ(backend.InstallPreloadWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - std::string pkgid = "smokewgt51"; - std::string appid = "smokewgt51.RecoveryModeForReadonlyUpdateInstall"; + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + 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()); + params.is_readonly = true; + ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), + BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); std::string test_uid_str = std::to_string(params.test_user.uid); std::vector args = @@ -519,11 +630,18 @@ TEST_F(PreloadSmokeTest, RecoveryMode_ForReadonlyUpdateInstall) { EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/wgt/VERSION", version, params)); EXTENDED_ASSERT_TRUE(ValidateDataFiles(pkgid, params.test_user.uid)); + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); if (recovery_info->cleanup()) { + EXTENDED_ASSERT_TRUE( + expected_file_status_new.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); + } else { + EXTENDED_ASSERT_TRUE( + expected_file_status_old.IsEqual(new_file_status, &added_files)); } } return true;