summaryrefslogtreecommitdiff
path: root/utils/test/llvm-mc-shell.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/test/llvm-mc-shell.py')
-rwxr-xr-xutils/test/llvm-mc-shell.py114
1 files changed, 0 insertions, 114 deletions
diff --git a/utils/test/llvm-mc-shell.py b/utils/test/llvm-mc-shell.py
deleted file mode 100755
index 4d3119598423..000000000000
--- a/utils/test/llvm-mc-shell.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Run llvm-mc interactively.
-
-"""
-
-import os
-import sys
-from optparse import OptionParser
-
-
-def is_exe(fpath):
- """Check whether fpath is an executable."""
- return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
-
-
-def which(program):
- """Find the full path to a program, or return None."""
- fpath, fname = os.path.split(program)
- if fpath:
- if is_exe(program):
- return program
- else:
- for path in os.environ["PATH"].split(os.pathsep):
- exe_file = os.path.join(path, program)
- if is_exe(exe_file):
- return exe_file
- return None
-
-
-def llvm_mc_loop(mc, mc_options):
- contents = []
- fname = 'mc-input.txt'
- sys.stdout.write(
- "Enter your input to llvm-mc. A line starting with 'END' terminates the current batch of input.\n")
- sys.stdout.write("Enter 'quit' or Ctrl-D to quit the program.\n")
- while True:
- sys.stdout.write("> ")
- next = sys.stdin.readline()
- # EOF => terminate this llvm-mc shell
- if not next or next.startswith('quit'):
- sys.stdout.write('\n')
- sys.exit(0)
- # 'END' => send the current batch of input to llvm-mc
- if next.startswith('END'):
- # Write contents to our file and clear the contents.
- with open(fname, 'w') as f:
- f.writelines(contents)
- # Clear the list: replace all items with an empty list.
- contents[:] = []
-
- # Invoke llvm-mc with our newly created file.
- mc_cmd = '%s %s %s' % (mc, mc_options, fname)
- sys.stdout.write("Executing command: %s\n" % mc_cmd)
- os.system(mc_cmd)
- else:
- # Keep accumulating our input.
- contents.append(next)
-
-
-def main():
- # This is to set up the Python path to include the pexpect-2.4 dir.
- # Remember to update this when/if things change.
- scriptPath = sys.path[0]
- sys.path.append(
- os.path.join(
- scriptPath,
- os.pardir,
- os.pardir,
- 'test',
- 'pexpect-2.4'))
-
- parser = OptionParser(usage="""\
-Do llvm-mc interactively within a shell-like environment. A batch of input is
-submitted to llvm-mc to execute whenever you terminate the current batch by
-inputing a line which starts with 'END'. Quit the program by either 'quit' or
-Ctrl-D.
-
-Usage: %prog [options]
-""")
- parser.add_option('-m', '--llvm-mc',
- type='string', action='store',
- dest='llvm_mc',
- help="""The llvm-mc executable full path, if specified.
- Otherwise, it must be present in your PATH environment.""")
-
- parser.add_option(
- '-o',
- '--options',
- type='string',
- action='store',
- dest='llvm_mc_options',
- help="""The options passed to 'llvm-mc' command if specified.""")
-
- opts, args = parser.parse_args()
-
- llvm_mc = opts.llvm_mc if opts.llvm_mc else which('llvm-mc')
- if not llvm_mc:
- parser.print_help()
- sys.exit(1)
-
- # This is optional. For example:
- # --options='-disassemble -triple=arm-apple-darwin -debug-only=arm-disassembler'
- llvm_mc_options = opts.llvm_mc_options
-
- # We have parsed the options.
- print "llvm-mc:", llvm_mc
- print "llvm-mc options:", llvm_mc_options
-
- llvm_mc_loop(llvm_mc, llvm_mc_options)
-
-if __name__ == '__main__':
- main()