From 1d452447286a53f996c4dcf40b52210c394126fd Mon Sep 17 00:00:00 2001 From: Tomasz Iwanek Date: Thu, 10 Mar 2016 11:34:44 +0100 Subject: [PATCH] Clear data smoke test Change-Id: Ibf74ce0f88d79fd4918f5ae0e744269c74164a4c --- src/unit_tests/smoke_test.cc | 49 +++++++++++++++++++++++- src/unit_tests/test_samples/smoke/ClearMode.wgt | Bin 0 -> 33311 bytes 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/unit_tests/test_samples/smoke/ClearMode.wgt diff --git a/src/unit_tests/smoke_test.cc b/src/unit_tests/smoke_test.cc index 7086e91..5bd6d95 100644 --- a/src/unit_tests/smoke_test.cc +++ b/src/unit_tests/smoke_test.cc @@ -71,6 +71,14 @@ enum class PackageType { HYBRID }; +bool TouchFile(const bf::path& path) { + FILE* f = fopen(path.c_str(), "w+"); + if (!f) + return false; + fclose(f); + return true; +} + void RemoveAllRecoveryFiles() { bf::path root_path = ci::GetRootAppPath(false); if (!bf::exists(root_path)) @@ -142,7 +150,8 @@ void ValidatePackageFS(const std::string& pkgid, for (auto& appid : appids) { bf::path binary_path = package_path / "bin" / appid; ASSERT_TRUE(bf::exists(binary_path)); - bf::path icon_path = bf::path(getIconPath(getuid(), false)) / (appid + ".png"); + bf::path icon_path = + bf::path(getIconPath(getuid(), false)) / (appid + ".png"); ASSERT_TRUE(bf::exists(icon_path)); bf::path icon_backup = ci::GetBackupPathForIconFile(icon_path); ASSERT_FALSE(bf::exists(icon_backup)); @@ -174,7 +183,8 @@ void PackageCheckCleanup(const std::string& pkgid, ASSERT_FALSE(bf::exists(manifest_path)); for (auto& appid : appids) { - bf::path icon_path = bf::path(getIconPath(getuid(), false)) / (appid + ".png"); + bf::path icon_path = + bf::path(getIconPath(getuid(), false)) / (appid + ".png"); ASSERT_FALSE(bf::exists(icon_path)); bf::path icon_backup = ci::GetBackupPathForIconFile(icon_path); ASSERT_FALSE(bf::exists(icon_backup)); @@ -309,6 +319,23 @@ ci::AppInstaller::Result DeltaInstall(const bf::path& path, return Install(delta_package, type); } +ci::AppInstaller::Result Clear(const std::string& pkgid, + PackageType type, + RequestResult mode = RequestResult::NORMAL) { + const char* argv[] = {"", "-c", pkgid.c_str()}; + TestPkgmgrInstaller pkgmgr_installer; + std::unique_ptr query_interface = + CreateQueryInterface(); + auto pkgmgr = + ci::PkgMgrInterface::Create(SIZEOFARRAY(argv), const_cast(argv), + &pkgmgr_installer, query_interface.get()); + if (!pkgmgr) { + LOG(ERROR) << "Failed to initialize pkgmgr interface"; + return ci::AppInstaller::Result::UNKNOWN; + } + return RunInstallerWithPkgrmgr(pkgmgr, type, mode); +} + ci::AppInstaller::Result Recover(const bf::path& recovery_file, PackageType type, RequestResult mode = RequestResult::NORMAL) { @@ -418,6 +445,24 @@ TEST_F(SmokeTest, RDSMode) { ValidateFileContentInPackage(pkgid, "res/wgt/MODIFIED", "2\n"); } +TEST_F(SmokeTest, ClearMode) { + bf::path path = kSmokePackagesDirectory / "ClearMode.wgt"; + std::string pkgid = "smokeapp20"; + std::string appid = "smokeapp20.ClearMode"; + ASSERT_EQ(Install(path, PackageType::WGT), + ci::AppInstaller::Result::OK); + bf::path root_path = ci::GetRootAppPath(false); + bs::error_code error; + bf::create_directory(root_path / pkgid / "data" / "dir", error); + ASSERT_FALSE(error); + ASSERT_TRUE(TouchFile(root_path / pkgid / "data" / "dir" / "file")); + ASSERT_TRUE(TouchFile(root_path / pkgid / "data" / "file")); + ASSERT_EQ(Clear(pkgid, PackageType::WGT), ci::AppInstaller::Result::OK); + ValidatePackage(pkgid, {appid}); + ASSERT_FALSE(bf::exists(root_path / pkgid / "data" / "dir" / "file")); + ASSERT_FALSE(bf::exists(root_path / pkgid / "res" / "file")); +} + TEST_F(SmokeTest, DeltaMode) { bf::path path = kSmokePackagesDirectory / "DeltaMode.wgt"; bf::path delta_package = kSmokePackagesDirectory / "DeltaMode.delta"; diff --git a/src/unit_tests/test_samples/smoke/ClearMode.wgt b/src/unit_tests/test_samples/smoke/ClearMode.wgt new file mode 100644 index 0000000000000000000000000000000000000000..6db2614fab40179ee52ab92d69a4aee0d9e20f3a GIT binary patch literal 33311 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

egx4!dORJ>p=~%BDFL<-^~#hcLj4vi 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%0Agbutz7UV1H7V$e#bfya}pq*>)T+I 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 JbQBEi{{VHEsFnZ# literal 0 HcmV?d00001 -- 2.7.4