fix: 修复必填参数未做检测
This commit is contained in:
144
tests/test_required.c
Normal file
144
tests/test_required.c
Normal file
@@ -0,0 +1,144 @@
|
||||
#include "ArgParse.h"
|
||||
#include <assert.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
ArgParse *initArgParse() {
|
||||
ArgParse *argparse = argParseInit("测试程序", ArgParseNOVALUE);
|
||||
Command *command = NULL;
|
||||
Command *sub_command = NULL;
|
||||
|
||||
// add global arguments
|
||||
argParseAddGlobalArg(argparse,
|
||||
"-v",
|
||||
"--version",
|
||||
"Show version",
|
||||
NULL,
|
||||
NULL,
|
||||
false,
|
||||
ArgParseNOVALUE);
|
||||
argParseAddGlobalArg(argparse,
|
||||
"-f",
|
||||
"--file",
|
||||
"File name",
|
||||
NULL,
|
||||
NULL,
|
||||
true,
|
||||
ArgParseNOVALUE);
|
||||
|
||||
// add arguments
|
||||
command = argParseAddCommand(argparse,
|
||||
"install",
|
||||
"Install the package",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
ArgParseNOVALUE);
|
||||
argParseAddArg(command,
|
||||
"-i",
|
||||
"--index",
|
||||
"Index URL",
|
||||
"https://example.com",
|
||||
NULL,
|
||||
false,
|
||||
ArgParseSINGLEVALUE);
|
||||
argParseAddArg(command,
|
||||
"-f",
|
||||
"--file",
|
||||
"Package file",
|
||||
"package.json",
|
||||
NULL,
|
||||
true,
|
||||
ArgParseMULTIVALUE);
|
||||
argParseAddArg(command,
|
||||
"-p",
|
||||
"--package",
|
||||
"Package file",
|
||||
"package.json",
|
||||
NULL,
|
||||
false,
|
||||
ArgParseMULTIVALUE);
|
||||
|
||||
sub_command = argParseAddSubCommand(command,
|
||||
"tools",
|
||||
"Install tools",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
ArgParseMULTIVALUE);
|
||||
|
||||
argParseAddArg(sub_command,
|
||||
"-t",
|
||||
"--tool",
|
||||
"Tool name",
|
||||
"Tool name",
|
||||
NULL,
|
||||
true,
|
||||
ArgParseMULTIVALUE);
|
||||
sub_command = argParseAddSubCommand(command,
|
||||
"tools_sub",
|
||||
"Install tools",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
ArgParseMULTIVALUE);
|
||||
|
||||
argParseAddArg(sub_command,
|
||||
"-s",
|
||||
"--source",
|
||||
"test_source",
|
||||
"tools subcommand test",
|
||||
NULL,
|
||||
true,
|
||||
ArgParseMULTIVALUE);
|
||||
|
||||
command = argParseAddCommand(argparse,
|
||||
"uninstall",
|
||||
"Uninstall the package",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
ArgParseSINGLEVALUE);
|
||||
argParseAddArg(command,
|
||||
"-p",
|
||||
"--package",
|
||||
"Package name",
|
||||
"Package name",
|
||||
NULL,
|
||||
true,
|
||||
ArgParseMULTIVALUE);
|
||||
|
||||
return argparse;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
ArgParse *argparse = initArgParse();
|
||||
|
||||
argParseParse(argparse, argc, argv);
|
||||
|
||||
char *val = argParseGetVal(argparse);
|
||||
if (val) {
|
||||
printf("val: %s\n", val);
|
||||
}
|
||||
|
||||
// int len = 0;
|
||||
// char **vals = argParseGetValList(argparse, &len);
|
||||
|
||||
// char *test_val[3] = {"file1.txt", "file2.txt", "file3.txt"};
|
||||
|
||||
// if (vals) {
|
||||
// for (int i = 0; i < len; i++) {
|
||||
// printf("vals: %s\n", vals[i]);
|
||||
// assert(strcmp(vals[i], test_val[i]) == 0);
|
||||
// }
|
||||
// }
|
||||
|
||||
// assert(argParseCheckGlobalTriggered(argparse, "-v"));
|
||||
// assert(argParseCheckGlobalTriggered(argparse, "-f"));
|
||||
|
||||
argParseFree(argparse);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user