Test: Add dftest to our tests.
[metze/wireshark/wip.git] / test / suite_dfilter / group_string_type.py
1 # Copyright (c) 2013 by Gilbert Ramirez <gram@alumni.rice.edu>
2 #
3 # SPDX-License-Identifier: GPL-2.0-or-later
4
5 import dfiltertest
6
7 class case_string(dfiltertest.DFTestCase):
8     trace_file = "http.pcap"
9
10     def test_eq_1(self):
11         dfilter = 'http.request.method == "HEAD"'
12         self.assertDFilterCount(dfilter, 1)
13
14     def test_eq_2(self):
15         dfilter = 'http.request.method == "POST"'
16         self.assertDFilterCount(dfilter, 0)
17
18     def test_gt_1(self):
19         dfilter = 'http.request.method > "HEAC"'
20         self.assertDFilterCount(dfilter, 1)
21
22     def test_gt_2(self):
23         dfilter = 'http.request.method > "HEAD"'
24         self.assertDFilterCount(dfilter, 0)
25
26     def test_gt_3(self):
27         dfilter = 'http.request.method > "HEAE"'
28         self.assertDFilterCount(dfilter, 0)
29
30     def test_ge_1(self):
31         dfilter = 'http.request.method >= "HEAC"'
32         self.assertDFilterCount(dfilter, 1)
33
34     def test_ge_2(self):
35         dfilter = 'http.request.method >= "HEAD"'
36         self.assertDFilterCount(dfilter, 1)
37
38     def test_ge_3(self):
39         dfilter = 'http.request.method >= "HEAE"'
40         self.assertDFilterCount(dfilter, 0)
41
42     def test_lt_1(self):
43         dfilter = 'http.request.method < "HEAC"'
44         self.assertDFilterCount(dfilter, 0)
45
46     def test_lt_2(self):
47         dfilter = 'http.request.method < "HEAD"'
48         self.assertDFilterCount(dfilter, 0)
49
50     def test_lt_3(self):
51         dfilter = 'http.request.method < "HEAE"'
52         self.assertDFilterCount(dfilter, 1)
53
54     def test_le_1(self):
55         dfilter = 'http.request.method <= "HEAC"'
56         self.assertDFilterCount(dfilter, 0)
57
58     def test_le_2(self):
59         dfilter = 'http.request.method <= "HEAD"'
60         self.assertDFilterCount(dfilter, 1)
61
62     def test_le_3(self):
63         dfilter = 'http.request.method <= "HEAE"'
64         self.assertDFilterCount(dfilter, 1)
65
66     def test_slice_1(self):
67         dfilter = 'http.request.method[0] == "H"'
68         self.assertDFilterCount(dfilter, 1)
69
70     def test_slice_2(self):
71         dfilter = 'http.request.method[0] == "P"'
72         self.assertDFilterCount(dfilter, 0)
73
74     def test_slice_3(self):
75         dfilter = 'http.request.method[0:4] == "HEAD"'
76         self.assertDFilterCount(dfilter, 1)
77
78     def test_slice_4(self):
79         dfilter = 'http.request.method[0:4] != "HEAD"'
80         self.assertDFilterCount(dfilter, 0)
81
82     def test_slice_5(self):
83         dfilter = 'http.request.method[1:2] == "EA"'
84         self.assertDFilterCount(dfilter, 1)
85
86     def test_slice_6(self):
87         dfilter = 'http.request.method[1:2] > "EA"'
88         self.assertDFilterCount(dfilter, 0)
89
90     def test_slice_7(self):
91         dfilter = 'http.request.method[-1] == "D"'
92         self.assertDFilterCount(dfilter, 1)
93
94     def test_slice_8(self):
95         dfilter = 'http.request.method[-2] == "D"'
96         self.assertDFilterCount(dfilter, 0)
97
98     def xxxtest_stringz_1(self):
99             return self.DFilterCount(pkt_tftp,
100                     'tftp.type == "octet"', 1)
101
102     def xxxtest_stringz_2(self):
103             return self.DFilterCount(pkt_tftp,
104                     'tftp.type == "junk"', 0)
105
106     def test_contains_1(self):
107         dfilter = 'http.request.method contains "E"'
108         self.assertDFilterCount(dfilter, 1)
109
110     def test_contains_2(self):
111         dfilter = 'http.request.method contains "EA"'
112         self.assertDFilterCount(dfilter, 1)
113
114     def test_contains_3(self):
115         dfilter = 'http.request.method contains "HEAD"'
116         self.assertDFilterCount(dfilter, 1)
117
118     def test_contains_4(self):
119         dfilter = 'http.request.method contains "POST"'
120         self.assertDFilterCount(dfilter, 0)
121
122     def test_contains_5(self):
123         dfilter = 'http.request.method contains 50:4f:53:54' # "POST"
124         self.assertDFilterCount(dfilter, 0)
125
126     def test_contains_6(self):
127         dfilter = 'http.request.method contains 48:45:41:44' # "HEAD"
128         self.assertDFilterCount(dfilter, 1)
129
130     def test_contains_fail_0(self):
131         dfilter = 'http.user_agent contains "update"'
132         self.assertDFilterCount(dfilter, 0)
133
134     def test_contains_fail_1(self):
135         dfilter = 'http.user_agent contains "UPDATE"'
136         self.assertDFilterCount(dfilter, 0)
137
138     def test_contains_upper_0(self):
139         dfilter = 'upper(http.user_agent) contains "UPDATE"'
140         self.assertDFilterCount(dfilter, 1)
141
142     def test_contains_upper_1(self):
143         dfilter = 'upper(http.user_agent) contains "update"'
144         self.assertDFilterCount(dfilter, 0)
145
146     def test_contains_upper_2(self):
147         dfilter = 'upper(tcp.seq) == 4'
148         self.assertDFilterFail(dfilter)
149
150     def test_contains_lower_0(self):
151         dfilter = 'lower(http.user_agent) contains "UPDATE"'
152         self.assertDFilterCount(dfilter, 0)
153
154     def test_contains_lower_1(self):
155         dfilter = 'lower(http.user_agent) contains "update"'
156         self.assertDFilterCount(dfilter, 1)
157
158     def test_eq_lower_1(self):
159         dfilter = 'lower(tcp.seq) == 4'
160         self.assertDFilterFail(dfilter)
161
162     def test_string_len(self):
163         dfilter = 'len(http.request.method) == 4'
164         self.assertDFilterCount(dfilter, 1)