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

Side by Side Diff: tools/isolate/run_test_from_archive.py

Issue 10890027: Fix errors in xvfb.py and run_test_from_archive.py (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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
« no previous file with comments | « testing/test_env.py ('k') | no next file » | 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 (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 """Reads a manifest, creates a tree of hardlinks and runs the test. 6 """Reads a manifest, creates a tree of hardlinks and runs the test.
7 7
8 Keeps a local cache. 8 Keeps a local cache.
9 """ 9 """
10 10
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 def fetch_files(self, cache, files): 647 def fetch_files(self, cache, files):
648 """Adds files in this manifest not present in files dictionary. 648 """Adds files in this manifest not present in files dictionary.
649 649
650 Preemptively request files. 650 Preemptively request files.
651 651
652 Note that |files| is modified by this function. 652 Note that |files| is modified by this function.
653 """ 653 """
654 assert self.can_fetch 654 assert self.can_fetch
655 if not self._manifest_parsed or self.files_fetched: 655 if not self._manifest_parsed or self.files_fetched:
656 return 656 return
657 logging.info('fetch_files(%s)' % self.obj_hash) 657 logging.debug('fetch_files(%s)' % self.obj_hash)
658 for filepath, properties in self.data.get('files', {}).iteritems(): 658 for filepath, properties in self.data.get('files', {}).iteritems():
659 # Root manifest has priority on the files being mapped. In particular, 659 # Root manifest has priority on the files being mapped. In particular,
660 # overriden files must not be fetched. 660 # overriden files must not be fetched.
661 if filepath not in files: 661 if filepath not in files:
662 files[filepath] = properties 662 files[filepath] = properties
663 if 'sha-1' in properties: 663 if 'sha-1' in properties:
664 # Preemptively request files. 664 # Preemptively request files.
665 logging.info('fetching %s' % filepath) 665 logging.debug('fetching %s' % filepath)
666 cache.retrieve(Remote.MED, properties['sha-1']) 666 cache.retrieve(Remote.MED, properties['sha-1'])
667 self.files_fetched = True 667 self.files_fetched = True
668 668
669 669
670 class Settings(object): 670 class Settings(object):
671 """Results of a completely parsed manifest.""" 671 """Results of a completely parsed manifest."""
672 def __init__(self): 672 def __init__(self):
673 self.command = [] 673 self.command = []
674 self.files = {} 674 self.files = {}
675 self.read_only = None 675 self.read_only = None
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 settings.load(cache, manifest_hash) 771 settings.load(cache, manifest_hash)
772 772
773 if not settings.command: 773 if not settings.command:
774 print >> sys.stderr, 'No command to run' 774 print >> sys.stderr, 'No command to run'
775 return 1 775 return 1
776 776
777 with Profiler('GetRest') as _prof: 777 with Profiler('GetRest') as _prof:
778 logging.debug('Creating directories') 778 logging.debug('Creating directories')
779 # Creates the tree of directories to create. 779 # Creates the tree of directories to create.
780 directories = set(os.path.dirname(f) for f in settings.files) 780 directories = set(os.path.dirname(f) for f in settings.files)
781 for item in directories: 781 for item in list(directories):
782 directories.add(os.path.dirname(item)) 782 while item:
783 directories.add(item)
784 item = os.path.dirname(item)
783 for d in sorted(directories): 785 for d in sorted(directories):
784 if d: 786 if d:
785 os.mkdir(os.path.join(outdir, d)) 787 os.mkdir(os.path.join(outdir, d))
786 788
787 # Creates the links if necessary. 789 # Creates the links if necessary.
788 for filepath, properties in settings.files.iteritems(): 790 for filepath, properties in settings.files.iteritems():
789 if 'link' not in properties: 791 if 'link' not in properties:
790 continue 792 continue
791 outfile = os.path.join(outdir, filepath) 793 outfile = os.path.join(outdir, filepath)
792 os.symlink(properties['link'], outfile) 794 os.symlink(properties['link'], outfile)
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
901 os.path.abspath(options.cache), 903 os.path.abspath(options.cache),
902 options.remote, 904 options.remote,
903 policies) 905 policies)
904 except (ConfigError, MappingError), e: 906 except (ConfigError, MappingError), e:
905 print >> sys.stderr, str(e) 907 print >> sys.stderr, str(e)
906 return 1 908 return 1
907 909
908 910
909 if __name__ == '__main__': 911 if __name__ == '__main__':
910 sys.exit(main()) 912 sys.exit(main())
OLDNEW
« no previous file with comments | « testing/test_env.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698