diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/etc/t-argparse.conf | 42 | ||||
-rw-r--r-- | tests/t-argparse.c | 5 | ||||
-rw-r--r-- | tests/t-argparse.conf | 3 |
3 files changed, 36 insertions, 14 deletions
diff --git a/tests/etc/t-argparse.conf b/tests/etc/t-argparse.conf index 87bff72..0852e71 100644 --- a/tests/etc/t-argparse.conf +++ b/tests/etc/t-argparse.conf @@ -3,33 +3,51 @@ # Options applied to all user's config files #verbose -#[user :staff] -# These option are applied to all users the group staff up until the -# next [user statement] +[group :staff] +# These option are applied to all users of the group staff up until +# the next [group] or [user] statement. -#[+force] +[+force] +# All following option are forced and thus ignored when set in user +# config files. Valid until the next [user] statement. Take care +# that there are often "no-", "disable-", or "enable-" versions of +# options; these should be explictly marked as ignored so that they +# can't be used to override the force attribute. -#[ignore] +[ignore] # The compliance is set immutable for these users verbose +# The next shall raise an error due to the garpage at the end. +#<off>[+ignore] fooo + + +#[+ignore-all] +# All options are ignored. + + +[-ignore] # Comment at line end +# Options wich shall not be ignored. */ #no-verbose -# (parsing does not stop for a group) -#[user wk] -# Options for user wk +[user john ] +# Options for user john -# Change the immutable flag back to mutable. -#[] compliance gnupg +# Change the immutable attribute back to mutable. +[-force] +#compliance gnupg -# Default key for wk +# Default key for user john my-option 42 # Parsing stops for user WK here. -#[user *] +[group * ] +# Options for all group which have no specific group sections above + +[user *] # Options for all users which have no specific user sections above # The default algorithm for new keys is set to this. diff --git a/tests/t-argparse.c b/tests/t-argparse.c index b2b6e51..4719819 100644 --- a/tests/t-argparse.c +++ b/tests/t-argparse.c @@ -88,6 +88,7 @@ main (int argc, char **argv) ) }; int i; const char *srcdir; + int any_warn = 0; gpgrt_set_strusage (my_strusage); srcdir = getenv ("srcdir"); @@ -120,7 +121,7 @@ main (int argc, char **argv) case 'c': opt.crf = pargs.r_type? pargs.r.ret_str:"a.crf"; break; case 'm': opt.myopt = pargs.r_type? pargs.r.ret_int : 1; break; case 500: opt.a_long_one++; break; - default : pargs.err = ARGPARSE_PRINT_ERROR; break; + default : pargs.err = ARGPARSE_PRINT_WARNING; any_warn = 1; break; } } for (i=0; i < argc; i++ ) @@ -148,5 +149,5 @@ main (int argc, char **argv) (void)fail; (void)die; - return 0; + return !!any_warn; } diff --git a/tests/t-argparse.conf b/tests/t-argparse.conf index 0bbdd3e..e2c96e2 100644 --- a/tests/t-argparse.conf +++ b/tests/t-argparse.conf @@ -3,6 +3,9 @@ # Options applied to all user's config files echo +# The next should be flagged as unexpected meta command. +#<off>[ignore] + my-option 4711 verbose |