|  | #!/usr/bin/python | 
|  | # | 
|  | # Run a test on the ARM version of acc. | 
|  |  | 
|  | import unittest | 
|  | import subprocess | 
|  | import os | 
|  | import sys | 
|  |  | 
|  | def compile(args): | 
|  | proc = subprocess.Popen(["acc"] + args, stderr=subprocess.PIPE, stdout=subprocess.PIPE) | 
|  | result = proc.communicate() | 
|  | return result | 
|  |  | 
|  | def runCmd(args): | 
|  | proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) | 
|  | result = proc.communicate() | 
|  | return result[0].strip() | 
|  |  | 
|  | def uname(): | 
|  | return runCmd(["uname"]) | 
|  |  | 
|  | def unameM(): | 
|  | return runCmd(["uname", "-m"]) | 
|  |  | 
|  | def which(item): | 
|  | return runCmd(["which", item]) | 
|  |  | 
|  | def adb(args): | 
|  | return runCmd(["adb"] + args) | 
|  |  | 
|  | def setupArm(file): | 
|  | print "Setting up arm" | 
|  | adb(["remount"]) | 
|  | adb(["shell", "rm", "/system/bin/acc"]) | 
|  | adb(["shell", "mkdir", "/system/bin/accdata"]) | 
|  | adb(["shell", "mkdir", "/system/bin/accdata/data"]) | 
|  |  | 
|  | remoteFileName = os.path.join("/system/bin/accdata", file) | 
|  | adb(["push", file, remoteFileName]) | 
|  |  | 
|  | # Copy over compiler | 
|  | adb(["sync"]) | 
|  | return remoteFileName | 
|  |  | 
|  | def compileArm(args): | 
|  | remoteArgs = [] | 
|  | fileName = "" | 
|  | for arg in sys.argv[1:]: | 
|  | if arg.startswith('-'): | 
|  | remoteArgs.append(arg) | 
|  | else: | 
|  | fileName = arg | 
|  |  | 
|  | remoteFileName = setupArm(fileName) | 
|  | remoteArgs.append(remoteFileName) | 
|  | remoteCmdLine = ["adb", "shell", "/system/bin/acc"] + remoteArgs | 
|  | proc = subprocess.Popen(remoteCmdLine, stdout=subprocess.PIPE) | 
|  | result = proc.communicate() | 
|  | return result[0].replace("\r","") | 
|  |  | 
|  |  | 
|  | def main(): | 
|  | print compileArm(sys.argv[1:]) | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | main() | 
|  |  | 
|  |  |