commit 45c22aac382e7f3c9b57a2ff9009a72579d092ce
parent 72a8dd5280ccc1ff2c312003dae8bcd1cce93974
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Mon, 20 Mar 2017 15:15:26 +0100
Make exclusive the -p, -r and -g options
Diffstat:
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/solstice_args.c b/src/solstice_args.c
@@ -551,7 +551,19 @@ solstice_args_init(struct solstice_args* args, const int argc, char** argv)
}
if(args->dump_format != SOLSTICE_ARGS_DUMP_NONE && args->rendering) {
- fprintf(stderr, "The '-g' and '-r' options are exclusive\n");
+ fprintf(stderr, "The '-g' and '-r' options are exclusives.\n");
+ res = RES_BAD_ARG;
+ goto error;
+ }
+
+ if(args->dump_format != SOLSTICE_ARGS_DUMP_NONE && args->dump_paths) {
+ fprintf(stderr, "The '-g' and '-p' options are exclusives.\n");
+ res = RES_BAD_ARG;
+ goto error;
+ }
+
+ if(args->dump_paths && args->rendering) {
+ fprintf(stderr, "The '-p' and '-r' options are exclusives.\n");
res = RES_BAD_ARG;
goto error;
}
diff --git a/src/test_solstice_args.c b/src/test_solstice_args.c
@@ -565,6 +565,14 @@ test_dump(void)
cmd = cmd_create(0, "test", "-g", "format=obj:split", NULL);
CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG);
cmd_delete(cmd);
+
+ cmd = cmd_create(0, "test", "-g", "format=obj", "-r", "up=0,0,1", NULL);
+ CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG);
+ cmd_delete(cmd);
+
+ cmd = cmd_create(0, "test", "-g", "format=obj", "-p", "default", NULL);
+ CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG);
+ cmd_delete(cmd);
}
static void
@@ -650,6 +658,16 @@ test_dump_paths(void)
cmd = cmd_create(0, "test", "-D", "0,90", "-p", NULL);
CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG);
cmd_delete(cmd);
+
+ cmd = cmd_create(0, "test", "-D", "0,90", "-p", "default:srlen=1:irlen=2:",
+ "-r", "up=0,0,1", NULL);
+ CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG);
+ cmd_delete(cmd);
+
+ cmd = cmd_create(0, "test", "-D", "0,90", "-p", "default:srlen=1:irlen=2:",
+ "-g", "format=obj", NULL);
+ CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG);
+ cmd_delete(cmd);
}
int