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

Side by Side Diff: media/tools/constrained_network_server/traffic_control_unittest.py

Issue 9127009: Constrained Network test does not fail fast under fatal conditions. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Nits. Created 8 years, 11 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
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """Tests for traffic control library.""" 7 """Tests for traffic control library."""
8 import unittest 8 import unittest
9 9
10 import traffic_control 10 import traffic_control
(...skipping 25 matching lines...) Expand all
36 config = { 36 config = {
37 'interface': 'fakeeth', 37 'interface': 'fakeeth',
38 'port': 12345, 38 'port': 12345,
39 'server_port': 8888, 39 'server_port': 8888,
40 'bandwidth': 256, 40 'bandwidth': 256,
41 'latency': 100, 41 'latency': 100,
42 'loss': 2 42 'loss': 2
43 } 43 }
44 traffic_control.CreateConstrainedPort(config) 44 traffic_control.CreateConstrainedPort(config)
45 expected = [ 45 expected = [
46 'tc qdisc add dev fakeeth root handle 1: htb', 46 'sudo tc qdisc add dev fakeeth root handle 1: htb',
47 'tc class add dev fakeeth parent 1: classid 1:3039 htb rate 256kbps ' 47 'sudo tc class add dev fakeeth parent 1: classid 1:3039 htb rate '
48 'ceil 256kbps', 48 '256kbit ceil 256kbit',
49 'tc qdisc add dev fakeeth parent 1:3039 handle 3039:0 netem loss 2% ' 49 'sudo tc qdisc add dev fakeeth parent 1:3039 handle 3039:0 netem loss '
50 'delay 100ms', 50 '2% delay 100ms',
51 'tc filter add dev fakeeth protocol ip parent 1: prio 1 u32 match ip ' 51 'sudo tc filter add dev fakeeth protocol ip parent 1: prio 1 u32 match '
52 'sport 12345 0xffff flowid 1:3039', 52 'ip sport 12345 0xffff flowid 1:3039',
53 'iptables -t nat -A PREROUTING -i fakeeth -p tcp --dport 12345 -j ' 53 'sudo iptables -t nat -A PREROUTING -i fakeeth -p tcp --dport 12345 -j '
54 'REDIRECT --to-port 8888', 54 'REDIRECT --to-port 8888',
55 'iptables -t nat -A OUTPUT -p tcp --dport 12345 -j REDIRECT --to-port ' 55 'sudo iptables -t nat -A OUTPUT -p tcp --dport 12345 -j REDIRECT '
56 '8888' 56 '--to-port 8888'
57 ] 57 ]
58 self.assertEqual(expected, self.commands) 58 self.assertEqual(expected, self.commands)
59 59
60 def testCreateConstrainedPortDefaults(self): 60 def testCreateConstrainedPortDefaults(self):
61 config = { 61 config = {
62 'interface': 'fakeeth', 62 'interface': 'fakeeth',
63 'port': 12345, 63 'port': 12345,
64 'server_port': 8888, 64 'server_port': 8888,
65 'latency': None 65 'latency': None
66 } 66 }
67 traffic_control.CreateConstrainedPort(config) 67 traffic_control.CreateConstrainedPort(config)
68 expected = [ 68 expected = [
69 'tc qdisc add dev fakeeth root handle 1: htb', 69 'sudo tc qdisc add dev fakeeth root handle 1: htb',
70 'tc class add dev fakeeth parent 1: classid 1:3039 htb rate %dkbps ' 70 'sudo tc class add dev fakeeth parent 1: classid 1:3039 htb rate '
71 'ceil %dkbps' % (traffic_control._DEFAULT_MAX_BANDWIDTH_KBPS, 71 '%dkbit ceil %dkbit' % (traffic_control._DEFAULT_MAX_BANDWIDTH_KBIT,
72 traffic_control._DEFAULT_MAX_BANDWIDTH_KBPS), 72 traffic_control._DEFAULT_MAX_BANDWIDTH_KBIT),
73 'tc qdisc add dev fakeeth parent 1:3039 handle 3039:0 netem', 73 'sudo tc qdisc add dev fakeeth parent 1:3039 handle 3039:0 netem',
74 'tc filter add dev fakeeth protocol ip parent 1: prio 1 u32 match ip ' 74 'sudo tc filter add dev fakeeth protocol ip parent 1: prio 1 u32 '
75 'sport 12345 0xffff flowid 1:3039', 75 'match ip sport 12345 0xffff flowid 1:3039',
76 'iptables -t nat -A PREROUTING -i fakeeth -p tcp --dport 12345 -j ' 76 'sudo iptables -t nat -A PREROUTING -i fakeeth -p tcp --dport 12345 -j '
77 'REDIRECT --to-port 8888', 77 'REDIRECT --to-port 8888',
78 'iptables -t nat -A OUTPUT -p tcp --dport 12345 -j REDIRECT --to-port ' 78 'sudo iptables -t nat -A OUTPUT -p tcp --dport 12345 -j REDIRECT '
79 '8888' 79 '--to-port 8888'
80 ] 80 ]
81 self.assertEqual(expected, self.commands) 81 self.assertEqual(expected, self.commands)
82 82
83 def testDeleteConstrainedPort(self): 83 def testDeleteConstrainedPort(self):
84 config = { 84 config = {
85 'interface': 'fakeeth', 85 'interface': 'fakeeth',
86 'port': 12345, 86 'port': 12345,
87 'server_port': 8888, 87 'server_port': 8888,
88 'bandwidth': 256, 88 'bandwidth': 256,
89 } 89 }
90 _old_GetFilterHandleId = traffic_control._GetFilterHandleId 90 _old_GetFilterHandleId = traffic_control._GetFilterHandleId
91 traffic_control._GetFilterHandleId = lambda interface, port: '800::800' 91 traffic_control._GetFilterHandleId = lambda interface, port: '800::800'
92 92
93 try: 93 try:
94 traffic_control.DeleteConstrainedPort(config) 94 traffic_control.DeleteConstrainedPort(config)
95 expected = [ 95 expected = [
96 'tc filter del dev fakeeth protocol ip parent 1:0 handle 800::800 ' 96 'sudo tc filter del dev fakeeth protocol ip parent 1:0 handle '
97 'prio 1 u32', 97 '800::800 prio 1 u32',
98 'tc class del dev fakeeth parent 1: classid 1:3039 htb rate 256kbps ' 98 'sudo tc class del dev fakeeth parent 1: classid 1:3039 htb rate '
99 'ceil 256kbps', 99 '256kbit ceil 256kbit',
100 'iptables -t nat -D PREROUTING -i fakeeth -p tcp --dport 12345 -j ' 100 'sudo iptables -t nat -D PREROUTING -i fakeeth -p tcp --dport 12345 '
101 'REDIRECT --to-port 8888', 101 '-j REDIRECT --to-port 8888',
102 'iptables -t nat -D OUTPUT -p tcp --dport 12345 -j REDIRECT ' 102 'sudo iptables -t nat -D OUTPUT -p tcp --dport 12345 -j REDIRECT '
103 '--to-port 8888'] 103 '--to-port 8888']
104 self.assertEqual(expected, self.commands) 104 self.assertEqual(expected, self.commands)
105 finally: 105 finally:
106 traffic_control._GetFilterHandleId = _old_GetFilterHandleId 106 traffic_control._GetFilterHandleId = _old_GetFilterHandleId
107 107
108 def testTearDown(self): 108 def testTearDown(self):
109 config = {'interface': 'fakeeth'} 109 config = {'interface': 'fakeeth'}
110 110
111 traffic_control.TearDown(config) 111 traffic_control.TearDown(config)
112 expected = [ 112 expected = [
113 'tc qdisc del dev fakeeth root', 113 'sudo tc qdisc del dev fakeeth root',
114 'iptables -t nat -F' 114 'sudo iptables -t nat -F'
115 ] 115 ]
116 self.assertEqual(expected, self.commands) 116 self.assertEqual(expected, self.commands)
117 117
118 def testGetFilterHandleID(self): 118 def testGetFilterHandleID(self):
119 # Check seach for handle ID command. 119 # Check seach for handle ID command.
120 self.assertRaises(traffic_control.TrafficControlError, 120 self.assertRaises(traffic_control.TrafficControlError,
121 traffic_control._GetFilterHandleId, 'fakeeth', 1) 121 traffic_control._GetFilterHandleId, 'fakeeth', 1)
122 self.assertEquals(self.commands, ['tc filter list dev fakeeth parent 1:']) 122 self.assertEquals(self.commands, ['sudo tc filter list dev fakeeth parent '
123 '1:'])
123 124
124 # Check with handle ID available. 125 # Check with handle ID available.
125 traffic_control._Exec = (lambda command, msg: 126 traffic_control._Exec = (lambda command, msg:
126 'filter parent 1: protocol ip'' pref 1 u32 fh 800::800 order 2048 key ht ' 127 'filter protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800 bkt 0 '
127 '800 bkt 0 flowid 1:1') 128 'flowid 1:1 match c3500000/ffff0000 at 20')
DaleCurtis 2012/01/06 23:19:42 Can you explain this change? It's way different th
shadi 2012/01/07 04:56:19 I updated it with exact output example. I also ad
128 output = traffic_control._GetFilterHandleId('fakeeth', 1) 129 output = traffic_control._GetFilterHandleId('fakeeth', 1)
129 self.assertEqual(output, '800::800') 130 self.assertEqual(output, '800::800')
130 131
131 # Check with handle ID not available. 132 # Check with handle ID not available.
132 traffic_control._Exec = lambda command, msg: 'NO ID IN HERE' 133 traffic_control._Exec = lambda command, msg: 'NO ID IN HERE'
133 self.assertRaises(traffic_control.TrafficControlError, 134 self.assertRaises(traffic_control.TrafficControlError,
134 traffic_control._GetFilterHandleId, 'fakeeth', 1) 135 traffic_control._GetFilterHandleId, 'fakeeth', 1)
135 136
136 137
137 if __name__ == '__main__': 138 if __name__ == '__main__':
138 unittest.main() 139 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698