Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb3e9c18 authored by Jack Palevich's avatar Jack Palevich
Browse files

Add a script "accarm" for ad-hoc testing of the ARM acc compiler.

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.
parent d30a2ce2
Loading
Loading
Loading
Loading

libacc/tests/accarm

0 → 100755
+69 −0
Original line number Diff line number Diff line
#!/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()