| #!/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() | |