#!/usr/bin/python # # Run a test on the ARM version of bcc. import unittest import subprocess import os import sys def compile(args): proc = subprocess.Popen(["bcc"] + 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/bcc"]) adb(["shell", "mkdir", "/system/bin/bccdata"]) adb(["shell", "mkdir", "/system/bin/bccdata/data"]) remoteFileName = os.path.join("/system/bin/bccdata", 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/bcc"] + 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()