report syntax error in value instead type error
This commit is contained in:
parent
87c7fea4ac
commit
3be0d38d73
5 changed files with 14 additions and 8 deletions
|
|
@ -45,7 +45,7 @@ NOBUG_DEFINE_FLAG_PARENT (config_file, config_all);
|
|||
|
||||
LUMIERA_ERROR_DEFINE (CONFIG_SYNTAX, "syntax error in configfile");
|
||||
LUMIERA_ERROR_DEFINE (CONFIG_SYNTAX_KEY, "syntax error in key");
|
||||
LUMIERA_ERROR_DEFINE (CONFIG_TYPE, "value has wrong type");
|
||||
LUMIERA_ERROR_DEFINE (CONFIG_SYNTAX_VALUE, "syntax error in value");
|
||||
LUMIERA_ERROR_DEFINE (CONFIG_NO_ENTRY, "no configuration entry");
|
||||
LUMIERA_ERROR_DEFINE (CONFIG_DEFAULT, "illegal default value");
|
||||
|
||||
|
|
|
|||
|
|
@ -40,10 +40,9 @@ NOBUG_DECLARE_FLAG (config_typed);
|
|||
NOBUG_DECLARE_FLAG (config_file);
|
||||
|
||||
|
||||
|
||||
LUMIERA_ERROR_DECLARE (CONFIG_SYNTAX);
|
||||
LUMIERA_ERROR_DECLARE (CONFIG_SYNTAX_KEY);
|
||||
LUMIERA_ERROR_DECLARE (CONFIG_TYPE);
|
||||
LUMIERA_ERROR_DECLARE (CONFIG_SYNTAX_VALUE);
|
||||
LUMIERA_ERROR_DECLARE (CONFIG_NO_ENTRY);
|
||||
LUMIERA_ERROR_DECLARE (CONFIG_DEFAULT);
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ lumiera_config_number_get (const char* key, long long* value, const char* def)
|
|||
ret = 0; /* all ok */
|
||||
else
|
||||
{
|
||||
LUMIERA_ERROR_SET (config_typed, CONFIG_TYPE);
|
||||
LUMIERA_ERROR_SET (config_typed, CONFIG_SYNTAX_VALUE);
|
||||
if (def)
|
||||
/* even when we return an error code we still try to initialize value with our default while in error state */
|
||||
goto try_default;
|
||||
|
|
@ -80,7 +80,7 @@ lumiera_config_number_get (const char* key, long long* value, const char* def)
|
|||
else
|
||||
{
|
||||
/* default value is broken!! */
|
||||
/* note that this error gets ignored when we had a type error above */
|
||||
/* note that this error gets ignored by the application when we had a type error above, but will still be logged with nobug */
|
||||
ret = -1;
|
||||
LUMIERA_ERROR_SET (config_typed, CONFIG_DEFAULT);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,18 +39,25 @@ out: 1234567890
|
|||
END
|
||||
|
||||
export LUMIERA_TEST_NUMBER_1=987654321
|
||||
|
||||
TEST "number get, env override" number_get test.number.1 '1234567890 # comment' <<END
|
||||
out: 987654321
|
||||
END
|
||||
|
||||
export LUMIERA_TEST_NUMBER_1=barf
|
||||
TEST "number get, type error" number_get_nodefault test.number.1 <<END
|
||||
out: LUMIERA_ERROR_CONFIG_TYPE:value has wrong type
|
||||
out: LUMIERA_ERROR_CONFIG_SYNTAX_VALUE:syntax error in value
|
||||
END
|
||||
|
||||
LUMIERA_TEST_NUMBER_1=NAN
|
||||
TEST "number get, env override, default fallback" number_get test.number.1 '1234567890 # comment' <<END
|
||||
out: LUMIERA_ERROR_CONFIG_SYNTAX_VALUE:syntax error in value, 1234567890
|
||||
END
|
||||
|
||||
unset LUMIERA_TEST_NUMBER_1
|
||||
|
||||
|
||||
TEST "number get, syntax error" number_get no:fun:blah '1234567890 # comment' <<END
|
||||
TEST "number get, syntax error" number_get_nodefault test.NUMBER.1 <<END
|
||||
out: LUMIERA_ERROR_CONFIG_SYNTAX_KEY:syntax error in key
|
||||
END
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ TEST ("number_get")
|
|||
if (!lumiera_config_number_get (argv[2], &number, argv[3]))
|
||||
printf ("%lld\n", number);
|
||||
else
|
||||
printf ("%s\n", lumiera_error ());
|
||||
printf ("%s, %lld\n", lumiera_error (), number);
|
||||
|
||||
lumiera_config_destroy ();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue