Skip to content

Commit

Permalink
range: use check/range/type instead of check/type again
Browse files Browse the repository at this point in the history
  • Loading branch information
tom-wa committed May 8, 2017
1 parent 2519558 commit e2582c9
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 13 deletions.
15 changes: 15 additions & 0 deletions src/error/specification
Expand Up @@ -1083,3 +1083,18 @@ severity:warning
ingroup:plugin
macro:NOT_VALID_KEY_VALUE_PAIR
module:mini

number:176
description:validation failed.
severity:warning
ingroup:plugin
module:typedispatcher
macro:TYPEDISP_VAL_FAILED

number:177
description:failed to access metadata.
severity:error
ingroup:plugin
module:typedispatcher
macro:TYPEDISP_METAINI_FAILED

4 changes: 2 additions & 2 deletions src/plugins/range/README.md
Expand Up @@ -6,7 +6,7 @@
- infos/recommends =
- infos/placements = presetstorage postgetstorage
- infos/status = maintained conformant compatible coverage specific unittest tested libc preview unfinished
- infos/metadata = check/range check/type
- infos/metadata = check/range check/range/type
- infos/description = tests if a value is within a given range

## Introduction ##
Expand All @@ -17,7 +17,7 @@ The range plugin checks if a `Key`'s value is within a given range.

The plugin checks every `Key` in the `KeySet` for the metakey `check/range` which contains either a single range with the syntax `[-]min-[-]max`, or a list of ranges or values separated by `,` and tests if the `Key`'s value is within the range(s).

`check/type` can be used to specify the datatype. If not specified otherwise the default value is `long long`
`check/range/type` can be used to specify the datatype. If not specified otherwise the default value is `long long`

Possible values:

Expand Down
3 changes: 1 addition & 2 deletions src/plugins/range/range.c
Expand Up @@ -364,7 +364,6 @@ static RangeType stringToType (const Key * typeMeta)
static const char * floatTypes[] = {
"float", "double", "long double", NULL,
};

