diff --git a/ohos_packing_tool/frameworks/src/shell_command.cpp b/ohos_packing_tool/frameworks/src/shell_command.cpp index f2ddea80790a53c3592c9f3bbae7eb21e5887238..d82478e58e1e06d3b411735666b653d87d3c7d7c 100644 --- a/ohos_packing_tool/frameworks/src/shell_command.cpp +++ b/ohos_packing_tool/frameworks/src/shell_command.cpp @@ -121,12 +121,12 @@ int ShellCommand::RunAsHelpCommand() return ERR_OK; } -int ShellCommand::RunAsPackCommand() +int32_t ShellCommand::RunAsPackCommand() { std::cout << "RunAsPackCommand " << std::endl; std::unique_ptr packager = getPackager(); if (packager != nullptr) { - packager->MakePackage(); + return packager->MakePackage(); } return ERR_OK; } diff --git a/packing_tool/frameworks/include/packager.h b/packing_tool/frameworks/include/packager.h index 791288583f15d3d458d271791bdbc47016d4e5ca..97aee4d4b56c9e2625abeca73dae10f04b8f9263 100644 --- a/packing_tool/frameworks/include/packager.h +++ b/packing_tool/frameworks/include/packager.h @@ -51,7 +51,7 @@ public: Packager(const std::map ¶meterMap, std::string &resultReceiver); virtual ~Packager(); - std::string MakePackage(); + int32_t MakePackage(); virtual int32_t InitAllowedParam() = 0; virtual int32_t PreProcess() = 0; diff --git a/packing_tool/frameworks/include/shell_command.h b/packing_tool/frameworks/include/shell_command.h index 49802f6619daeda991def39bd8fcdb3facb72793..5178f36ce6f15fd722c39c5e2f13f1902a9be96e 100644 --- a/packing_tool/frameworks/include/shell_command.h +++ b/packing_tool/frameworks/include/shell_command.h @@ -45,7 +45,7 @@ public: int32_t ParseParam(); int32_t OnCommand(); - std::string ExecCommand(); + std::string ExecCommand(int32_t& ret); int32_t CreateCommandMap(); protected: diff --git a/packing_tool/frameworks/src/main.cpp b/packing_tool/frameworks/src/main.cpp index e04fc26d680f9349225ba27b06932e18fb64c6c7..071fb2c3342454d52f8392ee98f6942d549fa83d 100644 --- a/packing_tool/frameworks/src/main.cpp +++ b/packing_tool/frameworks/src/main.cpp @@ -20,6 +20,7 @@ int main(int argc, char *argv[]) { OHOS::AppPackingTool::ShellCommand cmd(argc, argv, OHOS::AppPackingTool::TOOL_NAME); - std::cout << cmd.ExecCommand(); - quick_exit(0); + int32_t ret = 0; + std::cout << cmd.ExecCommand(ret); + quick_exit(ret); } \ No newline at end of file diff --git a/packing_tool/frameworks/src/packager.cpp b/packing_tool/frameworks/src/packager.cpp index 0aa77e8c49d0f908fc6aeee08afc74e6c1088438..a55d72d238b2299f6113b1afce2eaa3b31d2801c 100644 --- a/packing_tool/frameworks/src/packager.cpp +++ b/packing_tool/frameworks/src/packager.cpp @@ -40,28 +40,32 @@ Packager::Packager(const std::map ¶meterMap, std:: Packager::~Packager() {} -std::string Packager::MakePackage() +int32_t Packager::MakePackage() { - if (InitAllowedParam() != ERR_OK) { + int32_t ret = ERR_OK; + ret = InitAllowedParam(); + if (ret != ERR_OK) { LOGE("InitAllowedParam err"); - return ""; + return ret; } - if (PreProcess() != ERR_OK) { + ret = PreProcess(); + if (ret != ERR_OK) { LOGE("PreProcess err"); - return ""; + return ret; } - - if (Process() != ERR_OK) { + ret = Process(); + if (ret != ERR_OK) { LOGE("Process err"); - return ""; + return ret; } - if (PostProcess() != ERR_OK) { + ret = PostProcess(); + if (ret != ERR_OK) { LOGE("PostProcess err"); - return ""; + return ret; } - return "OHOS::ERR_OK"; + return ret; } int32_t Packager::PreProcess() diff --git a/packing_tool/frameworks/src/shell_command.cpp b/packing_tool/frameworks/src/shell_command.cpp index bcc03795815a701c72b39b67dbf736ebfe16b033..3ffdb920230e7edc7c5444cf7a061fa308b55a05 100644 --- a/packing_tool/frameworks/src/shell_command.cpp +++ b/packing_tool/frameworks/src/shell_command.cpp @@ -94,29 +94,34 @@ int32_t ShellCommand::OnCommand() if (respond == nullptr) { resultReceiver_.append("not support command: ").append(cmd_).append("\n"); respond = commandMap_[Constants::CMD_HELP]; + respond(); + return ERR_INVALID_VALUE; } - respond(); - return ERR_OK; + return respond(); } -std::string ShellCommand::ExecCommand() +std::string ShellCommand::ExecCommand(int32_t& ret) { int32_t result = CreateCommandMap(); if (result != ERR_OK) { resultReceiver_.append("failed to create command map.\n"); + ret = ERR_INVALID_VALUE; return resultReceiver_; } result = ParseParam(); if (result != ERR_OK) { resultReceiver_.append("failed to init parameter map.\n"); + ret = ERR_INVALID_VALUE; return resultReceiver_; } result = OnCommand(); if (result != ERR_OK) { resultReceiver_.append("failed to execute your command.\n"); + ret = ERR_INVALID_VALUE; return resultReceiver_; } + ret = ERR_OK; return resultReceiver_; } @@ -131,9 +136,9 @@ int32_t ShellCommand::RunAsPackCommand() LOGI("RunAsPackCommand "); std::unique_ptr packager = getPackager(); if (packager != nullptr) { - packager->MakePackage(); + return packager->MakePackage(); } - return ERR_OK; + return ERR_INVALID_VALUE; } int32_t ShellCommand::RunAsUnpackCommand() diff --git a/packing_tool/frameworks/test/unittest/packager_test/packager_test.cpp b/packing_tool/frameworks/test/unittest/packager_test/packager_test.cpp index cf0babb88e47852701c66998ec5fd5d72d48dbe1..fd97fcd0d19dcbe636d7bf9109a12a4d3765b101 100644 --- a/packing_tool/frameworks/test/unittest/packager_test/packager_test.cpp +++ b/packing_tool/frameworks/test/unittest/packager_test/packager_test.cpp @@ -314,7 +314,7 @@ HWTEST_F(PackagerTest, MakePackage_1300, Function | MediumTest | Level1) std::map parameterMap; OHOS::AppPackingTool::HapPackager packager(parameterMap, resultReceiver); - EXPECT_EQ(packager.MakePackage(), ""); + EXPECT_EQ(packager.MakePackage(), AppPackingTool::ERR_INVALID_VALUE); } /* diff --git a/packing_tool/frameworks/test/unittest/shell_command_test/shell_command_test.cpp b/packing_tool/frameworks/test/unittest/shell_command_test/shell_command_test.cpp index be54810fd6a37117ec7110aed6f4640a6777575b..2665ed6f649430f8d93086c9d04820d9dc0496ac 100644 --- a/packing_tool/frameworks/test/unittest/shell_command_test/shell_command_test.cpp +++ b/packing_tool/frameworks/test/unittest/shell_command_test/shell_command_test.cpp @@ -162,7 +162,8 @@ HWTEST_F(ShellCommandTest, ExecCommand_0400, Function | MediumTest | Level1) }; OHOS::AppPackingTool::ShellCommand shellcmd(argc, const_cast(argv), OHOS::AppPackingTool::TOOL_NAME); - std::string resultReceiver = shellcmd.ExecCommand(); + int32_t ret = AppPackingTool::ERR_OK; + std::string resultReceiver = shellcmd.ExecCommand(ret); EXPECT_FALSE(resultReceiver.empty()); }