diff --git a/tests/unittests/backup_tools/BUILD.gn b/tests/unittests/backup_tools/BUILD.gn index 636eef0039b303972f34804596889318973ca3c5..ccd7377edfa4c34af9fefb514f04c6e8d50fd9e9 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 c8d9ee169f4b7cd43990d7d3bce13e3dbc9696c6..18e5d45644cadf15da2e6bb2fe895b5978550c73 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 526295b505905d79c53a93279dc0682e19a80fee..20727cf2f3a5ba813fde5773eb5e9cea66c93236 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