Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Side by Side Diff: third_party/twisted_8_1/twisted/pair/test/test_rawudp.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright (c) 2001-2004 Twisted Matrix Laboratories.
2 # See LICENSE for details.
3
4 #
5 from twisted.trial import unittest
6
7 from twisted.internet import protocol, reactor, error
8 from twisted.python import failure
9 from twisted.pair import rawudp
10
11 class MyProtocol(protocol.DatagramProtocol):
12 def __init__(self, expecting):
13 self.expecting = list(expecting)
14
15 def datagramReceived(self, data, (host, port)):
16 assert self.expecting, 'Got a packet when not expecting anymore.'
17 expectData, expectHost, expectPort = self.expecting.pop(0)
18
19 assert expectData == data, "Expected data %r, got %r" % (expectData, dat a)
20 assert expectHost == host, "Expected host %r, got %r" % (expectHost, hos t)
21 assert expectPort == port, "Expected port %d=0x%04x, got %d=0x%04x" % (e xpectPort, expectPort, port, port)
22
23 class RawUDPTestCase(unittest.TestCase):
24 def testPacketParsing(self):
25 proto = rawudp.RawUDPProtocol()
26 p1 = MyProtocol([
27
28 ('foobar', 'testHost', 0x43A2),
29
30 ])
31 proto.addProto(0xF00F, p1)
32
33 proto.datagramReceived("\x43\xA2" #source
34 + "\xf0\x0f" #dest
35 + "\x00\x06" #len
36 + "\xDE\xAD" #check
37 + "foobar",
38 partial=0,
39 dest='dummy',
40 source='testHost',
41 protocol='dummy',
42 version='dummy',
43 ihl='dummy',
44 tos='dummy',
45 tot_len='dummy',
46 fragment_id='dummy',
47 fragment_offset='dummy',
48 dont_fragment='dummy',
49 more_fragments='dummy',
50 ttl='dummy',
51 )
52
53 assert not p1.expecting, \
54 'Should not expect any more packets, but still want %r' % p1.expe cting
55
56 def testMultiplePackets(self):
57 proto = rawudp.RawUDPProtocol()
58 p1 = MyProtocol([
59
60 ('foobar', 'testHost', 0x43A2),
61 ('quux', 'otherHost', 0x33FE),
62
63 ])
64 proto.addProto(0xF00F, p1)
65 proto.datagramReceived("\x43\xA2" #source
66 + "\xf0\x0f" #dest
67 + "\x00\x06" #len
68 + "\xDE\xAD" #check
69 + "foobar",
70 partial=0,
71 dest='dummy',
72 source='testHost',
73 protocol='dummy',
74 version='dummy',
75 ihl='dummy',
76 tos='dummy',
77 tot_len='dummy',
78 fragment_id='dummy',
79 fragment_offset='dummy',
80 dont_fragment='dummy',
81 more_fragments='dummy',
82 ttl='dummy',
83 )
84 proto.datagramReceived("\x33\xFE" #source
85 + "\xf0\x0f" #dest
86 + "\x00\x05" #len
87 + "\xDE\xAD" #check
88 + "quux",
89 partial=0,
90 dest='dummy',
91 source='otherHost',
92 protocol='dummy',
93 version='dummy',
94 ihl='dummy',
95 tos='dummy',
96 tot_len='dummy',
97 fragment_id='dummy',
98 fragment_offset='dummy',
99 dont_fragment='dummy',
100 more_fragments='dummy',
101 ttl='dummy',
102 )
103
104 assert not p1.expecting, \
105 'Should not expect any more packets, but still want %r' % p1.expe cting
106
107
108 def testMultipleSameProtos(self):
109 proto = rawudp.RawUDPProtocol()
110 p1 = MyProtocol([
111
112 ('foobar', 'testHost', 0x43A2),
113
114 ])
115
116 p2 = MyProtocol([
117
118 ('foobar', 'testHost', 0x43A2),
119
120 ])
121
122 proto.addProto(0xF00F, p1)
123 proto.addProto(0xF00F, p2)
124
125 proto.datagramReceived("\x43\xA2" #source
126 + "\xf0\x0f" #dest
127 + "\x00\x06" #len
128 + "\xDE\xAD" #check
129 + "foobar",
130 partial=0,
131 dest='dummy',
132 source='testHost',
133 protocol='dummy',
134 version='dummy',
135 ihl='dummy',
136 tos='dummy',
137 tot_len='dummy',
138 fragment_id='dummy',
139 fragment_offset='dummy',
140 dont_fragment='dummy',
141 more_fragments='dummy',
142 ttl='dummy',
143 )
144
145 assert not p1.expecting, \
146 'Should not expect any more packets, but still want %r' % p1.expe cting
147 assert not p2.expecting, \
148 'Should not expect any more packets, but still want %r' % p2.expe cting
149
150 def testWrongProtoNotSeen(self):
151 proto = rawudp.RawUDPProtocol()
152 p1 = MyProtocol([])
153 proto.addProto(1, p1)
154
155 proto.datagramReceived("\x43\xA2" #source
156 + "\xf0\x0f" #dest
157 + "\x00\x06" #len
158 + "\xDE\xAD" #check
159 + "foobar",
160 partial=0,
161 dest='dummy',
162 source='testHost',
163 protocol='dummy',
164 version='dummy',
165 ihl='dummy',
166 tos='dummy',
167 tot_len='dummy',
168 fragment_id='dummy',
169 fragment_offset='dummy',
170 dont_fragment='dummy',
171 more_fragments='dummy',
172 ttl='dummy',
173 )
174
175 def testDemuxing(self):
176 proto = rawudp.RawUDPProtocol()
177 p1 = MyProtocol([
178
179 ('foobar', 'testHost', 0x43A2),
180 ('quux', 'otherHost', 0x33FE),
181
182 ])
183 proto.addProto(0xF00F, p1)
184
185 p2 = MyProtocol([
186
187 ('quux', 'otherHost', 0xA401),
188 ('foobar', 'testHost', 0xA302),
189
190 ])
191 proto.addProto(0xB050, p2)
192
193 proto.datagramReceived("\xA4\x01" #source
194 + "\xB0\x50" #dest
195 + "\x00\x05" #len
196 + "\xDE\xAD" #check
197 + "quux",
198 partial=0,
199 dest='dummy',
200 source='otherHost',
201 protocol='dummy',
202 version='dummy',
203 ihl='dummy',
204 tos='dummy',
205 tot_len='dummy',
206 fragment_id='dummy',
207 fragment_offset='dummy',
208 dont_fragment='dummy',
209 more_fragments='dummy',
210 ttl='dummy',
211 )
212 proto.datagramReceived("\x43\xA2" #source
213 + "\xf0\x0f" #dest
214 + "\x00\x06" #len
215 + "\xDE\xAD" #check
216 + "foobar",
217 partial=0,
218 dest='dummy',
219 source='testHost',
220 protocol='dummy',
221 version='dummy',
222 ihl='dummy',
223 tos='dummy',
224 tot_len='dummy',
225 fragment_id='dummy',
226 fragment_offset='dummy',
227 dont_fragment='dummy',
228 more_fragments='dummy',
229 ttl='dummy',
230 )
231 proto.datagramReceived("\x33\xFE" #source
232 + "\xf0\x0f" #dest
233 + "\x00\x05" #len
234 + "\xDE\xAD" #check
235 + "quux",
236 partial=0,
237 dest='dummy',
238 source='otherHost',
239 protocol='dummy',
240 version='dummy',
241 ihl='dummy',
242 tos='dummy',
243 tot_len='dummy',
244 fragment_id='dummy',
245 fragment_offset='dummy',
246 dont_fragment='dummy',
247 more_fragments='dummy',
248 ttl='dummy',
249 )
250 proto.datagramReceived("\xA3\x02" #source
251 + "\xB0\x50" #dest
252 + "\x00\x06" #len
253 + "\xDE\xAD" #check
254 + "foobar",
255 partial=0,
256 dest='dummy',
257 source='testHost',
258 protocol='dummy',
259 version='dummy',
260 ihl='dummy',
261 tos='dummy',
262 tot_len='dummy',
263 fragment_id='dummy',
264 fragment_offset='dummy',
265 dont_fragment='dummy',
266 more_fragments='dummy',
267 ttl='dummy',
268 )
269
270 assert not p1.expecting, \
271 'Should not expect any more packets, but still want %r' % p1.expe cting
272 assert not p2.expecting, \
273 'Should not expect any more packets, but still want %r' % p2.expe cting
274
275 def testAddingBadProtos_WrongLevel(self):
276 """Adding a wrong level protocol raises an exception."""
277 e = rawudp.RawUDPProtocol()
278 try:
279 e.addProto(42, "silliness")
280 except TypeError, e:
281 if e.args == ('Added protocol must be an instance of DatagramProtoco l',):
282 pass
283 else:
284 raise
285 else:
286 raise AssertionError, 'addProto must raise an exception for bad prot ocols'
287
288
289 def testAddingBadProtos_TooSmall(self):
290 """Adding a protocol with a negative number raises an exception."""
291 e = rawudp.RawUDPProtocol()
292 try:
293 e.addProto(-1, protocol.DatagramProtocol())
294 except TypeError, e:
295 if e.args == ('Added protocol must be positive or zero',):
296 pass
297 else:
298 raise
299 else:
300 raise AssertionError, 'addProto must raise an exception for bad prot ocols'
301
302
303 def testAddingBadProtos_TooBig(self):
304 """Adding a protocol with a number >=2**16 raises an exception."""
305 e = rawudp.RawUDPProtocol()
306 try:
307 e.addProto(2**16, protocol.DatagramProtocol())
308 except TypeError, e:
309 if e.args == ('Added protocol must fit in 16 bits',):
310 pass
311 else:
312 raise
313 else:
314 raise AssertionError, 'addProto must raise an exception for bad prot ocols'
315
316 def testAddingBadProtos_TooBig2(self):
317 """Adding a protocol with a number >=2**16 raises an exception."""
318 e = rawudp.RawUDPProtocol()
319 try:
320 e.addProto(2**16+1, protocol.DatagramProtocol())
321 except TypeError, e:
322 if e.args == ('Added protocol must fit in 16 bits',):
323 pass
324 else:
325 raise
326 else:
327 raise AssertionError, 'addProto must raise an exception for bad prot ocols'
OLDNEW
« no previous file with comments | « third_party/twisted_8_1/twisted/pair/test/test_ip.py ('k') | third_party/twisted_8_1/twisted/pair/topfiles/README » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698