diff options
author | Pantazis Deligiannis <pdeligia@me.com> | 2013-07-07 03:18:00 +0100 |
---|---|---|
committer | Pantazis Deligiannis <pdeligia@me.com> | 2013-07-07 03:18:00 +0100 |
commit | a6ad13aab30cd2bdd9576c74bf58e7e2b9b855d5 (patch) | |
tree | b9a80e38fa71d779069b58f7a023e4ba95c28ef8 /Test/test17 | |
parent | 5dcb1f8e4f28db2f449cb318fc8f114e2982cc7c (diff) |
added python scripts (work in unix and windows) for testing Z3 and CVC4 to many of the test suite dirs
Diffstat (limited to 'Test/test17')
-rwxr-xr-x | Test/test17/runtest.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Test/test17/runtest.py b/Test/test17/runtest.py new file mode 100755 index 00000000..86681f2a --- /dev/null +++ b/Test/test17/runtest.py @@ -0,0 +1,65 @@ +#!/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")
+
+files = ["contractinfer", "flpydisk"]
+
+for file in files:
+ os.system("echo >> Output")
+ os.system("echo -------------------- " + file + " -------------------- >> Output")
+ runtest("/errorLimit:1 /contractInfer /z3mam:4 /subsumption:0 " + file + ".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"
|