From 2f184d3f7b86145a976a785b5bfaa1314dc6f964 Mon Sep 17 00:00:00 2001 From: jaychao Date: Tue, 19 Dec 2023 18:31:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E6=81=A2=E5=A4=8DTDD?= =?UTF-8?q?=E6=8F=90=E4=BA=A4-tools3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jaychao --- tests/unittests/backup_tools/BUILD.gn | 26 ++++ .../backup_tool/tools_op_restore_test.cpp | 121 +++++++++++++++++- .../backup_tool/tools_op_test.cpp | 62 ++++++++- 3 files changed, 203 insertions(+), 6 deletions(-) diff --git a/tests/unittests/backup_tools/BUILD.gn b/tests/unittests/backup_tools/BUILD.gn index 636eef003..ccd7377ed 100644 --- a/tests/unittests/backup_tools/BUILD.gn +++ b/tests/unittests/backup_tools/BUILD.gn @@ -44,6 +44,12 @@ ohos_unittest("backup_tool_test") { "${path_jsoncpp}:jsoncpp", ] + cflags = [ "--coverage" ] + + ldflags = [ "--coverage" ] + + cflags_cc = [ "--coverage" ] + external_deps = [ "c_utils:utils", "hilog:libhilog", @@ -51,6 +57,13 @@ ohos_unittest("backup_tool_test") { "ipc:ipc_core", "samgr:samgr_proxy", ] + + sanitize = { + cfi = true + cfi_cross_dso = true + debug = false + } + use_exceptions = true } @@ -84,6 +97,12 @@ ohos_unittest("backup_tool_restore_test") { "${path_jsoncpp}:jsoncpp", ] + cflags = [ "--coverage" ] + + ldflags = [ "--coverage" ] + + cflags_cc = [ "--coverage" ] + external_deps = [ "c_utils:utils", "hilog:libhilog", @@ -91,6 +110,13 @@ ohos_unittest("backup_tool_restore_test") { "ipc:ipc_core", "samgr:samgr_proxy", ] + + sanitize = { + cfi = true + cfi_cross_dso = true + debug = false + } + use_exceptions = true } diff --git a/tests/unittests/backup_tools/backup_tool/tools_op_restore_test.cpp b/tests/unittests/backup_tools/backup_tool/tools_op_restore_test.cpp index c8d9ee169..18e5d4564 100644 --- a/tests/unittests/backup_tools/backup_tool/tools_op_restore_test.cpp +++ b/tests/unittests/backup_tools/backup_tool/tools_op_restore_test.cpp @@ -13,14 +13,13 @@ * limitations under the License. */ -#include #include #include -#include - #include "b_resources/b_constants.h" #include "tools_op.h" +#include +#include namespace OHOS::FileManagement::Backup { using namespace std; @@ -53,6 +52,7 @@ HWTEST_F(ToolsOpRestoreTest, SUB_backup_tools_op_restore_0100, testing::ext::Tes GTEST_LOG_(INFO) << "ToolsOpRestoreTest-begin SUB_backup_tools_op_restore_0100"; try { GTEST_LOG_(INFO) << "ToolsOpRestoreTest-info"; + RestoreRegister(); map> mapArgToVal; string localCap = string(BConstants::GetSaBundleBackupToolDir(BConstants::DEFAULT_USER_ID).data()) + "/tmp"; vector path = {localCap.data()}; @@ -104,6 +104,7 @@ HWTEST_F(ToolsOpRestoreTest, SUB_backup_tools_op_restore_0200, testing::ext::Tes GTEST_LOG_(INFO) << "ToolsOpRestoreTest-begin SUB_backup_tools_op_restore_0200"; try { GTEST_LOG_(INFO) << "ToolsOpRestoreTest-The pathCapFile field is not contained."; + RestoreRegister(); map> mapArgToVal; vector bundles = {"com.example.app2backup"}; vector path = {"/data/backup/tmp"}; @@ -138,4 +139,118 @@ HWTEST_F(ToolsOpRestoreTest, SUB_backup_tools_op_restore_0200, testing::ext::Tes } GTEST_LOG_(INFO) << "ToolsOpRestoreTest-end SUB_backup_tools_op_restore_0200"; } + +/** + * @tc.number: SUB_backup_tools_op_restore_0300 + * @tc.name: SUB_backup_tools_op_restore_0300 + * @tc.desc: 测试 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(ToolsOpRestoreTest, SUB_backup_tools_op_restore_0300, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-begin SUB_backup_tools_op_restore_0300"; + try { + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-The pathCapFile field is not contained."; + RestoreRegister(); + map> mapArgToVal; + + vector bundles = {"com.example.app2backup"}; + vector path = {"/data/backup/tmp"}; + vector depMode = {"true"}; + mapArgToVal.insert(make_pair("pathCapFile", path)); + mapArgToVal.insert(make_pair("bundles", bundles)); + mapArgToVal.insert(make_pair("depMode", depMode)); + + vector curOp; + curOp.emplace_back("restore"); + auto tryOpSucceed = [&curOp](const ToolsOp &op) { return op.TryMatch(curOp); }; + auto &&opeartions = ToolsOp::GetAllOperations(); + auto matchedOp = find_if(opeartions.begin(), opeartions.end(), tryOpSucceed); + int ret = 0; + if (matchedOp != opeartions.end()) { + ret = matchedOp->Execute(mapArgToVal); + EXPECT_NE(ret, 0); + } + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-The bundles field is not contained."; + mapArgToVal.clear(); + mapArgToVal.insert(make_pair("pathCapFile", path)); + if (matchedOp != opeartions.end()) { + ret = matchedOp->Execute(mapArgToVal); + EXPECT_NE(ret, 0); + } + + mapArgToVal.clear(); + if (matchedOp != opeartions.end()) { + ret = matchedOp->Execute(mapArgToVal); + EXPECT_NE(ret, 0); + } + + vector path1 = {"/data/tmp/abdc"}; + mapArgToVal.insert(make_pair("pathCapFile", path1)); + if (matchedOp != opeartions.end()) { + ret = matchedOp->Execute(mapArgToVal); + EXPECT_NE(ret, 0); + } + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-an exception occurred by construction."; + } + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-end SUB_backup_tools_op_restore_0300"; +} + +/** + * @tc.number: SUB_backup_tools_op_restore_0400 + * @tc.name: SUB_backup_tools_op_restore_0400 + * @tc.desc: 测试 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(ToolsOpRestoreTest, SUB_backup_tools_op_restore_0400, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-begin SUB_backup_tools_op_restore_0400"; + try { + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-The pathCapFile field is not contained."; + RestoreRegister(); + map> mapArgToVal; + + vector bundles = {"com.example.app2backup"}; + vector path = {"/data/backup/tmp"}; + vector depMode = {"false"}; + mapArgToVal.insert(make_pair("depMode", depMode)); + mapArgToVal.insert(make_pair("bundles", bundles)); + + vector curOp; + curOp.emplace_back("restore"); + auto tryOpSucceed = [&curOp](const ToolsOp &op) { return op.TryMatch(curOp); }; + auto &&opeartions = ToolsOp::GetAllOperations(); + auto matchedOp = find_if(opeartions.begin(), opeartions.end(), tryOpSucceed); + int ret = 0; + if (matchedOp != opeartions.end()) { + ret = matchedOp->Execute(mapArgToVal); + EXPECT_NE(ret, 0); + } + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-The bundles field is not contained."; + mapArgToVal.clear(); + mapArgToVal.insert(make_pair("pathCapFile", path)); + if (matchedOp != opeartions.end()) { + ret = matchedOp->Execute(mapArgToVal); + EXPECT_NE(ret, 0); + } + + mapArgToVal.clear(); + if (matchedOp != opeartions.end()) { + ret = matchedOp->Execute(mapArgToVal); + EXPECT_NE(ret, 0); + } + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-an exception occurred by construction."; + } + GTEST_LOG_(INFO) << "ToolsOpRestoreTest-end SUB_backup_tools_op_restore_0400"; +} } // namespace OHOS::FileManagement::Backup \ No newline at end of file diff --git a/tests/unittests/backup_tools/backup_tool/tools_op_test.cpp b/tests/unittests/backup_tools/backup_tool/tools_op_test.cpp index 526295b50..20727cf2f 100644 --- a/tests/unittests/backup_tools/backup_tool/tools_op_test.cpp +++ b/tests/unittests/backup_tools/backup_tool/tools_op_test.cpp @@ -13,13 +13,12 @@ * limitations under the License. */ -#include #include #include -#include - #include "tools_op.h" +#include "tools_op_backup.h" +#include namespace OHOS::FileManagement::Backup { using namespace std; @@ -93,4 +92,61 @@ HWTEST_F(ToolsOpTest, SUB_backup_tools_op_0200, testing::ext::TestSize.Level1) } GTEST_LOG_(INFO) << "ToolsOpTest-end SUB_backup_tools_op_0200"; } + +/** + * @tc.number: SUB_backup_tools_op_0300 + * @tc.name: SUB_backup_tools_op_0300 + * @tc.desc: 测试GetName分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(ToolsOpTest, SUB_backup_tools_op_0300, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ToolsOpTest-begin SUB_backup_tools_op_0300"; + try { + GTEST_LOG_(INFO) << "ToolsOpTest-info"; + ToolsOp obj({ToolsOp::Descriptor { + .opName = {"abcd", "hijk"}, + .funcGenHelpMsg = nullptr, + .funcExec = nullptr, + }}); + obj.GetName(); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ToolsOpTest-an exception occurred by construction."; + } + GTEST_LOG_(INFO) << "ToolsOpTest-end SUB_backup_tools_op_0300"; +} + +/** + * @tc.number: SUB_backup_tools_op_0400 + * @tc.name: SUB_backup_tools_op_0400 + * @tc.desc: 测试Execute分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(ToolsOpTest, SUB_backup_tools_op_0400, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ToolsOpTest-begin SUB_backup_tools_op_0400"; + try { + BackUpRegister(); + map> mapArgToVal; + vector curOp; + curOp.emplace_back("test"); + auto tryOpSucceed = [&curOp](const ToolsOp &op) { return op.TryMatch(curOp); }; + auto &&opeartions = ToolsOp::GetAllOperations(); + auto matchedOp = find_if(opeartions.begin(), opeartions.end(), tryOpSucceed); + if (matchedOp != opeartions.end()) { + matchedOp->Execute(mapArgToVal); + } + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ToolsOpTest-an exception occurred by construction."; + } + GTEST_LOG_(INFO) << "ToolsOpTest-end SUB_backup_tools_op_0400"; +} } // namespace OHOS::FileManagement::Backup \ No newline at end of file -- Gitee