| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright 2012 the V8 project authors. All rights reserved. | 3 # Copyright 2012 the V8 project authors. All rights reserved. |
| 4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
| 5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
| 6 # met: | 6 # met: |
| 7 # | 7 # |
| 8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
| 9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
| 10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 # and output special error string in case of non-zero exit code. | 35 # and output special error string in case of non-zero exit code. |
| 36 # Then we parse the output of 'adb shell' and look for that error string. | 36 # Then we parse the output of 'adb shell' and look for that error string. |
| 37 | 37 |
| 38 import os | 38 import os |
| 39 from os.path import join, dirname, abspath | 39 from os.path import join, dirname, abspath |
| 40 import subprocess | 40 import subprocess |
| 41 import sys | 41 import sys |
| 42 import tempfile | 42 import tempfile |
| 43 | 43 |
| 44 def Check(output, errors): | 44 def Check(output, errors): |
| 45 failed = any([s.startswith('/system/bin/sh:') or s.startswith('Error') | 45 failed = any([s.startswith('/system/bin/sh:') or s.startswith('ANDROID') |
| 46 for s in output.split('\n')]) | 46 for s in output.split('\n')]) |
| 47 return 1 if failed else 0 | 47 return 1 if failed else 0 |
| 48 | 48 |
| 49 def Execute(cmdline): | 49 def Execute(cmdline): |
| 50 (fd_out, outname) = tempfile.mkstemp() | 50 (fd_out, outname) = tempfile.mkstemp() |
| 51 (fd_err, errname) = tempfile.mkstemp() | 51 (fd_err, errname) = tempfile.mkstemp() |
| 52 process = subprocess.Popen( | 52 process = subprocess.Popen( |
| 53 args=cmdline, | 53 args=cmdline, |
| 54 shell=True, | 54 shell=True, |
| 55 stdout=fd_out, | 55 stdout=fd_out, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 85 | 85 |
| 86 def Main(): | 86 def Main(): |
| 87 if (len(sys.argv) == 1): | 87 if (len(sys.argv) == 1): |
| 88 print("Usage: %s <command-to-run-on-device>" % sys.argv[0]) | 88 print("Usage: %s <command-to-run-on-device>" % sys.argv[0]) |
| 89 return 1 | 89 return 1 |
| 90 workspace = abspath(join(dirname(sys.argv[0]), '..')) | 90 workspace = abspath(join(dirname(sys.argv[0]), '..')) |
| 91 android_workspace = os.getenv("ANDROID_V8", "/data/local/v8") | 91 android_workspace = os.getenv("ANDROID_V8", "/data/local/v8") |
| 92 args = [Escape(arg) for arg in sys.argv[1:]] | 92 args = [Escape(arg) for arg in sys.argv[1:]] |
| 93 script = (" ".join(args) + "\n" | 93 script = (" ".join(args) + "\n" |
| 94 "case $? in\n" | 94 "case $? in\n" |
| 95 " 0) break;;\n" | 95 " 0) ;;\n" |
| 96 " *) echo \"Error returned by test\";;\n" | 96 " *) echo \"ANDROID: Error returned by test\";;\n" |
| 97 "esac\n") | 97 "esac\n") |
| 98 script = script.replace(workspace, android_workspace) | 98 script = script.replace(workspace, android_workspace) |
| 99 script_file = WriteToTemporaryFile(script) | 99 script_file = WriteToTemporaryFile(script) |
| 100 android_script_file = android_workspace + "/" + script_file | 100 android_script_file = android_workspace + "/" + script_file |
| 101 command = ("adb push '%s' %s;" % (script_file, android_script_file) + | 101 command = ("adb push '%s' %s;" % (script_file, android_script_file) + |
| 102 "adb shell 'sh %s';" % android_script_file + | 102 "adb shell 'sh %s';" % android_script_file + |
| 103 "adb shell 'rm %s'" % android_script_file) | 103 "adb shell 'rm %s'" % android_script_file) |
| 104 error_code = Execute(command) | 104 error_code = Execute(command) |
| 105 os.unlink(script_file) | 105 os.unlink(script_file) |
| 106 return error_code | 106 return error_code |
| 107 | 107 |
| 108 if __name__ == '__main__': | 108 if __name__ == '__main__': |
| 109 sys.exit(Main()) | 109 sys.exit(Main()) |
| OLD | NEW |