1 # Copyright (c) 2013 by Gilbert Ramirez <gram@alumni.rice.edu>
3 # SPDX-License-Identifier: GPL-2.0-or-later
7 class case_string(dfiltertest.DFTestCase):
8 trace_file = "http.pcap"
11 dfilter = 'http.request.method == "HEAD"'
12 self.assertDFilterCount(dfilter, 1)
15 dfilter = 'http.request.method == "POST"'
16 self.assertDFilterCount(dfilter, 0)
19 dfilter = 'http.request.method > "HEAC"'
20 self.assertDFilterCount(dfilter, 1)
23 dfilter = 'http.request.method > "HEAD"'
24 self.assertDFilterCount(dfilter, 0)
27 dfilter = 'http.request.method > "HEAE"'
28 self.assertDFilterCount(dfilter, 0)
31 dfilter = 'http.request.method >= "HEAC"'
32 self.assertDFilterCount(dfilter, 1)
35 dfilter = 'http.request.method >= "HEAD"'
36 self.assertDFilterCount(dfilter, 1)
39 dfilter = 'http.request.method >= "HEAE"'
40 self.assertDFilterCount(dfilter, 0)
43 dfilter = 'http.request.method < "HEAC"'
44 self.assertDFilterCount(dfilter, 0)
47 dfilter = 'http.request.method < "HEAD"'
48 self.assertDFilterCount(dfilter, 0)
51 dfilter = 'http.request.method < "HEAE"'
52 self.assertDFilterCount(dfilter, 1)
55 dfilter = 'http.request.method <= "HEAC"'
56 self.assertDFilterCount(dfilter, 0)
59 dfilter = 'http.request.method <= "HEAD"'
60 self.assertDFilterCount(dfilter, 1)
63 dfilter = 'http.request.method <= "HEAE"'
64 self.assertDFilterCount(dfilter, 1)
66 def test_slice_1(self):
67 dfilter = 'http.request.method[0] == "H"'
68 self.assertDFilterCount(dfilter, 1)
70 def test_slice_2(self):
71 dfilter = 'http.request.method[0] == "P"'
72 self.assertDFilterCount(dfilter, 0)
74 def test_slice_3(self):
75 dfilter = 'http.request.method[0:4] == "HEAD"'
76 self.assertDFilterCount(dfilter, 1)
78 def test_slice_4(self):
79 dfilter = 'http.request.method[0:4] != "HEAD"'
80 self.assertDFilterCount(dfilter, 0)
82 def test_slice_5(self):
83 dfilter = 'http.request.method[1:2] == "EA"'
84 self.assertDFilterCount(dfilter, 1)
86 def test_slice_6(self):
87 dfilter = 'http.request.method[1:2] > "EA"'
88 self.assertDFilterCount(dfilter, 0)
90 def test_slice_7(self):
91 dfilter = 'http.request.method[-1] == "D"'
92 self.assertDFilterCount(dfilter, 1)
94 def test_slice_8(self):
95 dfilter = 'http.request.method[-2] == "D"'
96 self.assertDFilterCount(dfilter, 0)
98 def xxxtest_stringz_1(self):
99 return self.DFilterCount(pkt_tftp,
100 'tftp.type == "octet"', 1)
102 def xxxtest_stringz_2(self):
103 return self.DFilterCount(pkt_tftp,
104 'tftp.type == "junk"', 0)
106 def test_contains_1(self):
107 dfilter = 'http.request.method contains "E"'
108 self.assertDFilterCount(dfilter, 1)
110 def test_contains_2(self):
111 dfilter = 'http.request.method contains "EA"'
112 self.assertDFilterCount(dfilter, 1)
114 def test_contains_3(self):
115 dfilter = 'http.request.method contains "HEAD"'
116 self.assertDFilterCount(dfilter, 1)
118 def test_contains_4(self):
119 dfilter = 'http.request.method contains "POST"'
120 self.assertDFilterCount(dfilter, 0)
122 def test_contains_5(self):
123 dfilter = 'http.request.method contains 50:4f:53:54' # "POST"
124 self.assertDFilterCount(dfilter, 0)
126 def test_contains_6(self):
127 dfilter = 'http.request.method contains 48:45:41:44' # "HEAD"
128 self.assertDFilterCount(dfilter, 1)
130 def test_contains_fail_0(self):
131 dfilter = 'http.user_agent contains "update"'
132 self.assertDFilterCount(dfilter, 0)
134 def test_contains_fail_1(self):
135 dfilter = 'http.user_agent contains "UPDATE"'
136 self.assertDFilterCount(dfilter, 0)
138 def test_contains_upper_0(self):
139 dfilter = 'upper(http.user_agent) contains "UPDATE"'
140 self.assertDFilterCount(dfilter, 1)
142 def test_contains_upper_1(self):
143 dfilter = 'upper(http.user_agent) contains "update"'
144 self.assertDFilterCount(dfilter, 0)
146 def test_contains_upper_2(self):
147 dfilter = 'upper(tcp.seq) == 4'
148 self.assertDFilterFail(dfilter)
150 def test_contains_lower_0(self):
151 dfilter = 'lower(http.user_agent) contains "UPDATE"'
152 self.assertDFilterCount(dfilter, 0)
154 def test_contains_lower_1(self):
155 dfilter = 'lower(http.user_agent) contains "update"'
156 self.assertDFilterCount(dfilter, 1)
158 def test_eq_lower_1(self):
159 dfilter = 'lower(tcp.seq) == 4'
160 self.assertDFilterFail(dfilter)
162 def test_string_len(self):
163 dfilter = 'len(http.request.method) == 4'
164 self.assertDFilterCount(dfilter, 1)