summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/reachx_cmd.py108
1 files changed, 0 insertions, 108 deletions
diff --git a/scripts/reachx_cmd.py b/scripts/reachx_cmd.py
deleted file mode 100644
index 8461cb1d..00000000
--- a/scripts/reachx_cmd.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# You can use 'from pyabc import *' and then not need the pyabc. prefix everywhere
-
-import sys
-import optparse
-import subprocess
-import tempfile
-import threading
-import os
-import os.path
-from contextlib import contextmanager, nested
-
-import pyabc
-
-
-def popen_and_wait_with_timeout(timeout,cmd, *args, **kwargs):
- """ Wait for a subprocess.Popen object to terminate, or until timeout (in seconds) expires. """
-
- p = None
- t = None
-
- try:
- p = subprocess.Popen(cmd, *args, **kwargs)
-
- if timeout <= 0:
- timeout = None
-
- t = threading.Thread(target=lambda: p.communicate())
- t.start()
-
- t.join(timeout)
-
- finally:
-
- if p is not None and p.poll() is None:
- p.kill()
-
- if t is not None and t.is_alive():
- t.join()
-
- if p is not None:
- return p.returncode
-
- return -1
-
-@contextmanager
-def temp_file_name(suffix=""):
- file = tempfile.NamedTemporaryFile(delete=False, suffix=suffix)
- name = file.name
- file.close()
-
- try:
- yield name
- finally:
- os.unlink(name)
-
-def cygpath(path):
- if sys.platform == "win32":
- if os.path.isabs(path):
- drive, tail = os.path.splitdrive(path)
- drive = drive.lower()
- tail = tail.split(os.path.sep)
- return '/cygdrive/%s'%drive[0] + '/'.join(tail)
- else:
- path = path.split(os.path.sep)
- return "/".join(path)
- return path
-
-def run_reachx_cmd(effort, timeout):
- with nested(temp_file_name(suffix=".aig"), temp_file_name()) as (tmpaig_name, tmplog_name):
- pyabc.run_command("write %s"%tmpaig_name)
-
- cmdline = [
- 'read %s'%cygpath(tmpaig_name),
- 'qua_ffix -effort %d -L %s'%(effort, cygpath(tmplog_name)),
- 'quit'
- ]
-
- cmd = ["jabc", "-c", " ; ".join(cmdline)]
-
- rc = popen_and_wait_with_timeout(timeout, cmd, shell=False, stdout=sys.stdout, stderr=sys.stderr)
-
- if rc != 0:
- # jabc failed or stopped. Write a status file to update the status to unknown
- with open(tmplog_name, "w") as f:
- f.write('snl_UNK -1 unknown\n')
- f.write('NULL\n')
- f.write('NULL\n')
-
- pyabc.run_command("read_status %s"%tmplog_name)
-
- return rc
-
-def reachx_cmd(argv):
- usage = "usage: %prog [options]"
-
- parser = optparse.OptionParser(usage, prog="reachx")
-
- parser.add_option("-e", "--effort", dest="effort", type=int, default=0, help="effort level. [default=0, means unlimited]")
- parser.add_option("-t", "--timeout", dest="timeout", type=int, default=0, help="timeout in seconds [default=0, unlimited]")
-
- options, args = parser.parse_args(argv)
-
- rc = run_reachx_cmd(options.effort, options.timeout)
- print "%s command: jabc returned: %d"%(argv[0], rc)
-
- return 0
-
-pyabc.add_abc_command(reachx_cmd, "Verification", "reachx", 0)