コード例 #1
0
def main():
    script_dir = os.path.dirname(os.path.abspath(__file__))
    ext_dir = os.path.join(os.path.dirname(os.path.dirname(script_dir)), "ext")
    pcompiler_dir = os.path.join(ext_dir, "P")
    rvmonitor_bin = os.path.join(ext_dir, "rv-monitor", "target", "release",
                                 "rv-monitor", "bin")
    gen_src_dir = os.path.join(script_dir, "target", "generated-sources")
    p_spec_dir = os.path.join(script_dir, "monitor")

    aspectj_dir = os.path.join(gen_src_dir, "aspectJ")
    if not os.path.exists(aspectj_dir):
        os.makedirs(aspectj_dir)

    java_dir = os.path.join(gen_src_dir, "java")
    if not os.path.exists(java_dir):
        os.makedirs(java_dir)

    gen_monitor_dir = os.path.join(p_spec_dir, "generated")
    if not os.path.exists(gen_monitor_dir):
        os.makedirs(gen_monitor_dir)

    try:
        tools.runInDirectory(
            p_spec_dir,
            lambda: build(pcompiler_dir, gen_monitor_dir, rvmonitor_bin,
                          p_spec_dir, aspectj_dir, java_dir))
    except BaseException as e:
        removeAll(os.path.join(aspectj_dir, "*.aj"))
        removeAll(os.path.join(java_dir, "*.java"))
        raise e
コード例 #2
0
ファイル: run_unittest.py プロジェクト: roohitavaf/P
def main(argv):
    """
    Runs a Rvm unit-test.

    Args:
        argv (list of str): see the "usageError" function.
    """
    if len(argv) == 0:
        usageError()
    test_name = argv[0]
    script_dir = os.path.dirname(os.path.abspath(__file__))
    unittest_dir = os.path.join(script_dir, "Unit")
    framework_dir = os.path.join(unittest_dir, "Framework")
    test_dir = os.path.join(unittest_dir, "Test", test_name)
    rvmonitor_bin_dir = os.path.join(script_dir, "ext", "rv-monitor", "target", "release", "rv-monitor", "bin")
    root_dir = os.path.dirname(os.path.dirname(os.path.dirname(script_dir)))

    if len(argv) == 1:
        setup_dir = tempfile.mkdtemp(suffix=".test", prefix=".tmp.", dir=test_dir)
        cleanup = lambda: shutil.rmtree(setup_dir)
    elif len(argv) > 2:
        usageError()
    else:
        setup_dir = argv[1]
        cleanup  = lambda: ()

    # Not using the fancier temporary file tools because we want the
    # directory to be available if the test fails.

    setupTests(test_dir, root_dir, rvmonitor_bin_dir, framework_dir, setup_dir, test_name)
    tools.runInDirectory(setup_dir, lambda: runTests(test_name))

    cleanup()
コード例 #3
0
ファイル: build.py プロジェクト: yzhang90/P-1
def build():
    """
    Initializes the RV-Monitor submodule and builds the tool.

    Raises:
        SubprocessError if one of the shell subcommands (git and mvn)
            returns an error.
    """
    script_dir = os.path.dirname(os.path.abspath(__file__))

    ext_dir = os.path.join(script_dir, "ext")
    if not os.path.exists(ext_dir):
        os.makedirs(ext_dir)
    tools.runInDirectory(ext_dir, initGitModules)

    rv_monitor_dir = os.path.join(ext_dir, "rv-monitor")
    if not os.path.exists(
            os.path.join(rv_monitor_dir, "target", "release", "rv-monitor",
                         "lib", "rv-monitor.jar")):
        tools.runInDirectory(rv_monitor_dir, buildRvMonitor)
コード例 #4
0
def main():
    """
    Compiles a .p file into an AspectJ instrumentation.

    Produces one aspectJ file and several accompanying Java files.
    The files are placed into directories as expected by the `pom.xml`
    file in this directory.
    """
    script_dir = os.path.dirname(os.path.abspath(__file__))
    pcompiler_dir = os.path.dirname(
        os.path.dirname(
            os.path.dirname(os.path.dirname(os.path.dirname(script_dir)))))
    rvmonitor_bin = os.path.join(os.path.dirname(os.path.dirname(script_dir)),
                                 "ext", "rv-monitor", "target", "release",
                                 "rv-monitor", "bin")
    gen_src_dir = os.path.join(script_dir, "target", "generated-sources")
    p_spec_dir = os.path.join(script_dir, "monitor")

    aspectj_dir = os.path.join(gen_src_dir, "aspectJ")
    if not os.path.exists(aspectj_dir):
        os.makedirs(aspectj_dir)

    java_dir = os.path.join(gen_src_dir, "java")
    if not os.path.exists(java_dir):
        os.makedirs(java_dir)

    gen_monitor_dir = os.path.join(p_spec_dir, "generated")
    if not os.path.exists(gen_monitor_dir):
        os.makedirs(gen_monitor_dir)

    try:
        tools.runInDirectory(
            p_spec_dir,
            lambda: build(pcompiler_dir, gen_monitor_dir, rvmonitor_bin,
                          p_spec_dir, aspectj_dir, java_dir))
    except BaseException as e:
        removeAll(os.path.join(aspectj_dir, "*.aj"))
        removeAll(os.path.join(java_dir, "*.java"))
        raise e
コード例 #5
0
def main():
    script_dir = os.path.dirname(os.path.abspath(__file__))
    tools.runInDirectory(script_dir, runGetConsistency)
コード例 #6
0
ファイル: run_test.py プロジェクト: runtimeverification/p2rvm
def main():
    script_dir = os.path.dirname(os.path.abspath(__file__))
    tools.runInDirectory(script_dir, runTwoPhaseCommit)