diff options
author | bruening@google.com <bruening@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-21 22:26:48 +0000 |
---|---|---|
committer | bruening@google.com <bruening@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-21 22:26:48 +0000 |
commit | ccaff4c1e8beeaf46223ef2e22f33f6f0a451640 (patch) | |
tree | 7a21eefce3e79c1fb32eb6b0b92834511fa7d269 /tools | |
parent | 5cf19b9eb17bbce0da6aa0f66b53455e5fc1a297 (diff) | |
download | chromium_src-ccaff4c1e8beeaf46223ef2e22f33f6f0a451640.zip chromium_src-ccaff4c1e8beeaf46223ef2e22f33f6f0a451640.tar.gz chromium_src-ccaff4c1e8beeaf46223ef2e22f33f6f0a451640.tar.bz2 |
change temp log dir and --keep_logs log dir and symcache dir to all be inside a dir writable at Low Integrity for the chrome gpu process
BUG=119131
TEST=ran chrome_tests.bat with and without --keep_logs
Review URL: https://chromiumcodereview.appspot.com/9769005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128075 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rw-r--r-- | tools/valgrind/valgrind_test.py | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/tools/valgrind/valgrind_test.py b/tools/valgrind/valgrind_test.py index a44ace99..113460a 100644 --- a/tools/valgrind/valgrind_test.py +++ b/tools/valgrind/valgrind_test.py @@ -33,8 +33,24 @@ class BaseTool(object): """ def __init__(self): - self.temp_dir = tempfile.mkdtemp(prefix="vg_logs_") # Generated every time - self.log_dir = self.temp_dir # overridable by --keep_logs + temp_parent_dir = None + self.log_parent_dir = "" + if common.IsWindows(): + # gpu process on Windows Vista+ runs at Low Integrity and can only + # write to certain directories (http://crbug.com/119131) + # + # TODO(bruening): if scripts die in middle and don't clean up temp + # dir, we'll accumulate files in profile dir. should remove + # really old files automatically. + profile = os.getenv("USERPROFILE") + if profile: + self.log_parent_dir = profile + "\\AppData\\LocalLow\\" + if os.path.exists(self.log_parent_dir): + self.log_parent_dir = common.NormalizeWindowsPath(self.log_parent_dir) + temp_parent_dir = self.log_parent_dir + # Generated every time (even when overridden) + self.temp_dir = tempfile.mkdtemp(prefix="vg_logs_", dir=temp_parent_dir) + self.log_dir = self.temp_dir # overridable by --keep_logs self.option_parser_hooks = [] # TODO(glider): we may not need some of the env vars on some of the # platforms. @@ -125,10 +141,12 @@ class BaseTool(object): self._timeout = int(self._options.timeout) self._source_dir = self._options.source_dir if self._options.keep_logs: - self.log_dir = "%s.logs" % self.ToolName() + # log_parent_dir has trailing slash if non-empty + self.log_dir = self.log_parent_dir + "%s.logs" % self.ToolName() if os.path.exists(self.log_dir): shutil.rmtree(self.log_dir) os.mkdir(self.log_dir) + logging.info("Logs are in " + self.log_dir) self._ignore_exit_code = self._options.ignore_exit_code if self._options.gtest_filter != "": @@ -852,11 +870,16 @@ class DrMemory(BaseTool): proc += ["-logdir", common.NormalizeWindowsPath(self.log_dir)] - if self._options.build_dir: + if self.log_parent_dir: + # gpu process on Windows Vista+ runs at Low Integrity and can only + # write to certain directories (http://crbug.com/119131) + symcache_dir = os.path.join(self.log_parent_dir, "drmemory.symcache") + elif self._options.build_dir: # The other case is only possible with -t cmdline. # Anyways, if we omit -symcache_dir the -logdir's value is used which # should be fine. symcache_dir = os.path.join(self._options.build_dir, "drmemory.symcache") + if symcache_dir: if not os.path.exists(symcache_dir): try: os.mkdir(symcache_dir) @@ -898,6 +921,7 @@ class DrMemory(BaseTool): wrapper_path = os.path.join(self._source_dir, "tools", "valgrind", "browser_wrapper_win.py") self.CreateBrowserWrapper(" ".join(["python", wrapper_path] + proc)) + logging.info("browser wrapper = " + " ".join(proc)) proc = [] # Note that self._args begins with the name of the exe to be run. |