diff options
| author | Andre Weissflog <floooh@gmail.com> | 2023-09-18 16:22:56 +0200 |
|---|---|---|
| committer | Andre Weissflog <floooh@gmail.com> | 2023-09-18 16:22:56 +0200 |
| commit | 737c263ff8fc522b54862a55dabfd3e2d6a27fec (patch) | |
| tree | 06a0bdfd10904f9dc636152d24484afbf2165ca6 /tests/functional | |
| parent | 751fc4c14a0cb80130ad8014f965ac62c7e89d34 (diff) | |
sokol_args.h: support key-only args (see documentation for details) fixes #876
Diffstat (limited to 'tests/functional')
| -rw-r--r-- | tests/functional/sokol_args_test.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/functional/sokol_args_test.c b/tests/functional/sokol_args_test.c index 097395f2..e2928d10 100644 --- a/tests/functional/sokol_args_test.c +++ b/tests/functional/sokol_args_test.c @@ -252,3 +252,51 @@ UTEST(sokol_args, escape_sequence) { TSTR(sargs_value_at(2), "val2\tval3"); sargs_shutdown(); } + +static char* argv_11[] = { "exe_name", "kvp0 kvp1", "kvp2 = val2", "kvp3", "kvp4=val4" }; +UTEST(sokol_args, key_only_args) { + sargs_setup(&(sargs_desc){ + .argc = NUM_ARGS(argv_11), + .argv = argv_11, + }); + T(sargs_isvalid()); + T(sargs_num_args() == 5); + T(0 == sargs_find("kvp0")); + T(1 == sargs_find("kvp1")); + T(2 == sargs_find("kvp2")); + T(3 == sargs_find("kvp3")); + T(4 == sargs_find("kvp4")) + T(-1 == sargs_find("kvp5")); + T(-1 == sargs_find("val2")); + T(-1 == sargs_find("val4")); + T(sargs_exists("kvp0")); + T(sargs_exists("kvp1")); + T(sargs_exists("kvp2")); + T(sargs_exists("kvp3")); + T(sargs_exists("kvp4")); + T(!sargs_exists("kvp5")); + TSTR(sargs_value("kvp0"), ""); + TSTR(sargs_value("kvp1"), ""); + TSTR(sargs_value("kvp2"), "val2"); + TSTR(sargs_value("kvp3"), ""); + TSTR(sargs_value("kvp4"), "val4"); + TSTR(sargs_value("kvp5"), ""); + TSTR(sargs_value_def("kvp0", "bla0"), "bla0"); + TSTR(sargs_value_def("kvp1", "bla1"), "bla1"); + TSTR(sargs_value_def("kvp2", "bla2"), "val2"); + TSTR(sargs_value_def("kvp3", "bla3"), "bla3"); + TSTR(sargs_value_def("kvp4", "bla4"), "val4"); + TSTR(sargs_value_def("kvp5", "bla5"), "bla5"); + TSTR(sargs_key_at(0), "kvp0"); + TSTR(sargs_key_at(1), "kvp1"); + TSTR(sargs_key_at(2), "kvp2"); + TSTR(sargs_key_at(3), "kvp3"); + TSTR(sargs_key_at(4), "kvp4"); + TSTR(sargs_key_at(5), ""); + TSTR(sargs_value_at(0), ""); + TSTR(sargs_value_at(1), ""); + TSTR(sargs_value_at(2), "val2"); + TSTR(sargs_value_at(3), ""); + TSTR(sargs_value_at(4), "val4"); + TSTR(sargs_value_at(5), ""); +} |