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

Side by Side Diff: tools/run_perf.py

Issue 830753002: Work around 'Text file busy' errors in android perf runner. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 11 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
« 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 the V8 project authors. All rights reserved. 2 # Copyright 2014 the V8 project 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 """ 6 """
7 Performance runner for d8. 7 Performance runner for d8.
8 8
9 Call e.g. with tools/run-perf.py --arch ia32 some_suite.json 9 Call e.g. with tools/run-perf.py --arch ia32 some_suite.json
10 10
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 def _SendCommand(self, cmd): 532 def _SendCommand(self, cmd):
533 logging.info("adb -s %s %s" % (str(self.device), cmd)) 533 logging.info("adb -s %s %s" % (str(self.device), cmd))
534 return self.adb.SendCommand(cmd, timeout_time=60) 534 return self.adb.SendCommand(cmd, timeout_time=60)
535 535
536 def _PushFile(self, host_dir, file_name, target_rel="."): 536 def _PushFile(self, host_dir, file_name, target_rel="."):
537 file_on_host = os.path.join(host_dir, file_name) 537 file_on_host = os.path.join(host_dir, file_name)
538 file_on_device_tmp = os.path.join( 538 file_on_device_tmp = os.path.join(
539 AndroidPlatform.DEVICE_DIR, "_tmp_", file_name) 539 AndroidPlatform.DEVICE_DIR, "_tmp_", file_name)
540 file_on_device = os.path.join( 540 file_on_device = os.path.join(
541 AndroidPlatform.DEVICE_DIR, target_rel, file_name) 541 AndroidPlatform.DEVICE_DIR, target_rel, file_name)
542 folder_on_device = os.path.dirname(file_on_device)
542 543
543 # Only push files not yet pushed in one execution. 544 # Only push files not yet pushed in one execution.
544 if file_on_host in self.pushed: 545 if file_on_host in self.pushed:
545 return 546 return
546 else: 547 else:
547 self.pushed.add(file_on_host) 548 self.pushed.add(file_on_host)
548 549
549 # Work-around for "text file busy" errors. Push the files to a temporary 550 # Work-around for "text file busy" errors. Push the files to a temporary
550 # location and then move them with a shell command. 551 # location and then copy them with a shell command.
551 output = self._SendCommand( 552 output = self._SendCommand(
552 "push %s %s" % (file_on_host, file_on_device_tmp)) 553 "push %s %s" % (file_on_host, file_on_device_tmp))
553 # Success looks like this: "3035 KB/s (12512056 bytes in 4.025s)". 554 # Success looks like this: "3035 KB/s (12512056 bytes in 4.025s)".
554 # Errors look like this: "failed to copy ... ". 555 # Errors look like this: "failed to copy ... ".
555 if output and not re.search('^[0-9]', output.splitlines()[-1]): 556 if output and not re.search('^[0-9]', output.splitlines()[-1]):
556 logging.critical('PUSH FAILED: ' + output) 557 logging.critical('PUSH FAILED: ' + output)
557 self._SendCommand("shell mv %s %s" % (file_on_device_tmp, file_on_device)) 558 self._SendCommand("shell mkdir -p %s" % folder_on_device)
559 self._SendCommand("shell cp %s %s" % (file_on_device_tmp, file_on_device))
558 560
559 def PreTests(self, node, path): 561 def PreTests(self, node, path):
560 suite_dir = os.path.abspath(os.path.dirname(path)) 562 suite_dir = os.path.abspath(os.path.dirname(path))
561 if node.path: 563 if node.path:
562 bench_rel = os.path.normpath(os.path.join(*node.path)) 564 bench_rel = os.path.normpath(os.path.join(*node.path))
563 bench_abs = os.path.join(suite_dir, bench_rel) 565 bench_abs = os.path.join(suite_dir, bench_rel)
564 else: 566 else:
565 bench_rel = "." 567 bench_rel = "."
566 bench_abs = suite_dir 568 bench_abs = suite_dir
567 569
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 697
696 if options.json_test_results: 698 if options.json_test_results:
697 results.WriteToFile(options.json_test_results) 699 results.WriteToFile(options.json_test_results)
698 else: # pragma: no cover 700 else: # pragma: no cover
699 print results 701 print results
700 702
701 return min(1, len(results.errors)) 703 return min(1, len(results.errors))
702 704
703 if __name__ == "__main__": # pragma: no cover 705 if __name__ == "__main__": # pragma: no cover
704 sys.exit(Main(sys.argv[1:])) 706 sys.exit(Main(sys.argv[1:]))
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