-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathfilter_testcases.c
87 lines (65 loc) · 1.95 KB
/
filter_testcases.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2020 Ericsson AB
*/
#include "utest.h"
#include "util.h"
#include "filter.h"
TESTSUITE(filter, NULL, NULL)
TESTCASE(filter, validate_simple)
{
CHK(filter_is_valid("(foo=xx)"));
CHK(filter_is_valid("(foo=9)"));
CHK(!filter_is_valid("(=xx)"));
CHK(!filter_is_valid("(foo=)"));
CHK(!filter_is_valid(""));
CHK(!filter_is_valid(" (name=foo)"));
CHK(!filter_is_valid("(name=foo) "));
return UTEST_SUCCESS;
}
TESTCASE(filter, validate_substring)
{
CHK(filter_is_valid("(foo=*)"));
CHK(filter_is_valid("(foo=foo*bar)"));
CHK(filter_is_valid("(foo=foo*bar*)"));
CHK(filter_is_valid("(foo=*foo*bar*)"));
CHK(!filter_is_valid("(foo=***)"));
return UTEST_SUCCESS;
}
TESTCASE(filter, validate_comparison)
{
CHK(filter_is_valid("(foo>9)"));
CHK(filter_is_valid("(foo<9)"));
CHK(filter_is_valid("(foo>9342434)"));
CHK(filter_is_valid("(9<9)"));
CHK(filter_is_valid("(bar>-4)"));
CHK(!filter_is_valid("(foo>)"));
CHK(!filter_is_valid("(foo>"));
CHK(!filter_is_valid("(foo> 9)"));
CHK(!filter_is_valid("(foo<9 )"));
CHK(!filter_is_valid("(foo<9a)"));
return UTEST_SUCCESS;
}
TESTCASE(filter, validate_not)
{
CHK(filter_is_valid("(!(foo>9))"));
CHK(!filter_is_valid("!(name=foo)"));
CHK(!filter_is_valid("(!(name=foo)"));
return UTEST_SUCCESS;
}
#define TEST_OP(op) \
CHK(filter_is_valid("(" op "(name=foo)(value=*))")); \
CHK(filter_is_valid("(" op "(name=foo)(value=*)(number>5))")); \
\
CHK(!filter_is_valid("(" op "(name=foo))")); \
CHK(!filter_is_valid(op "(name=foo))")); \
TESTCASE(filter, validate_and)
{
TEST_OP("&")
return UTEST_SUCCESS;
}
TESTCASE(filter, validate_or)
{
TEST_OP("|")
return UTEST_SUCCESS;
}