Index: tools/run_perf.py |
diff --git a/tools/run_perf.py b/tools/run_perf.py |
index 0a24c08e0775ad75057e3bfc9049c9ad97d7cd16..b8b49aa724e262225b9e28f431cd1978d77378a0 100755 |
--- a/tools/run_perf.py |
+++ b/tools/run_perf.py |
@@ -219,7 +219,9 @@ class Graph(Node): |
self.graphs = parent.graphs[:] + [suite["name"]] |
self.flags = parent.flags[:] + suite.get("flags", []) |
self.test_flags = parent.test_flags[:] + suite.get("test_flags", []) |
- self.resources = parent.resources[:] + suite.get("resources", []) |
+ |
+ # Values independent of parent node. |
+ self.resources = suite.get("resources", []) |
# Descrete values (with parent defaults). |
self.binary = suite.get("binary", parent.binary) |
@@ -519,9 +521,10 @@ class AndroidPlatform(Platform): # pragma: no cover |
cwd=AndroidPlatform.DEVICE_DIR, |
) |
- def _PushFile(self, host_dir, file_name): |
+ def _PushFile(self, host_dir, file_name, target_rel="."): |
file_on_host = os.path.join(host_dir, file_name) |
- file_on_device = AndroidPlatform.DEVICE_DIR + file_name |
+ file_on_device = os.path.join( |
+ AndroidPlatform.DEVICE_DIR, target_rel, file_name) |
# Only push files not yet pushed in one execution. |
if file_on_host in self.pushed: |
@@ -535,26 +538,34 @@ class AndroidPlatform(Platform): # pragma: no cover |
def PreTests(self, node, path): |
suite_dir = os.path.abspath(os.path.dirname(path)) |
if node.path: |
- bench_dir = os.path.join(suite_dir, |
- os.path.normpath(os.path.join(*node.path))) |
+ bench_rel = os.path.normpath(os.path.join(*node.path)) |
+ bench_abs = os.path.join(suite_dir, bench_rel) |
else: |
- bench_dir = suite_dir |
+ bench_rel = "." |
+ bench_abs = suite_dir |
self._PushFile(self.shell_dir, node.binary) |
if isinstance(node, Runnable): |
- self._PushFile(bench_dir, node.main) |
+ self._PushFile(bench_abs, node.main, bench_rel) |
for resource in node.resources: |
- self._PushFile(bench_dir, resource) |
+ self._PushFile(bench_abs, resource, bench_rel) |
def Run(self, runnable, count): |
cache = cache_control.CacheControl(self.device) |
cache.DropRamCaches() |
binary_on_device = AndroidPlatform.DEVICE_DIR + runnable.binary |
cmd = [binary_on_device] + runnable.GetCommandFlags() |
+ |
+ # Relative path to benchmark directory. |
+ if runnable.path: |
+ bench_rel = os.path.normpath(os.path.join(*runnable.path)) |
+ else: |
+ bench_rel = "." |
+ |
try: |
output = self.device.RunShellCommand( |
cmd, |
- cwd=AndroidPlatform.DEVICE_DIR, |
+ cwd=os.path.join(AndroidPlatform.DEVICE_DIR, bench_rel), |
timeout=runnable.timeout, |
retries=0, |
) |