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

Side by Side Diff: client/cros/chrome_test.py

Issue 6677172: Add option to not nuke Chrome to chrome_test.py (Closed) Base URL: http://git.chromium.org/git/autotest.git@master
Patch Set: Created 9 years, 8 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 | « no previous file | 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 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import logging, os, re, shutil, stat, subprocess, tempfile 5 import logging, os, re, shutil, stat, subprocess, tempfile
6 import common 6 import common
7 import constants, cros_ui, login 7 import constants, cros_ui, login
8 from autotest_lib.client.bin import test, utils 8 from autotest_lib.client.bin import test, utils
9 from autotest_lib.client.common_lib import error, global_config 9 from autotest_lib.client.common_lib import error, global_config
10 10
11 class ChromeTestBase(test.test): 11 class ChromeTestBase(test.test):
12 home_dir = None 12 home_dir = None
13 chrome_restart_disabled = False
13 14
14 def setup(self): 15 def setup(self):
15 self.job.setup_dep(['chrome_test']) 16 self.job.setup_dep(['chrome_test'])
16 # create a empty srcdir to prevent the error that checks .version file 17 # create a empty srcdir to prevent the error that checks .version file
17 if not os.path.exists(self.srcdir): 18 if not os.path.exists(self.srcdir):
18 os.mkdir(self.srcdir) 19 os.mkdir(self.srcdir)
19 20
21 def nuke_chrome(self):
22 try:
23 open(constants.DISABLE_BROWSER_RESTART_MAGIC_FILE, 'w').close()
24 self.chrome_restart_disabled = True
25 except IOError, e:
26 logging.debug(e)
27 raise error.TestError('Failed to disable browser restarting.')
28 login.nuke_process_by_name(name=constants.BROWSER, with_prejudice=True)
20 29
21 def initialize(self): 30
31 def initialize(self, nuke_browser_norestart = True):
Nirnimesh 2011/04/05 22:45:50 remove space around =
22 self.home_dir = tempfile.mkdtemp() 32 self.home_dir = tempfile.mkdtemp()
23 os.chmod(self.home_dir, stat.S_IROTH | stat.S_IWOTH |stat.S_IXOTH) 33 os.chmod(self.home_dir, stat.S_IROTH | stat.S_IWOTH |stat.S_IXOTH)
24 dep = 'chrome_test' 34 dep = 'chrome_test'
25 dep_dir = os.path.join(self.autodir, 'deps', dep) 35 dep_dir = os.path.join(self.autodir, 'deps', dep)
26 self.job.install_pkg(dep, 'dep', dep_dir) 36 self.job.install_pkg(dep, 'dep', dep_dir)
27 self.cr_source_dir = '%s/test_src' % dep_dir 37 self.cr_source_dir = '%s/test_src' % dep_dir
28 self.test_binary_dir = '%s/out/Release' % self.cr_source_dir 38 self.test_binary_dir = '%s/out/Release' % self.cr_source_dir
29 try: 39 if (nuke_browser_norestart):
30 open(constants.DISABLE_BROWSER_RESTART_MAGIC_FILE, 'w').close() 40 self.nuke_chrome()
31 except IOError, e:
32 logging.debug(e)
33 raise error.TestError('Failed to disable browser restarting.')
34 login.nuke_process_by_name(name=constants.BROWSER, with_prejudice=True)
35 try: 41 try:
36 setup_cmd = '/bin/sh %s/%s' % (self.test_binary_dir, 42 setup_cmd = '/bin/sh %s/%s' % (self.test_binary_dir,
37 'setup_test_links.sh') 43 'setup_test_links.sh')
38 utils.system(setup_cmd) # this might raise an exception 44 utils.system(setup_cmd) # this might raise an exception
39 except error.CmdError, e: 45 except error.CmdError, e:
40 raise error.TestError(e) 46 raise error.TestError(e)
41 47
42 48
43 def filter_bad_tests(self, tests): 49 def filter_bad_tests(self, tests):
44 matcher = re.compile(".+\.(FLAKY|FAILS|DISABLED).+") 50 matcher = re.compile(".+\.(FLAKY|FAILS|DISABLED).+")
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 raise error.TestFail('%s failed!' % test_to_run) 92 raise error.TestFail('%s failed!' % test_to_run)
87 93
88 94
89 def generate_test_list(self, binary, group, total_groups): 95 def generate_test_list(self, binary, group, total_groups):
90 all_tests = self.list_chrome_tests(self.binary_to_run) 96 all_tests = self.list_chrome_tests(self.binary_to_run)
91 group_size = len(all_tests)/total_groups + 1 # to be safe 97 group_size = len(all_tests)/total_groups + 1 # to be safe
92 return all_tests[group*group_size:group*group_size+group_size] 98 return all_tests[group*group_size:group*group_size+group_size]
93 99
94 100
95 def cleanup(self): 101 def cleanup(self):
96 # Allow chrome to be restarted again. 102 if self.chrome_restart_disabled:
97 os.unlink(constants.DISABLE_BROWSER_RESTART_MAGIC_FILE) 103 # Allow chrome to be restarted again.
104 os.unlink(constants.DISABLE_BROWSER_RESTART_MAGIC_FILE)
98 # Reset the UI. 105 # Reset the UI.
99 login.nuke_login_manager() 106 login.nuke_login_manager()
100 login.refresh_login_screen() 107 login.refresh_login_screen()
101 if self.home_dir: 108 if self.home_dir:
102 shutil.rmtree(self.home_dir, ignore_errors=True) 109 shutil.rmtree(self.home_dir, ignore_errors=True)
103 test.test.cleanup(self) 110 test.test.cleanup(self)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698