This script copies the test file over to the ARM, runs the acc compiler on ARM, and then prints out the results. It also syncs the acc compiler binary over to the ARM.
69 lines
1.6 KiB
Python
Executable file
69 lines
1.6 KiB
Python
Executable file
#!/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()
|
|
|
|
|