OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2012 The LUCI Authors. All rights reserved. | 2 # Copyright 2012 The LUCI Authors. All rights reserved. |
3 # Use of this source code is governed under the Apache License, Version 2.0 | 3 # Use of this source code is governed under the Apache License, Version 2.0 |
4 # that can be found in the LICENSE file. | 4 # that can be found in the LICENSE file. |
5 | 5 |
6 import cStringIO | 6 import cStringIO |
7 import hashlib | 7 import hashlib |
8 import json | 8 import json |
9 import logging | 9 import logging |
10 import optparse | 10 import optparse |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 tools.write_json(isolate_file, isolate_content, False) | 250 tools.write_json(isolate_file, isolate_content, False) |
251 expected = { | 251 expected = { |
252 'algo': 'sha-1', | 252 'algo': 'sha-1', |
253 'files': {}, | 253 'files': {}, |
254 'read_only': 0, | 254 'read_only': 0, |
255 'relative_cwd': '.', | 255 'relative_cwd': '.', |
256 'version': isolated_format.ISOLATED_FILE_VERSION, | 256 'version': isolated_format.ISOLATED_FILE_VERSION, |
257 } | 257 } |
258 complete_state = isolate.CompleteState(None, isolate.SavedState(self.cwd)) | 258 complete_state = isolate.CompleteState(None, isolate.SavedState(self.cwd)) |
259 complete_state.load_isolate( | 259 complete_state.load_isolate( |
260 unicode(self.cwd), unicode(isolate_file), {}, {}, {}, None, False) | 260 unicode(self.cwd), unicode(isolate_file), {}, {}, {}, None, False, |
| 261 False) |
261 self.assertEqual(expected, complete_state.saved_state.to_isolated()) | 262 self.assertEqual(expected, complete_state.saved_state.to_isolated()) |
262 | 263 |
263 | 264 |
264 class IsolateLoad(IsolateBase): | 265 class IsolateLoad(IsolateBase): |
265 def setUp(self): | 266 def setUp(self): |
266 super(IsolateLoad, self).setUp() | 267 super(IsolateLoad, self).setUp() |
267 self.directory = tempfile.mkdtemp(prefix=u'isolate_') | 268 self.directory = tempfile.mkdtemp(prefix=u'isolate_') |
268 self.isolate_dir = os.path.join(self.directory, u'isolate') | 269 self.isolate_dir = os.path.join(self.directory, u'isolate') |
269 self.isolated_dir = os.path.join(self.directory, u'isolated') | 270 self.isolated_dir = os.path.join(self.directory, u'isolated') |
270 os.mkdir(self.isolated_dir, 0700) | 271 os.mkdir(self.isolated_dir, 0700) |
(...skipping 11 matching lines...) Expand all Loading... |
282 outdir = os.path.join(self.directory, 'outdir') | 283 outdir = os.path.join(self.directory, 'outdir') |
283 isolate = isolate_file | 284 isolate = isolate_file |
284 blacklist = list(isolateserver.DEFAULT_BLACKLIST) | 285 blacklist = list(isolateserver.DEFAULT_BLACKLIST) |
285 path_variables = {} | 286 path_variables = {} |
286 config_variables = { | 287 config_variables = { |
287 'OS': 'linux', | 288 'OS': 'linux', |
288 'chromeos': 1, | 289 'chromeos': 1, |
289 } | 290 } |
290 extra_variables = {'foo': 'bar'} | 291 extra_variables = {'foo': 'bar'} |
291 ignore_broken_items = False | 292 ignore_broken_items = False |
| 293 collapse_symlinks = False |
292 return Options() | 294 return Options() |
293 | 295 |
294 def _cleanup_isolated(self, expected_isolated): | 296 def _cleanup_isolated(self, expected_isolated): |
295 """Modifies isolated to remove the non-deterministic parts.""" | 297 """Modifies isolated to remove the non-deterministic parts.""" |
296 if sys.platform == 'win32': | 298 if sys.platform == 'win32': |
297 # 'm' are not saved in windows. | 299 # 'm' are not saved in windows. |
298 for values in expected_isolated['files'].itervalues(): | 300 for values in expected_isolated['files'].itervalues(): |
299 self.assertTrue(values.pop('m')) | 301 self.assertTrue(values.pop('m')) |
300 | 302 |
301 def _cleanup_saved_state(self, actual_saved_state): | 303 def _cleanup_saved_state(self, actual_saved_state): |
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
969 base = os.path.dirname(f) | 971 base = os.path.dirname(f) |
970 if not os.path.isdir(base): | 972 if not os.path.isdir(base): |
971 os.mkdir(base) | 973 os.mkdir(base) |
972 open(f, 'wb').close() | 974 open(f, 'wb').close() |
973 | 975 |
974 c = isolate.CompleteState(isolated, isolate.SavedState(isolated_dir)) | 976 c = isolate.CompleteState(isolated, isolate.SavedState(isolated_dir)) |
975 config = { | 977 config = { |
976 'OS': config_os, | 978 'OS': config_os, |
977 } | 979 } |
978 c.load_isolate( | 980 c.load_isolate( |
979 unicode(self.cwd), root_isolate, {}, config, {}, None, False) | 981 unicode(self.cwd), root_isolate, {}, config, {}, None, False, False) |
980 # Note that load_isolate() doesn't retrieve the meta data about each file. | 982 # Note that load_isolate() doesn't retrieve the meta data about each file. |
981 expected = { | 983 expected = { |
982 'algo': 'sha-1', | 984 'algo': 'sha-1', |
983 'command': command, | 985 'command': command, |
984 'files': { | 986 'files': { |
985 unicode(f.replace('/', os.path.sep)):{} for f in expected_files | 987 unicode(f.replace('/', os.path.sep)):{} for f in expected_files |
986 }, | 988 }, |
987 'read_only': 1, | 989 'read_only': 1, |
988 'relative_cwd': relative_cwd.replace('/', os.path.sep), | 990 'relative_cwd': relative_cwd.replace('/', os.path.sep), |
989 'version': isolated_format.ISOLATED_FILE_VERSION, | 991 'version': isolated_format.ISOLATED_FILE_VERSION, |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1164 config = { | 1166 config = { |
1165 'OS': config_os, | 1167 'OS': config_os, |
1166 } | 1168 } |
1167 paths = { | 1169 paths = { |
1168 'PATH': 'path/', | 1170 'PATH': 'path/', |
1169 } | 1171 } |
1170 extra = { | 1172 extra = { |
1171 'EXTRA': 'indeed', | 1173 'EXTRA': 'indeed', |
1172 } | 1174 } |
1173 c.load_isolate( | 1175 c.load_isolate( |
1174 unicode(cwd), root_isolate, paths, config, extra, None, False) | 1176 unicode(cwd), root_isolate, paths, config, extra, None, False, False) |
1175 # Note that load_isolate() doesn't retrieve the meta data about each file. | 1177 # Note that load_isolate() doesn't retrieve the meta data about each file. |
1176 expected = { | 1178 expected = { |
1177 'algo': 'sha-1', | 1179 'algo': 'sha-1', |
1178 'command': command, | 1180 'command': command, |
1179 'files': { | 1181 'files': { |
1180 unicode(os.path.join(cwd_name, config_os, 'path', f)): {} | 1182 unicode(os.path.join(cwd_name, config_os, 'path', f)): {} |
1181 for f in expected_files | 1183 for f in expected_files |
1182 }, | 1184 }, |
1183 'read_only': 1, | 1185 'read_only': 1, |
1184 'relative_cwd': relative_cwd, | 1186 'relative_cwd': relative_cwd, |
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1619 | 1621 |
1620 def clear_env_vars(): | 1622 def clear_env_vars(): |
1621 for e in ('ISOLATE_DEBUG', 'ISOLATE_SERVER'): | 1623 for e in ('ISOLATE_DEBUG', 'ISOLATE_SERVER'): |
1622 os.environ.pop(e, None) | 1624 os.environ.pop(e, None) |
1623 | 1625 |
1624 | 1626 |
1625 if __name__ == '__main__': | 1627 if __name__ == '__main__': |
1626 fix_encoding.fix_encoding() | 1628 fix_encoding.fix_encoding() |
1627 clear_env_vars() | 1629 clear_env_vars() |
1628 test_utils.main() | 1630 test_utils.main() |
OLD | NEW |