if (typeMeta)
{
const char * strVal = keyString (typeMeta);
Expand All @@ -390,7 +389,7 @@ static RangeType stringToType (const Key * typeMeta)

static RangeType getType (const Key * key)
{
const Key * typeMeta = keyGetMeta (key, "check/type");
const Key * typeMeta = keyGetMeta (key, "check/range/type");
RangeType type = NA;

type = stringToType (typeMeta);
Expand Down
12 changes: 8 additions & 4 deletions src/plugins/range/testmod_range.c
Expand Up @@ -35,7 +35,7 @@ void testUInt (const char * value, int ret, const char * rangeString)
{
Key * parentKey = keyNew ("user/tests/range", KEY_VALUE, "", KEY_END);
KeySet * ks = ksNew (10, keyNew ("user/tests/range/key", KEY_VALUE, value, KEY_META, "check/range", rangeString, KEY_META,
"check/type", "unsigned long", KEY_END),
"check/range/type", "unsigned long", KEY_END),
KS_END);
KeySet * conf = ksNew (0, KS_END);
PLUGIN_OPEN ("range");
Expand All @@ -52,7 +52,7 @@ void testFloat (const char * value, int ret, const char * rangeString)
{
Key * parentKey = keyNew ("user/tests/range", KEY_VALUE, "", KEY_END);
KeySet * ks = ksNew (10, keyNew ("user/tests/range/key", KEY_VALUE, value, KEY_META, "check/range", rangeString, KEY_META,
"check/type", "float", KEY_END),
"check/range/type", "float", KEY_END),
KS_END);
KeySet * conf = ksNew (0, KS_END);
PLUGIN_OPEN ("range");
Expand All @@ -69,7 +69,7 @@ void testHex (const char * value, int ret, const char * rangeString)
{
Key * parentKey = keyNew ("user/tests/range", KEY_VALUE, "", KEY_END);
KeySet * ks = ksNew (10, keyNew ("user/tests/range/key", KEY_VALUE, value, KEY_META, "check/range", rangeString, KEY_META,
"check/type", "HEX", KEY_END),
"check/range/type", "HEX", KEY_END),
KS_END);
KeySet * conf = ksNew (0, KS_END);
PLUGIN_OPEN ("range");
Expand All @@ -86,7 +86,7 @@ void testChar (const char * value, int ret, const char * rangeString)
{
Key * parentKey = keyNew ("user/tests/range", KEY_VALUE, "", KEY_END);
KeySet * ks = ksNew (10, keyNew ("user/tests/range/key", KEY_VALUE, value, KEY_META, "check/range", rangeString, KEY_META,
"check/type", "char", KEY_END),
"check/range/type", "char", KEY_END),
KS_END);
KeySet * conf = ksNew (0, KS_END);
PLUGIN_OPEN ("range");
Expand Down Expand Up @@ -178,6 +178,10 @@ int main (int argc, char ** argv)
testChar ("g", -1, "a-f");
testChar ("c", 1, "a-f");

testChar ("A", 1, "A-Z");
testChar ("C", 1, "A-Z");


setlocale (LC_ALL, old_locale);
elektraFree (old_locale);
printf ("\ntestmod_range RESULTS: %d test(s) done. %d error(s).\n", nbTest, nbError);
Expand Down
6 changes: 3 additions & 3 deletions src/plugins/typedispatcher/testmod_typedispatcher.c
Expand Up @@ -154,7 +154,7 @@ void testMultiSub ()
KeySet * ks = ksNew (5, keyNew ("user/tests/typedispatcher", KEY_VALUE, "typedefinitions", KEY_META, "define/type", "", KEY_META,
"define/type/character", "", KEY_META, "define/type/character/check/type", "char", KEY_META,
"define/type/upperChar", "", KEY_META, "define/type/upperChar/check/range", "A-Z", KEY_META,
"define/type/upperChar/check/range/type", "CHAR", KEY_META, "define/type/upperChar/type",
"define/type/upperChar/check/range/type", "char", KEY_META, "define/type/upperChar/type",
"character", KEY_END),
keyNew ("user/tests/typedispatcher/character", KEY_VALUE, "c", KEY_META, "type", "#0", KEY_META, "type/#0",
"character", KEY_END),
Expand Down Expand Up @@ -301,7 +301,7 @@ void testMultiParametersExtended ()
"define/type/character", "", KEY_META, "define/type/character/parameter", "a", KEY_META,
"define/type/character/check/type", "%a%", KEY_META, "define/type/upperChar", "", KEY_META,
"define/type/upperChar/parameter", "b", KEY_META, "define/type/upperChar/check/range", "%b%", KEY_META,
"define/type/upperChar/check/range/type", "CHAR", KEY_META, "define/type/upperChar/type", "character (char)",
"define/type/upperChar/check/range/type", "char", KEY_META, "define/type/upperChar/type", "character (char)",
KEY_END),
keyNew ("user/tests/typedispatcher/character", KEY_VALUE, "c", KEY_META, "type", "character (char)", KEY_END),
keyNew ("user/tests/typedispatcher/sub", KEY_VALUE, "", KEY_META, "define/type", "", KEY_META, "define/type/AB", "",
Expand Down Expand Up @@ -334,7 +334,7 @@ void testMultiParametersRecursive ()
"define/type/character", "", KEY_META, "define/type/character/parameter", "a", KEY_META,
"define/type/character/check/type", "%a%", KEY_META, "define/type/upperChar", "", KEY_META,
"define/type/upperChar/parameter", "b", KEY_META, "define/type/upperChar/check/range", "%b%", KEY_META,
"define/type/upperChar/check/range/type", "CHAR", KEY_META, "define/type/upperChar/type", "character (char)",
"define/type/upperChar/check/range/type", "char", KEY_META, "define/type/upperChar/type", "character (char)",
KEY_END),
keyNew ("user/tests/typedispatcher/character", KEY_VALUE, "c", KEY_META, "type", "character (char)", KEY_END),
keyNew ("user/tests/typedispatcher/sub", KEY_VALUE, "", KEY_META, "define/type", "", KEY_META, "define/type/AB", "",
Expand Down
4 changes: 2 additions & 2 deletions src/plugins/typedispatcher/typehelper.h
@@ -1,7 +1,7 @@
#include <kdbplugin.h>

#undef DEVBUILD
#undef VERBOSEBUILD
#define DEVBUILD
#define VERBOSEBUILD

// helper for readability
typedef enum {
Expand Down

0 comments on commit e2582c9

Please sign in to comment.