From a6ad13aab30cd2bdd9576c74bf58e7e2b9b855d5 Mon Sep 17 00:00:00 2001 From: Pantazis Deligiannis Date: Sun, 7 Jul 2013 03:18:00 +0100 Subject: added python scripts (work in unix and windows) for testing Z3 and CVC4 to many of the test suite dirs --- Test/test13/runtest.py | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 Test/test13/runtest.py (limited to 'Test/test13') diff --git a/Test/test13/runtest.py b/Test/test13/runtest.py new file mode 100755 index 00000000..f91fa9f9 --- /dev/null +++ b/Test/test13/runtest.py @@ -0,0 +1,62 @@ +#!/usr/bin/python + +# 2013 Pantazis Deligiannis +# +# runs the test cases of this directory + +import sys; +import os; +import getopt; + +MONO = "/usr/bin/mono " +BOOGIE = "/Users/pantazis/workspace/boogie/Binaries/Boogie.exe " + +PROVER_OPTIONS_Z3 = "/nologo " +PROVER_OPTIONS_CVC4 = "/proverOpt:SOLVER=cvc4 /nologo " + +# choose a parser +opts, args = getopt.getopt(sys.argv[1:], "s:", ["solver="]) +solver = "Z3" +for o, a in opts: + if o in ("-s", "--solver"): + if a == "cvc4": + solver = a + +# if the Output file exists remove it +if os.path.exists("Output"): + os.remove("Output") + +# runs the given test +def runtest(filename): + if solver == "cvc4": + if os.name == "nt": + command = BOOGIE + PROVER_OPTIONS_CVC4 + filename + else: + command = MONO + BOOGIE + PROVER_OPTIONS_CVC4 + filename + else: + if os.name == "nt": + command = BOOGIE + PROVER_OPTIONS_Z3 + filename + else: + command = MONO + BOOGIE + PROVER_OPTIONS_Z3 + filename + + print "===== Testing: " + filename + + if os.path.exists("Output"): + os.system(command + " >> Output") + else: + os.system(command + " > Output") + +os.system("echo >> Output") +os.system("echo -------------------- ErrorTraceTestLoopInvViolationBPL -------------------- >> Output") +runtest("ErrorTraceTestLoopInvViolationBPL.bpl") + +# compare the output with the expected answers +test_file = open("Output").readlines() +correct_file = open("Answer").readlines() + +for test, correct in zip(test_file, correct_file): + if test.strip(' \t\n\r') != correct.strip(' \t\n\r'): + print "\n===== " + os.getcwd().split(os.sep)[-1] + ": FAILED" + break +else: + print "\n===== " + os.getcwd().split(os.sep)[-1] + ": PASSED" -- cgit v1.2.3