| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 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 """Generate fake repositories for testing.""" | 6 """Generate fake repositories for testing.""" |
| 7 | 7 |
| 8 import atexit | 8 import atexit |
| 9 import datetime | 9 import datetime |
| 10 import errno | 10 import errno |
| (...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 745 # parent timestamp on different repositories and the parent revision | 745 # parent timestamp on different repositories and the parent revision |
| 746 # otherwise. | 746 # otherwise. |
| 747 self._set_svn_commit_date('1', '2011-10-01T03:00:00.000000Z') | 747 self._set_svn_commit_date('1', '2011-10-01T03:00:00.000000Z') |
| 748 self._set_svn_commit_date('2', '2011-10-09T03:00:00.000000Z') | 748 self._set_svn_commit_date('2', '2011-10-09T03:00:00.000000Z') |
| 749 self._set_svn_commit_date('3', '2011-10-02T03:00:00.000000Z') | 749 self._set_svn_commit_date('3', '2011-10-02T03:00:00.000000Z') |
| 750 | 750 |
| 751 def populateGit(self): | 751 def populateGit(self): |
| 752 pass | 752 pass |
| 753 | 753 |
| 754 | 754 |
| 755 class FakeRepoSkiaDEPS(FakeReposBase): | |
| 756 """Simulates the Skia DEPS transition in Chrome.""" | |
| 757 | |
| 758 NB_GIT_REPOS = 5 | |
| 759 | |
| 760 DEPS_svn_pre = """deps = { | |
| 761 'src/third_party/skia/gyp': '%(svn_base)sskia/gyp', | |
| 762 'src/third_party/skia/include': '%(svn_base)sskia/include', | |
| 763 'src/third_party/skia/src': '%(svn_base)sskia/src', | |
| 764 }""" | |
| 765 | |
| 766 DEPS_git_pre = """deps = { | |
| 767 'src/third_party/skia/gyp': '%(git_base)srepo_3', | |
| 768 'src/third_party/skia/include': '%(git_base)srepo_4', | |
| 769 'src/third_party/skia/src': '%(git_base)srepo_5', | |
| 770 }""" | |
| 771 | |
| 772 DEPS_post = """deps = { | |
| 773 'src/third_party/skia': '%(git_base)srepo_1', | |
| 774 }""" | |
| 775 | |
| 776 def populateSvn(self): | |
| 777 """Create revisions which simulate the Skia DEPS transition in Chrome.""" | |
| 778 subprocess2.check_call( | |
| 779 ['svn', 'checkout', self.svn_base, self.svn_checkout, | |
| 780 '-q', '--non-interactive', '--no-auth-cache', | |
| 781 '--username', self.USERS[0][0], '--password', self.USERS[0][1]]) | |
| 782 assert os.path.isdir(join(self.svn_checkout, '.svn')) | |
| 783 | |
| 784 # Skia repo. | |
| 785 self._commit_svn({ | |
| 786 'skia/skia_base_file': 'root-level file.', | |
| 787 'skia/gyp/gyp_file': 'file in the gyp directory', | |
| 788 'skia/include/include_file': 'file in the include directory', | |
| 789 'skia/src/src_file': 'file in the src directory', | |
| 790 }) | |
| 791 | |
| 792 # Chrome repo. | |
| 793 self._commit_svn({ | |
| 794 'trunk/src/DEPS': self.DEPS_svn_pre % {'svn_base': self.svn_base}, | |
| 795 'trunk/src/myfile': 'svn/trunk/src@1' | |
| 796 }) | |
| 797 self._commit_svn({ | |
| 798 'trunk/src/DEPS': self.DEPS_post % {'git_base': self.git_base}, | |
| 799 'trunk/src/myfile': 'svn/trunk/src@2' | |
| 800 }) | |
| 801 | |
| 802 def populateGit(self): | |
| 803 # Skia repo. | |
| 804 self._commit_git('repo_1', { | |
| 805 'skia_base_file': 'root-level file.', | |
| 806 'gyp/gyp_file': 'file in the gyp directory', | |
| 807 'include/include_file': 'file in the include directory', | |
| 808 'src/src_file': 'file in the src directory', | |
| 809 }) | |
| 810 self._commit_git('repo_3', { # skia/gyp | |
| 811 'gyp_file': 'file in the gyp directory', | |
| 812 }) | |
| 813 self._commit_git('repo_4', { # skia/include | |
| 814 'include_file': 'file in the include directory', | |
| 815 }) | |
| 816 self._commit_git('repo_5', { # skia/src | |
| 817 'src_file': 'file in the src directory', | |
| 818 }) | |
| 819 | |
| 820 # Chrome repo. | |
| 821 self._commit_git('repo_2', { | |
| 822 'DEPS': self.DEPS_git_pre % {'git_base': self.git_base}, | |
| 823 'myfile': 'svn/trunk/src@1' | |
| 824 }) | |
| 825 self._commit_git('repo_2', { | |
| 826 'DEPS': self.DEPS_post % {'git_base': self.git_base}, | |
| 827 'myfile': 'svn/trunk/src@2' | |
| 828 }) | |
| 829 | |
| 830 | |
| 831 class FakeReposTestBase(trial_dir.TestCase): | 755 class FakeReposTestBase(trial_dir.TestCase): |
| 832 """This is vaguely inspired by twisted.""" | 756 """This is vaguely inspired by twisted.""" |
| 833 # Static FakeRepos instances. Lazy loaded. | 757 # Static FakeRepos instances. Lazy loaded. |
| 834 CACHED_FAKE_REPOS = {} | 758 CACHED_FAKE_REPOS = {} |
| 835 # Override if necessary. | 759 # Override if necessary. |
| 836 FAKE_REPOS_CLASS = FakeRepos | 760 FAKE_REPOS_CLASS = FakeRepos |
| 837 | 761 |
| 838 def setUp(self): | 762 def setUp(self): |
| 839 super(FakeReposTestBase, self).setUp() | 763 super(FakeReposTestBase, self).setUp() |
| 840 if not self.FAKE_REPOS_CLASS in self.CACHED_FAKE_REPOS: | 764 if not self.FAKE_REPOS_CLASS in self.CACHED_FAKE_REPOS: |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 929 fake.set_up_git() | 853 fake.set_up_git() |
| 930 print('Fake setup, press enter to quit or Ctrl-C to keep the checkouts.') | 854 print('Fake setup, press enter to quit or Ctrl-C to keep the checkouts.') |
| 931 sys.stdin.readline() | 855 sys.stdin.readline() |
| 932 except KeyboardInterrupt: | 856 except KeyboardInterrupt: |
| 933 trial_dir.TrialDir.SHOULD_LEAK.leak = True | 857 trial_dir.TrialDir.SHOULD_LEAK.leak = True |
| 934 return 0 | 858 return 0 |
| 935 | 859 |
| 936 | 860 |
| 937 if __name__ == '__main__': | 861 if __name__ == '__main__': |
| 938 sys.exit(main(sys.argv)) | 862 sys.exit(main(sys.argv)) |
| OLD | NEW |