aboutsummaryrefslogtreecommitdiff
path: root/crosperf
diff options
context:
space:
mode:
authorcmtice <cmtice@google.com>2014-10-16 15:49:56 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-10-22 21:50:02 +0000
commit1a224369afcbfd0276f4c7bdc625dec7f7b30d01 (patch)
tree4e8e4cfb7a87124eed85535392d9dd552e5b83e2 /crosperf
parentbf70b0431858abf04d9b894c6d0f060e85589dc5 (diff)
downloadtoolchain-utils-1a224369afcbfd0276f4c7bdc625dec7f7b30d01.tar.gz
Fix issue where crosperf can't find local cros_scratch.
Crosperf was assuming the user always has an NFS home directory, and was looking for the cros_scratch directory there. This makes crosperf use the user's home directory, whether it's NFS or local. Also change --share_users, which also assumed NFS home directories, to --share_cache, which requires specification of the cache path(s) to use. BUG=None TEST=Tested this with my new local homedir. Change-Id: I28d15467dfbd25b8b237cefa2979d3fd9464a7a7 Reviewed-on: https://chrome-internal-review.googlesource.com/179978 Reviewed-by: Yunlian Jiang <yunlian@google.com> Commit-Queue: Caroline Tice <cmtice@google.com> Tested-by: Caroline Tice <cmtice@google.com>
Diffstat (limited to 'crosperf')
-rw-r--r--crosperf/benchmark_run.py8
-rwxr-xr-xcrosperf/benchmark_run_unittest.py2
-rw-r--r--crosperf/experiment.py6
-rw-r--r--crosperf/experiment_factory.py4
-rw-r--r--crosperf/results_cache.py17
-rwxr-xr-xcrosperf/results_cache_unittest.py2
-rw-r--r--crosperf/settings_factory.py7
-rw-r--r--crosperf/settings_factory_unittest.py2
8 files changed, 25 insertions, 23 deletions
diff --git a/crosperf/benchmark_run.py b/crosperf/benchmark_run.py
index f35b6928..0632dde6 100644
--- a/crosperf/benchmark_run.py
+++ b/crosperf/benchmark_run.py
@@ -37,7 +37,7 @@ class BenchmarkRun(threading.Thread):
machine_manager,
logger_to_use,
log_level,
- share_users):
+ share_cache):
threading.Thread.__init__(self)
self.name = name
self._logger = logger_to_use
@@ -62,7 +62,7 @@ class BenchmarkRun(threading.Thread):
log_level=self.log_level)
self.timeline = timeline.Timeline()
self.timeline.Record(STATUS_PENDING)
- self.share_users = share_users
+ self.share_cache = share_cache
def ReadCache(self):
# Just use the first machine for running the cached version,
@@ -80,7 +80,7 @@ class BenchmarkRun(threading.Thread):
self._logger,
self.log_level,
self.label,
- self.share_users,
+ self.share_cache,
self.benchmark.suite,
self.benchmark.show_all_results
)
@@ -245,7 +245,7 @@ class MockBenchmarkRun(BenchmarkRun):
self._logger,
self.log_level,
self.label,
- self.share_users,
+ self.share_cache,
self.benchmark.suite,
self.benchmark.show_all_results
)
diff --git a/crosperf/benchmark_run_unittest.py b/crosperf/benchmark_run_unittest.py
index d13806e8..8bb0a3b0 100755
--- a/crosperf/benchmark_run_unittest.py
+++ b/crosperf/benchmark_run_unittest.py
@@ -85,7 +85,7 @@ class BenchmarkRunTest(unittest.TestCase):
# since the last time this test was updated:
args_list = ['self', 'name', 'benchmark', 'label', 'iteration',
'cache_conditions', 'machine_manager', 'logger_to_use',
- 'log_level', 'share_users']
+ 'log_level', 'share_cache']
arg_spec = inspect.getargspec(benchmark_run.BenchmarkRun.__init__)
self.assertEqual(len(arg_spec.args), len(args_list))
self.assertEqual (arg_spec.args, args_list)
diff --git a/crosperf/experiment.py b/crosperf/experiment.py
index c6371318..d56603ab 100644
--- a/crosperf/experiment.py
+++ b/crosperf/experiment.py
@@ -24,7 +24,7 @@ class Experiment(object):
def __init__(self, name, remote, working_directory,
chromeos_root, cache_conditions, labels, benchmarks,
experiment_file, email_to, acquire_timeout, log_dir,
- log_level, share_users, results_directory):
+ log_level, share_cache, results_directory):
self.name = name
self.working_directory = working_directory
self.remote = remote
@@ -43,7 +43,7 @@ class Experiment(object):
self.benchmarks = benchmarks
self.num_complete = 0
self.num_run_complete = 0
- self.share_users = share_users
+ self.share_cache = share_cache
# We need one chromeos_root to run the benchmarks in, but it doesn't
# matter where it is, unless the ABIs are different.
@@ -93,7 +93,7 @@ class Experiment(object):
self.machine_manager,
logger_to_use,
self.log_level,
- self.share_users)
+ self.share_cache)
benchmark_runs.append(benchmark_run)
return benchmark_runs
diff --git a/crosperf/experiment_factory.py b/crosperf/experiment_factory.py
index 86bf19cd..1fd51885 100644
--- a/crosperf/experiment_factory.py
+++ b/crosperf/experiment_factory.py
@@ -106,7 +106,7 @@ class ExperimentFactory(object):
cache_dir = global_settings.GetField("cache_dir")
cache_only = global_settings.GetField("cache_only")
config.AddConfig("no_email", global_settings.GetField("no_email"))
- share_users = global_settings.GetField("share_users")
+ share_cache = global_settings.GetField("share_cache")
results_dir = global_settings.GetField("results_dir")
chrome_src = global_settings.GetField("chrome_src")
show_all_results = global_settings.GetField("show_all_results")
@@ -213,7 +213,7 @@ class ExperimentFactory(object):
cache_conditions, labels, benchmarks,
experiment_file.Canonicalize(),
email, acquire_timeout, log_dir, log_level,
- share_users,
+ share_cache,
results_dir)
return experiment
diff --git a/crosperf/results_cache.py b/crosperf/results_cache.py
index efdb405f..de6e572a 100644
--- a/crosperf/results_cache.py
+++ b/crosperf/results_cache.py
@@ -21,8 +21,7 @@ from utils import misc
from image_checksummer import ImageChecksummer
-SCRATCH_BASE = "/home/%s/cros_scratch"
-SCRATCH_DIR = SCRATCH_BASE % getpass.getuser()
+SCRATCH_DIR = os.path.expanduser("~/cros_scratch")
RESULTS_FILE = "results.txt"
MACHINE_FILE = "machine.txt"
AUTOTEST_TARBALL = "autotest.tbz2"
@@ -471,7 +470,7 @@ class ResultsCache(object):
def Init(self, chromeos_image, chromeos_root, test_name, iteration,
test_args, profiler_args, machine_manager, board, cache_conditions,
- logger_to_use, log_level, label, share_users, suite,
+ logger_to_use, log_level, label, share_cache, suite,
show_all_results):
self.chromeos_image = chromeos_image
self.chromeos_root = chromeos_root
@@ -486,7 +485,7 @@ class ResultsCache(object):
self._ce = command_executer.GetCommandExecuter(self._logger,
log_level=log_level)
self.label = label
- self.share_users = share_users
+ self.share_cache = share_cache
self.suite = suite
self.log_level = log_level
self.show_all = show_all_results
@@ -514,10 +513,12 @@ class ResultsCache(object):
else:
cache_path = [os.path.join(SCRATCH_DIR, cache_dir)]
- if len(self.share_users):
- for i in [x.strip() for x in self.share_users.split(",")]:
- path = SCRATCH_BASE % i
- cache_path.append(os.path.join(path, cache_dir))
+ if len(self.share_cache):
+ for path in [x.strip() for x in self.share_cache.split(",")]:
+ if os.path.exists(path):
+ cache_path.append(os.path.join(path, cache_dir))
+ else:
+ self._logger.LogFatal("Unable to find shared cache: %s" % path)
return cache_path
diff --git a/crosperf/results_cache_unittest.py b/crosperf/results_cache_unittest.py
index dff51b3a..01959689 100755
--- a/crosperf/results_cache_unittest.py
+++ b/crosperf/results_cache_unittest.py
@@ -792,7 +792,7 @@ class ResultsCacheTest(unittest.TestCase):
self.mock_logger,
'average',
self.mock_label,
- '', # benchmark_run.share_users
+ '', # benchmark_run.share_cache
'telemetry_Crosperf',
True) # benchmark_run.show_all_results
diff --git a/crosperf/settings_factory.py b/crosperf/settings_factory.py
index 78abbc82..d86dc2bc 100644
--- a/crosperf/settings_factory.py
+++ b/crosperf/settings_factory.py
@@ -127,9 +127,10 @@ class GlobalSettings(Settings):
description="When running Telemetry tests, "
"whether to all the results, instead of just "
"the default (summary) results."))
- self.AddField(TextField("share_users", default="",
- description="Who's cache data you want to "
- "use. It accepts multiple users seperated by \",\""))
+ self.AddField(TextField("share_cache", default="",
+ description="Path to alternat cache whose data "
+ "you want to use. It accepts multiples directories"
+ " se[arated bu a \",\""))
self.AddField(TextField("results_dir", default="",
description="The results dir"))
self.AddField(TextField("chrome_src",
diff --git a/crosperf/settings_factory_unittest.py b/crosperf/settings_factory_unittest.py
index f3376db5..6c0d9072 100644
--- a/crosperf/settings_factory_unittest.py
+++ b/crosperf/settings_factory_unittest.py
@@ -64,7 +64,7 @@ class GlobalSettingsTest(unittest.TestCase):
self.assertEqual(res.GetField('cache_only'), False)
self.assertEqual(res.GetField('no_email'), False)
self.assertEqual(res.GetField('show_all_results'), False)
- self.assertEqual(res.GetField('share_users'), '')
+ self.assertEqual(res.GetField('share_cache'), '')
self.assertEqual(res.GetField('results_dir'), '')
self.assertEqual(res.GetField('chrome_src'), '')