From 1345a0514e927310f69a547977225eb1d75c1cfe Mon Sep 17 00:00:00 2001 From: youmetme <321640253@qq.com> Date: Tue, 30 Sep 2025 11:20:33 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=92=8C=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ArgParseTools.h | 14 ++++++------- tests/CMakeLists.txt | 7 ++++++- tests/test_mult_arg.c | 14 +++++-------- tests/test_single_arg.c | 6 +++--- tests/test_subcommand.c | 3 +-- tests/test_unknow_command.c | 1 - tests/test_val.c | 41 ++++++++++++++++++++++++++++--------- 7 files changed, 53 insertions(+), 33 deletions(-) diff --git a/src/ArgParseTools.h b/src/ArgParseTools.h index df1bcde..82e0837 100644 --- a/src/ArgParseTools.h +++ b/src/ArgParseTools.h @@ -26,14 +26,14 @@ Command *createCommand(char *name, CommandGroup *createCommandGroup(char *name, char *help); // 创建命令组 CommandGroup *addCommandToGroup(CommandGroup *group, - Command *command); // 添加命令到命令组 + Command *command); // 添加命令到命令组 -CommandArgs *createCommandArgs(char *short_opt, - char *long_opt, - char *default_val, - char *help, - ArgParseCallback callback, - bool required, +CommandArgs *createCommandArgs(char *short_opt, + char *long_opt, + char *default_val, + char *help, + ArgParseCallback callback, + bool required, ArgParseValueType value_type); // 创建命令参数 /** diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5d87e04..db66b41 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -36,4 +36,9 @@ set_tests_properties(${PROJECT_NAME}unknow_command_arg PROPERTIES WILL_FAIL TRUE # 未知命令选项测试,预期打印该命令的帮助信息 add_executable(${PROJECT_NAME}val test_val.c) target_link_libraries(${PROJECT_NAME}val CArgParse) -add_test(${PROJECT_NAME}val ${PROJECT_NAME}val file1.txt file2.txt file3.txt -v -q) \ No newline at end of file +add_test(${PROJECT_NAME}val ${PROJECT_NAME}val file1.txt file2.txt file3.txt -v -q) + +# 未知命令选项测试,预期打印该命令的帮助信息 +add_executable(${PROJECT_NAME}required test_required.c) +target_link_libraries(${PROJECT_NAME}required CArgParse) +add_test(${PROJECT_NAME}required ${PROJECT_NAME}required file1.txt file2.txt file3.txt -v -f d) \ No newline at end of file diff --git a/tests/test_mult_arg.c b/tests/test_mult_arg.c index d521abb..6b1cfdf 100644 --- a/tests/test_mult_arg.c +++ b/tests/test_mult_arg.c @@ -10,12 +10,11 @@ int main(int argc, char *argv[]) { const char *testv[3] = {"testpackge1", "testpackge2", "testpackge3"}; - // Test -p - char *val = argParseGetCurArg(argparse, "-p"); + char *val = argParseGetCurArg(argparse, "-p"); - int len = 0; - char **vals = argParseGetCurArgList(argparse, "-p", &len); + int len = 0; + char **vals = argParseGetCurArgList(argparse, "-p", &len); for (int i = 0; i < len; i++) { printf("-p Value: %s\n", vals[i]); @@ -27,18 +26,15 @@ int main(int argc, char *argv[]) { printf("-i Value: %s\n", val_i); assert(strcmp(val_i, "www.test.com") == 0); - - // Test -f - len = 0; + len = 0; const char *testf[2] = {"file1.txt", "file2.txt"}; - char **val_f = argParseGetCurArgList(argparse, "-f", &len); + char **val_f = argParseGetCurArgList(argparse, "-f", &len); for (int i = 0; i < len; i++) { printf("-f Value: %s\n", val_f[i]); assert(strcmp(val_f[i], testf[i]) == 0); } - argParseFree(argparse); return 0; diff --git a/tests/test_single_arg.c b/tests/test_single_arg.c index b99f859..144b414 100644 --- a/tests/test_single_arg.c +++ b/tests/test_single_arg.c @@ -10,10 +10,10 @@ int main(int argc, char *argv[]) { const char *testv[3] = {"testpackge1", "testpackge2", "testpackge3"}; - char *val = argParseGetCurArg(argparse, "-p"); + char *val = argParseGetCurArg(argparse, "-p"); - int len = 0; - char **vals = argParseGetCurArgList(argparse, "-p", &len); + int len = 0; + char **vals = argParseGetCurArgList(argparse, "-p", &len); for (int i = 0; i < len; i++) { printf("-p Value: %s\n", vals[i]); diff --git a/tests/test_subcommand.c b/tests/test_subcommand.c index 7b877cd..6893111 100644 --- a/tests/test_subcommand.c +++ b/tests/test_subcommand.c @@ -8,12 +8,11 @@ int main(int argc, char *argv[]) { argParseParse(argparse, argc, argv); - char *command_name = argParseGetCurCommandName(argparse); printf("command name: %s\n", command_name); assert(strcmp(command_name, "tools") == 0); - char * val = argParseGetCurArg(argparse, "-t"); + char *val = argParseGetCurArg(argparse, "-t"); printf("tools -t: %s\n", val); argParseFree(argparse); diff --git a/tests/test_unknow_command.c b/tests/test_unknow_command.c index 98da073..4a30c85 100644 --- a/tests/test_unknow_command.c +++ b/tests/test_unknow_command.c @@ -7,7 +7,6 @@ int main(int argc, char *argv[]) { argParseParse(argparse, argc, argv); - argParseFree(argparse); return 0; diff --git a/tests/test_val.c b/tests/test_val.c index eb4ca4b..9a2a78f 100644 --- a/tests/test_val.c +++ b/tests/test_val.c @@ -18,12 +18,23 @@ ArgParse *initArgParse() { NULL, false, ArgParseNOVALUE); - argParseAddGlobalArg( - argparse, "-q", "--quiet", "Quiet mode", NULL, NULL, false, ArgParseNOVALUE); + argParseAddGlobalArg(argparse, + "-q", + "--quiet", + "Quiet mode", + NULL, + NULL, + false, + ArgParseNOVALUE); // add arguments - command = argParseAddCommand( - argparse, "install", "Install the package", NULL, NULL, NULL, ArgParseNOVALUE); + command = argParseAddCommand(argparse, + "install", + "Install the package", + NULL, + NULL, + NULL, + ArgParseNOVALUE); argParseAddArg(command, "-i", "--index", @@ -49,8 +60,13 @@ ArgParse *initArgParse() { false, ArgParseMULTIVALUE); - sub_command = argParseAddSubCommand( - command, "tools", "Install tools", NULL, NULL, NULL, ArgParseMULTIVALUE); + sub_command = argParseAddSubCommand(command, + "tools", + "Install tools", + NULL, + NULL, + NULL, + ArgParseMULTIVALUE); argParseAddArg(sub_command, "-t", @@ -60,8 +76,13 @@ ArgParse *initArgParse() { NULL, true, ArgParseMULTIVALUE); - sub_command = argParseAddSubCommand( - command, "tools_sub", "Install tools", NULL, NULL, NULL, ArgParseMULTIVALUE); + sub_command = argParseAddSubCommand(command, + "tools_sub", + "Install tools", + NULL, + NULL, + NULL, + ArgParseMULTIVALUE); argParseAddArg(sub_command, "-s", @@ -101,8 +122,8 @@ int main(int argc, char *argv[]) { printf("val: %s\n", val); } - int len = 0; - char **vals = argParseGetValList(argparse, &len); + int len = 0; + char **vals = argParseGetValList(argparse, &len); char *test_val[3] = {"file1.txt", "file2.txt", "file3.txt"};