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 |