diff options
Diffstat (limited to 'web/attachments/112621-utils.pm.t')
-rw-r--r-- | web/attachments/112621-utils.pm.t | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/web/attachments/112621-utils.pm.t b/web/attachments/112621-utils.pm.t new file mode 100644 index 0000000..630985c --- /dev/null +++ b/web/attachments/112621-utils.pm.t | |||
@@ -0,0 +1,141 @@ | |||
1 | #! /usr/bin/perl -w | ||
2 | BEGIN {use File::Basename; use lib(dirname($0) . "/.."); } | ||
3 | |||
4 | use strict; | ||
5 | use Test::Simple tests => 80; | ||
6 | use utils qw(&check_range); | ||
7 | |||
8 | |||
9 | my @tests = | ||
10 | ( | ||
11 | # Format: [metric, range, name, expected result] | ||
12 | # | ||
13 | # 'Expected result' is the result expected from check_range: 0 if | ||
14 | # check_range should return 0 (metric is outside of range), 1 if | ||
15 | # check_range should return 1 (metric is inside range). The expected | ||
16 | # result can also be -1, indicating that check_range should exit with | ||
17 | # plugin error code of 'UNKNOWN' after a usage error (caused by an | ||
18 | # invalid range). | ||
19 | |||
20 | # Check min:max ranges | ||
21 | [-1, '2:4', 'Test 1', 0], | ||
22 | [0, '2:4', 'Test 2', 0], | ||
23 | [1, '2:4', 'Test 3', 0], | ||
24 | [2, '2:4', 'Test 4', 1], | ||
25 | [3, '2:4', 'Test 5', 1], | ||
26 | [4, '2:4', 'Test 6', 1], | ||
27 | [5, '2:4', 'Test 7', 0], | ||
28 | |||
29 | # Check max ranges | ||
30 | [-1, 2, 'Test 8', 0], | ||
31 | [0, 2, 'Test 9', 1], | ||
32 | [1, 2, 'Test 10', 1], | ||
33 | [2, 2, 'Test 11', 1], | ||
34 | [3, 2, 'Test 12', 0], | ||
35 | |||
36 | # Check :max ranges | ||
37 | [-1, ':2', 'Test 13', 0], | ||
38 | [0, ':2', 'Test 14', 1], | ||
39 | [1, ':2', 'Test 15', 1], | ||
40 | [2, ':2', 'Test 16', 1], | ||
41 | [3, ':2', 'Test 17', 0], | ||
42 | [-1, '1:', 'Test 18', 0], | ||
43 | |||
44 | # Check min: ranges | ||
45 | [0, '1:', 'Test 19', 0], | ||
46 | [1, '1:', 'Test 20', 1], | ||
47 | [2, '1:', 'Test 21', 1], | ||
48 | |||
49 | # Check 0 | ||
50 | [-1, 0, 'Test 22', 0], | ||
51 | [0, 0, 'Test 23', 1], | ||
52 | [1, 0, 'Test 24', 1], | ||
53 | |||
54 | # Check ~:max ranges | ||
55 | [-1, '~:1', 'Test 25', 1], | ||
56 | [0, '~:1', 'Test 26', 1], | ||
57 | [1, '~:1', 'Test 27', 1], | ||
58 | [2, '~:1', 'Test 28', 0], | ||
59 | |||
60 | # Check min:max ranges where min and max are the same, including :0 | ||
61 | # which should be equivalent to 0:0. | ||
62 | [-1, '1:1', 'Test 29', 0], | ||
63 | [0, '1:1', 'Test 30', 0], | ||
64 | [1, '1:1', 'Test 31', 1], | ||
65 | [2, '1:1', 'Test 32', 0], | ||
66 | [-1, '0:0', 'Test 33', 0], | ||
67 | [0, '0:0', 'Test 34', 1], | ||
68 | [1, '0:0', 'Test 35', 0], | ||
69 | [-1, ':0', 'Test 36', 0], | ||
70 | [0, ':0', 'Test 37', 1], | ||
71 | [1, ':0', 'Test 38', 0], | ||
72 | |||
73 | # Check min:max ranges which are invalid | ||
74 | [1, '4:2', 'Test 39', -1], | ||
75 | [1, '~:~', 'Test 40', -1], | ||
76 | |||
77 | # Check @min:max ranges | ||
78 | [-1, '@2:4', 'Test 1', 1], | ||
79 | [0, '@2:4', 'Test 2', 1], | ||
80 | [1, '@2:4', 'Test 3', 1], | ||
81 | [2, '@2:4', 'Test 4', 0], | ||
82 | [3, '@2:4', 'Test 5', 0], | ||
83 | [4, '@2:4', 'Test 6', 0], | ||
84 | [5, '@2:4', 'Test 7', 1], | ||
85 | |||
86 | # Check @max ranges | ||
87 | [-1, '@2', 'Test 8', 1], | ||
88 | [0, '@2', 'Test 9', 0], | ||
89 | [1, '@2', 'Test 10', 0], | ||
90 | [2, '@2', 'Test 11', 0], | ||
91 | [3, '@2', 'Test 12', 1], | ||
92 | |||
93 | # Check @:max ranges | ||
94 | [-1, '@:2', 'Test 13', 1], | ||
95 | [0, '@:2', 'Test 14', 0], | ||
96 | [1, '@:2', 'Test 15', 0], | ||
97 | [2, '@:2', 'Test 16', 0], | ||
98 | [3, '@:2', 'Test 17', 1], | ||
99 | [-1, '@1:', 'Test 18', 1], | ||
100 | |||
101 | # Check @min: ranges | ||
102 | [0, '@1:', 'Test 19', 1], | ||
103 | [1, '@1:', 'Test 20', 0], | ||
104 | [2, '@1:', 'Test 21', 0], | ||
105 | |||
106 | # Check @0 | ||
107 | [-1, '@0', 'Test 22', 1], | ||
108 | [0, '@0', 'Test 23', 0], | ||
109 | [1, '@0', 'Test 24', 0], | ||
110 | |||
111 | # Check @~:max ranges | ||
112 | [-1, '@~:1', 'Test 25', 0], | ||
113 | [0, '@~:1', 'Test 26', 0], | ||
114 | [1, '@~:1', 'Test 27', 0], | ||
115 | [2, '@~:1', 'Test 28', 1], | ||
116 | |||
117 | # Check @min:max ranges where min and max are the same, including @:0 | ||
118 | # which should be equivalent to @0:0. | ||
119 | [-1, '@1:1', 'Test 29', 1], | ||
120 | [0, '@1:1', 'Test 30', 1], | ||
121 | [1, '@1:1', 'Test 31', 0], | ||
122 | [2, '@1:1', 'Test 32', 1], | ||
123 | [-1, '@0:0', 'Test 33', 1], | ||
124 | [0, '@0:0', 'Test 34', 0], | ||
125 | [1, '@0:0', 'Test 35', 1], | ||
126 | [-1, '@:0', 'Test 36', 1], | ||
127 | [0, '@:0', 'Test 37', 0], | ||
128 | [1, '@:0', 'Test 38', 1], | ||
129 | |||
130 | # Check @min:max ranges which are invalid | ||
131 | [1, '@4:2', 'Test 39', -1], | ||
132 | [1, '@~:~', 'Test 40', -1], | ||
133 | ); | ||
134 | |||
135 | foreach my $test (@tests) | ||
136 | { | ||
137 | ok(check_range($test->[0], $test->[1]) == $test->[3],$test->[2]); | ||
138 | } | ||
139 | |||
140 | exit; | ||
141 | |||