0.3.2版本 #4
| @@ -26,14 +26,14 @@ Command *createCommand(char             *name, | |||||||
| CommandGroup *createCommandGroup(char *name, char *help); // 创建命令组 | CommandGroup *createCommandGroup(char *name, char *help); // 创建命令组 | ||||||
|  |  | ||||||
| CommandGroup *addCommandToGroup(CommandGroup *group, | CommandGroup *addCommandToGroup(CommandGroup *group, | ||||||
|                                 Command *command); // 添加命令到命令组 |                                 Command      *command); // 添加命令到命令组 | ||||||
|  |  | ||||||
| CommandArgs *createCommandArgs(char            *short_opt, | CommandArgs *createCommandArgs(char             *short_opt, | ||||||
|                                char            *long_opt, |                                char             *long_opt, | ||||||
|                                char            *default_val, |                                char             *default_val, | ||||||
|                                char            *help, |                                char             *help, | ||||||
|                                ArgParseCallback callback, |                                ArgParseCallback  callback, | ||||||
|                                bool             required, |                                bool              required, | ||||||
|                                ArgParseValueType value_type); // 创建命令参数 |                                ArgParseValueType value_type); // 创建命令参数 | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
| @@ -37,3 +37,8 @@ set_tests_properties(${PROJECT_NAME}unknow_command_arg PROPERTIES WILL_FAIL TRUE | |||||||
| add_executable(${PROJECT_NAME}val test_val.c) | add_executable(${PROJECT_NAME}val test_val.c) | ||||||
| target_link_libraries(${PROJECT_NAME}val CArgParse) | target_link_libraries(${PROJECT_NAME}val CArgParse) | ||||||
| add_test(${PROJECT_NAME}val ${PROJECT_NAME}val file1.txt file2.txt file3.txt -v -q) | 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) | ||||||
| @@ -10,12 +10,11 @@ int main(int argc, char *argv[]) { | |||||||
|  |  | ||||||
|     const char *testv[3] = {"testpackge1", "testpackge2", "testpackge3"}; |     const char *testv[3] = {"testpackge1", "testpackge2", "testpackge3"}; | ||||||
|  |  | ||||||
|  |  | ||||||
|     // Test -p |     // Test -p | ||||||
|     char *val = argParseGetCurArg(argparse, "-p"); |     char *val            = argParseGetCurArg(argparse, "-p"); | ||||||
|  |  | ||||||
|     int len = 0; |     int    len           = 0; | ||||||
|     char **vals = argParseGetCurArgList(argparse, "-p", &len); |     char **vals          = argParseGetCurArgList(argparse, "-p", &len); | ||||||
|  |  | ||||||
|     for (int i = 0; i < len; i++) { |     for (int i = 0; i < len; i++) { | ||||||
|         printf("-p Value: %s\n", vals[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); |     printf("-i Value: %s\n", val_i); | ||||||
|     assert(strcmp(val_i, "www.test.com") == 0); |     assert(strcmp(val_i, "www.test.com") == 0); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     // Test -f |     // Test -f | ||||||
|     len = 0; |     len                  = 0; | ||||||
|     const char *testf[2] = {"file1.txt", "file2.txt"}; |     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++) { |     for (int i = 0; i < len; i++) { | ||||||
|         printf("-f Value: %s\n", val_f[i]); |         printf("-f Value: %s\n", val_f[i]); | ||||||
|         assert(strcmp(val_f[i], testf[i]) == 0); |         assert(strcmp(val_f[i], testf[i]) == 0); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     argParseFree(argparse); |     argParseFree(argparse); | ||||||
|  |  | ||||||
|     return 0; |     return 0; | ||||||
|   | |||||||
| @@ -10,10 +10,10 @@ int main(int argc, char *argv[]) { | |||||||
|  |  | ||||||
|     const char *testv[3] = {"testpackge1", "testpackge2", "testpackge3"}; |     const char *testv[3] = {"testpackge1", "testpackge2", "testpackge3"}; | ||||||
|  |  | ||||||
|     char *val = argParseGetCurArg(argparse, "-p"); |     char *val            = argParseGetCurArg(argparse, "-p"); | ||||||
|  |  | ||||||
|     int len = 0; |     int    len           = 0; | ||||||
|     char **vals = argParseGetCurArgList(argparse, "-p", &len); |     char **vals          = argParseGetCurArgList(argparse, "-p", &len); | ||||||
|  |  | ||||||
|     for (int i = 0; i < len; i++) { |     for (int i = 0; i < len; i++) { | ||||||
|         printf("-p Value: %s\n", vals[i]); |         printf("-p Value: %s\n", vals[i]); | ||||||
|   | |||||||
| @@ -8,12 +8,11 @@ int main(int argc, char *argv[]) { | |||||||
|  |  | ||||||
|     argParseParse(argparse, argc, argv); |     argParseParse(argparse, argc, argv); | ||||||
|  |  | ||||||
|      |  | ||||||
|     char *command_name = argParseGetCurCommandName(argparse); |     char *command_name = argParseGetCurCommandName(argparse); | ||||||
|     printf("command name: %s\n", command_name); |     printf("command name: %s\n", command_name); | ||||||
|     assert(strcmp(command_name, "tools") == 0); |     assert(strcmp(command_name, "tools") == 0); | ||||||
|  |  | ||||||
|     char * val = argParseGetCurArg(argparse, "-t"); |     char *val = argParseGetCurArg(argparse, "-t"); | ||||||
|     printf("tools -t: %s\n", val); |     printf("tools -t: %s\n", val); | ||||||
|  |  | ||||||
|     argParseFree(argparse); |     argParseFree(argparse); | ||||||
|   | |||||||
| @@ -7,7 +7,6 @@ int main(int argc, char *argv[]) { | |||||||
|  |  | ||||||
|     argParseParse(argparse, argc, argv); |     argParseParse(argparse, argc, argv); | ||||||
|  |  | ||||||
|  |  | ||||||
|     argParseFree(argparse); |     argParseFree(argparse); | ||||||
|  |  | ||||||
|     return 0; |     return 0; | ||||||
|   | |||||||
| @@ -18,12 +18,23 @@ ArgParse *initArgParse() { | |||||||
|                          NULL, |                          NULL, | ||||||
|                          false, |                          false, | ||||||
|                          ArgParseNOVALUE); |                          ArgParseNOVALUE); | ||||||
|     argParseAddGlobalArg( |     argParseAddGlobalArg(argparse, | ||||||
|         argparse, "-q", "--quiet", "Quiet mode", NULL, NULL, false, ArgParseNOVALUE); |                          "-q", | ||||||
|  |                          "--quiet", | ||||||
|  |                          "Quiet mode", | ||||||
|  |                          NULL, | ||||||
|  |                          NULL, | ||||||
|  |                          false, | ||||||
|  |                          ArgParseNOVALUE); | ||||||
|  |  | ||||||
|     // add arguments |     // add arguments | ||||||
|     command = argParseAddCommand( |     command = argParseAddCommand(argparse, | ||||||
|         argparse, "install", "Install the package", NULL, NULL, NULL, ArgParseNOVALUE); |                                  "install", | ||||||
|  |                                  "Install the package", | ||||||
|  |                                  NULL, | ||||||
|  |                                  NULL, | ||||||
|  |                                  NULL, | ||||||
|  |                                  ArgParseNOVALUE); | ||||||
|     argParseAddArg(command, |     argParseAddArg(command, | ||||||
|                    "-i", |                    "-i", | ||||||
|                    "--index", |                    "--index", | ||||||
| @@ -49,8 +60,13 @@ ArgParse *initArgParse() { | |||||||
|                    false, |                    false, | ||||||
|                    ArgParseMULTIVALUE); |                    ArgParseMULTIVALUE); | ||||||
|  |  | ||||||
|     sub_command = argParseAddSubCommand( |     sub_command = argParseAddSubCommand(command, | ||||||
|         command, "tools", "Install tools", NULL, NULL, NULL, ArgParseMULTIVALUE); |                                         "tools", | ||||||
|  |                                         "Install tools", | ||||||
|  |                                         NULL, | ||||||
|  |                                         NULL, | ||||||
|  |                                         NULL, | ||||||
|  |                                         ArgParseMULTIVALUE); | ||||||
|  |  | ||||||
|     argParseAddArg(sub_command, |     argParseAddArg(sub_command, | ||||||
|                    "-t", |                    "-t", | ||||||
| @@ -60,8 +76,13 @@ ArgParse *initArgParse() { | |||||||
|                    NULL, |                    NULL, | ||||||
|                    true, |                    true, | ||||||
|                    ArgParseMULTIVALUE); |                    ArgParseMULTIVALUE); | ||||||
|     sub_command = argParseAddSubCommand( |     sub_command = argParseAddSubCommand(command, | ||||||
|         command, "tools_sub", "Install tools", NULL, NULL, NULL, ArgParseMULTIVALUE); |                                         "tools_sub", | ||||||
|  |                                         "Install tools", | ||||||
|  |                                         NULL, | ||||||
|  |                                         NULL, | ||||||
|  |                                         NULL, | ||||||
|  |                                         ArgParseMULTIVALUE); | ||||||
|  |  | ||||||
|     argParseAddArg(sub_command, |     argParseAddArg(sub_command, | ||||||
|                    "-s", |                    "-s", | ||||||
| @@ -101,8 +122,8 @@ int main(int argc, char *argv[]) { | |||||||
|         printf("val: %s\n", val); |         printf("val: %s\n", val); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     int    len  = 0; |     int    len        = 0; | ||||||
|     char **vals = argParseGetValList(argparse, &len); |     char **vals       = argParseGetValList(argparse, &len); | ||||||
|  |  | ||||||
|     char *test_val[3] = {"file1.txt", "file2.txt", "file3.txt"}; |     char *test_val[3] = {"file1.txt", "file2.txt", "file3.txt"}; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user