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

Side by Side Diff: build/android/pylib/utils/md5sum_test.py

Issue 1108173002: Roll //build, //native_client, and a few more targets of opportunity. Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Test fix Created 5 years, 7 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
« no previous file with comments | « build/android/pylib/utils/md5sum.py ('k') | build/android/pylib/utils/mock_calls.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import os 6 import os
7 import sys 7 import sys
8 import unittest 8 import unittest
9 9
10 from pylib import cmd_helper 10 from pylib import cmd_helper
(...skipping 21 matching lines...) Expand all
32 for p in self._patchers: 32 for p in self._patchers:
33 p.stop() 33 p.stop()
34 34
35 def testCalculateHostMd5Sums_singlePath(self): 35 def testCalculateHostMd5Sums_singlePath(self):
36 test_path = '/test/host/file.dat' 36 test_path = '/test/host/file.dat'
37 mock_get_cmd_output = mock.Mock( 37 mock_get_cmd_output = mock.Mock(
38 return_value='0123456789abcdeffedcba9876543210 /test/host/file.dat') 38 return_value='0123456789abcdeffedcba9876543210 /test/host/file.dat')
39 with mock.patch('pylib.cmd_helper.GetCmdOutput', new=mock_get_cmd_output): 39 with mock.patch('pylib.cmd_helper.GetCmdOutput', new=mock_get_cmd_output):
40 out = md5sum.CalculateHostMd5Sums(test_path) 40 out = md5sum.CalculateHostMd5Sums(test_path)
41 self.assertEquals(1, len(out)) 41 self.assertEquals(1, len(out))
42 self.assertEquals('0123456789abcdeffedcba9876543210', out[0].hash) 42 self.assertTrue('/test/host/file.dat' in out)
43 self.assertEquals('/test/host/file.dat', out[0].path) 43 self.assertEquals('0123456789abcdeffedcba9876543210',
44 out['/test/host/file.dat'])
44 mock_get_cmd_output.assert_called_once_with( 45 mock_get_cmd_output.assert_called_once_with(
45 [HOST_MD5_EXECUTABLE, '/test/host/file.dat']) 46 [HOST_MD5_EXECUTABLE, '/test/host/file.dat'])
46 47
47 def testCalculateHostMd5Sums_list(self): 48 def testCalculateHostMd5Sums_list(self):
48 test_paths = ['/test/host/file0.dat', '/test/host/file1.dat'] 49 test_paths = ['/test/host/file0.dat', '/test/host/file1.dat']
49 mock_get_cmd_output = mock.Mock( 50 mock_get_cmd_output = mock.Mock(
50 return_value='0123456789abcdeffedcba9876543210 /test/host/file0.dat\n' 51 return_value='0123456789abcdeffedcba9876543210 /test/host/file0.dat\n'
51 '123456789abcdef00fedcba987654321 /test/host/file1.dat\n') 52 '123456789abcdef00fedcba987654321 /test/host/file1.dat\n')
52 with mock.patch('pylib.cmd_helper.GetCmdOutput', new=mock_get_cmd_output): 53 with mock.patch('pylib.cmd_helper.GetCmdOutput', new=mock_get_cmd_output):
53 out = md5sum.CalculateHostMd5Sums(test_paths) 54 out = md5sum.CalculateHostMd5Sums(test_paths)
54 self.assertEquals(2, len(out)) 55 self.assertEquals(2, len(out))
55 self.assertEquals('0123456789abcdeffedcba9876543210', out[0].hash) 56 self.assertTrue('/test/host/file0.dat' in out)
56 self.assertEquals('/test/host/file0.dat', out[0].path) 57 self.assertEquals('0123456789abcdeffedcba9876543210',
57 self.assertEquals('123456789abcdef00fedcba987654321', out[1].hash) 58 out['/test/host/file0.dat'])
58 self.assertEquals('/test/host/file1.dat', out[1].path) 59 self.assertTrue('/test/host/file1.dat' in out)
60 self.assertEquals('123456789abcdef00fedcba987654321',
61 out['/test/host/file1.dat'])
59 mock_get_cmd_output.assert_called_once_with( 62 mock_get_cmd_output.assert_called_once_with(
60 [HOST_MD5_EXECUTABLE, '/test/host/file0.dat', 63 [HOST_MD5_EXECUTABLE, '/test/host/file0.dat',
61 '/test/host/file1.dat']) 64 '/test/host/file1.dat'])
62 65
63 def testCalculateHostMd5Sums_generator(self): 66 def testCalculateHostMd5Sums_generator(self):
64 test_paths = ('/test/host/' + p for p in ['file0.dat', 'file1.dat']) 67 test_paths = ('/test/host/' + p for p in ['file0.dat', 'file1.dat'])
65 mock_get_cmd_output = mock.Mock( 68 mock_get_cmd_output = mock.Mock(
66 return_value='0123456789abcdeffedcba9876543210 /test/host/file0.dat\n' 69 return_value='0123456789abcdeffedcba9876543210 /test/host/file0.dat\n'
67 '123456789abcdef00fedcba987654321 /test/host/file1.dat\n') 70 '123456789abcdef00fedcba987654321 /test/host/file1.dat\n')
68 with mock.patch('pylib.cmd_helper.GetCmdOutput', new=mock_get_cmd_output): 71 with mock.patch('pylib.cmd_helper.GetCmdOutput', new=mock_get_cmd_output):
69 out = md5sum.CalculateHostMd5Sums(test_paths) 72 out = md5sum.CalculateHostMd5Sums(test_paths)
70 self.assertEquals(2, len(out)) 73 self.assertEquals(2, len(out))
71 self.assertEquals('0123456789abcdeffedcba9876543210', out[0].hash) 74 self.assertTrue('/test/host/file0.dat' in out)
72 self.assertEquals('/test/host/file0.dat', out[0].path) 75 self.assertEquals('0123456789abcdeffedcba9876543210',
73 self.assertEquals('123456789abcdef00fedcba987654321', out[1].hash) 76 out['/test/host/file0.dat'])
74 self.assertEquals('/test/host/file1.dat', out[1].path) 77 self.assertTrue('/test/host/file1.dat' in out)
78 self.assertEquals('123456789abcdef00fedcba987654321',
79 out['/test/host/file1.dat'])
75 mock_get_cmd_output.assert_called_once_with( 80 mock_get_cmd_output.assert_called_once_with(
76 [HOST_MD5_EXECUTABLE, '/test/host/file0.dat', '/test/host/file1.dat']) 81 [HOST_MD5_EXECUTABLE, '/test/host/file0.dat', '/test/host/file1.dat'])
77 82
78 def testCalculateDeviceMd5Sums_singlePath(self): 83 def testCalculateDeviceMd5Sums_singlePath(self):
79 test_path = '/storage/emulated/legacy/test/file.dat' 84 test_path = '/storage/emulated/legacy/test/file.dat'
80 85
81 device = mock.NonCallableMock() 86 device = mock.NonCallableMock()
82 device.adb = mock.NonCallableMock() 87 device.adb = mock.NonCallableMock()
83 device.adb.Push = mock.Mock() 88 device.adb.Push = mock.Mock()
84 device_md5sum_output = [ 89 device_md5sum_output = [
85 '0123456789abcdeffedcba9876543210 ' 90 '0123456789abcdeffedcba9876543210 '
86 '/storage/emulated/legacy/test/file.dat', 91 '/storage/emulated/legacy/test/file.dat',
87 ] 92 ]
88 device.RunShellCommand = mock.Mock(return_value=device_md5sum_output) 93 device.RunShellCommand = mock.Mock(return_value=device_md5sum_output)
89 94
90 mock_temp_file = mock.mock_open() 95 mock_temp_file = mock.mock_open()
91 mock_temp_file.return_value.name = '/tmp/test/script/file.sh' 96 mock_temp_file.return_value.name = '/tmp/test/script/file.sh'
92 97
93 mock_device_temp_file = mock.mock_open() 98 mock_device_temp_file = mock.mock_open()
94 mock_device_temp_file.return_value.name = ( 99 mock_device_temp_file.return_value.name = (
95 '/data/local/tmp/test/script/file.sh') 100 '/data/local/tmp/test/script/file.sh')
96 101
97 with mock.patch('tempfile.NamedTemporaryFile', new=mock_temp_file), ( 102 with mock.patch('tempfile.NamedTemporaryFile', new=mock_temp_file), (
98 mock.patch('pylib.utils.device_temp_file.DeviceTempFile', 103 mock.patch('pylib.utils.device_temp_file.DeviceTempFile',
99 new=mock_device_temp_file)): 104 new=mock_device_temp_file)):
100 out = md5sum.CalculateDeviceMd5Sums(test_path, device) 105 out = md5sum.CalculateDeviceMd5Sums(test_path, device)
101 self.assertEquals(1, len(out)) 106 self.assertEquals(1, len(out))
102 self.assertEquals('0123456789abcdeffedcba9876543210', out[0].hash) 107 self.assertTrue('/storage/emulated/legacy/test/file.dat' in out)
103 self.assertEquals('/storage/emulated/legacy/test/file.dat', out[0].path) 108 self.assertEquals('0123456789abcdeffedcba9876543210',
109 out['/storage/emulated/legacy/test/file.dat'])
104 device.adb.Push.assert_called_once_with( 110 device.adb.Push.assert_called_once_with(
105 '/tmp/test/script/file.sh', '/data/local/tmp/test/script/file.sh') 111 '/tmp/test/script/file.sh', '/data/local/tmp/test/script/file.sh')
106 device.RunShellCommand.assert_called_once_with( 112 device.RunShellCommand.assert_called_once_with(
107 ['sh', '/data/local/tmp/test/script/file.sh']) 113 ['sh', '/data/local/tmp/test/script/file.sh'])
108 114
109 def testCalculateDeviceMd5Sums_list(self): 115 def testCalculateDeviceMd5Sums_list(self):
110 test_path = ['/storage/emulated/legacy/test/file0.dat', 116 test_path = ['/storage/emulated/legacy/test/file0.dat',
111 '/storage/emulated/legacy/test/file1.dat'] 117 '/storage/emulated/legacy/test/file1.dat']
112 device = mock.NonCallableMock() 118 device = mock.NonCallableMock()
113 device.adb = mock.NonCallableMock() 119 device.adb = mock.NonCallableMock()
(...skipping 11 matching lines...) Expand all
125 131
126 mock_device_temp_file = mock.mock_open() 132 mock_device_temp_file = mock.mock_open()
127 mock_device_temp_file.return_value.name = ( 133 mock_device_temp_file.return_value.name = (
128 '/data/local/tmp/test/script/file.sh') 134 '/data/local/tmp/test/script/file.sh')
129 135
130 with mock.patch('tempfile.NamedTemporaryFile', new=mock_temp_file), ( 136 with mock.patch('tempfile.NamedTemporaryFile', new=mock_temp_file), (
131 mock.patch('pylib.utils.device_temp_file.DeviceTempFile', 137 mock.patch('pylib.utils.device_temp_file.DeviceTempFile',
132 new=mock_device_temp_file)): 138 new=mock_device_temp_file)):
133 out = md5sum.CalculateDeviceMd5Sums(test_path, device) 139 out = md5sum.CalculateDeviceMd5Sums(test_path, device)
134 self.assertEquals(2, len(out)) 140 self.assertEquals(2, len(out))
135 self.assertEquals('0123456789abcdeffedcba9876543210', out[0].hash) 141 self.assertTrue('/storage/emulated/legacy/test/file0.dat' in out)
136 self.assertEquals('/storage/emulated/legacy/test/file0.dat', out[0].path) 142 self.assertEquals('0123456789abcdeffedcba9876543210',
137 self.assertEquals('123456789abcdef00fedcba987654321', out[1].hash) 143 out['/storage/emulated/legacy/test/file0.dat'])
138 self.assertEquals('/storage/emulated/legacy/test/file1.dat', out[1].path) 144 self.assertTrue('/storage/emulated/legacy/test/file1.dat' in out)
145 self.assertEquals('123456789abcdef00fedcba987654321',
146 out['/storage/emulated/legacy/test/file1.dat'])
139 device.adb.Push.assert_called_once_with( 147 device.adb.Push.assert_called_once_with(
140 '/tmp/test/script/file.sh', '/data/local/tmp/test/script/file.sh') 148 '/tmp/test/script/file.sh', '/data/local/tmp/test/script/file.sh')
141 device.RunShellCommand.assert_called_once_with( 149 device.RunShellCommand.assert_called_once_with(
142 ['sh', '/data/local/tmp/test/script/file.sh']) 150 ['sh', '/data/local/tmp/test/script/file.sh'])
143 151
144 def testCalculateDeviceMd5Sums_generator(self): 152 def testCalculateDeviceMd5Sums_generator(self):
145 test_path = ('/storage/emulated/legacy/test/file%d.dat' % n 153 test_path = ('/storage/emulated/legacy/test/file%d.dat' % n
146 for n in xrange(0, 2)) 154 for n in xrange(0, 2))
147 155
148 device = mock.NonCallableMock() 156 device = mock.NonCallableMock()
(...skipping 12 matching lines...) Expand all
161 169
162 mock_device_temp_file = mock.mock_open() 170 mock_device_temp_file = mock.mock_open()
163 mock_device_temp_file.return_value.name = ( 171 mock_device_temp_file.return_value.name = (
164 '/data/local/tmp/test/script/file.sh') 172 '/data/local/tmp/test/script/file.sh')
165 173
166 with mock.patch('tempfile.NamedTemporaryFile', new=mock_temp_file), ( 174 with mock.patch('tempfile.NamedTemporaryFile', new=mock_temp_file), (
167 mock.patch('pylib.utils.device_temp_file.DeviceTempFile', 175 mock.patch('pylib.utils.device_temp_file.DeviceTempFile',
168 new=mock_device_temp_file)): 176 new=mock_device_temp_file)):
169 out = md5sum.CalculateDeviceMd5Sums(test_path, device) 177 out = md5sum.CalculateDeviceMd5Sums(test_path, device)
170 self.assertEquals(2, len(out)) 178 self.assertEquals(2, len(out))
171 self.assertEquals('0123456789abcdeffedcba9876543210', out[0].hash) 179 self.assertTrue('/storage/emulated/legacy/test/file0.dat' in out)
172 self.assertEquals('/storage/emulated/legacy/test/file0.dat', out[0].path) 180 self.assertEquals('0123456789abcdeffedcba9876543210',
173 self.assertEquals('123456789abcdef00fedcba987654321', out[1].hash) 181 out['/storage/emulated/legacy/test/file0.dat'])
174 self.assertEquals('/storage/emulated/legacy/test/file1.dat', out[1].path) 182 self.assertTrue('/storage/emulated/legacy/test/file1.dat' in out)
183 self.assertEquals('123456789abcdef00fedcba987654321',
184 out['/storage/emulated/legacy/test/file1.dat'])
175 device.adb.Push.assert_called_once_with( 185 device.adb.Push.assert_called_once_with(
176 '/tmp/test/script/file.sh', '/data/local/tmp/test/script/file.sh') 186 '/tmp/test/script/file.sh', '/data/local/tmp/test/script/file.sh')
177 device.RunShellCommand.assert_called_once_with( 187 device.RunShellCommand.assert_called_once_with(
188 ['sh', '/data/local/tmp/test/script/file.sh'])
189
190 def testCalculateDeviceMd5Sums_singlePath_linkerWarning(self):
191 # See crbug/479966
192 test_path = '/storage/emulated/legacy/test/file.dat'
193
194 device = mock.NonCallableMock()
195 device.adb = mock.NonCallableMock()
196 device.adb.Push = mock.Mock()
197 device_md5sum_output = [
198 'WARNING: linker: /data/local/tmp/md5sum/md5sum_bin: '
199 'unused DT entry: type 0x1d arg 0x15db',
200 '0123456789abcdeffedcba9876543210 '
201 '/storage/emulated/legacy/test/file.dat',
202 ]
203 device.RunShellCommand = mock.Mock(return_value=device_md5sum_output)
204
205 mock_temp_file = mock.mock_open()
206 mock_temp_file.return_value.name = '/tmp/test/script/file.sh'
207
208 mock_device_temp_file = mock.mock_open()
209 mock_device_temp_file.return_value.name = (
210 '/data/local/tmp/test/script/file.sh')
211
212 with mock.patch('tempfile.NamedTemporaryFile', new=mock_temp_file), (
213 mock.patch('pylib.utils.device_temp_file.DeviceTempFile',
214 new=mock_device_temp_file)):
215 out = md5sum.CalculateDeviceMd5Sums(test_path, device)
216 self.assertEquals(1, len(out))
217 self.assertTrue('/storage/emulated/legacy/test/file.dat' in out)
218 self.assertEquals('0123456789abcdeffedcba9876543210',
219 out['/storage/emulated/legacy/test/file.dat'])
220 device.adb.Push.assert_called_once_with(
221 '/tmp/test/script/file.sh', '/data/local/tmp/test/script/file.sh')
222 device.RunShellCommand.assert_called_once_with(
178 ['sh', '/data/local/tmp/test/script/file.sh']) 223 ['sh', '/data/local/tmp/test/script/file.sh'])
179 224
180 225
181 if __name__ == '__main__': 226 if __name__ == '__main__':
182 unittest.main(verbosity=2) 227 unittest.main(verbosity=2)
183 228
OLDNEW
« no previous file with comments | « build/android/pylib/utils/md5sum.py ('k') | build/android/pylib/utils/mock_calls.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698