Setting timeout for SMT test
[satune.git] / src / Test / deserializealloytest.cc
index 3cb13feb95f9fc8b3c2147f02d55fe29826081c5..8677bf31db8f3eee615ee58821dd1f4fecd11110 100644 (file)
@@ -1,16 +1,35 @@
 #include "csolver.h"
 
 
+InterpreterType getInterpreterType(char * itype){
+       if(strcmp (itype,"--alloy") == 0){
+               return ALLOY;
+       } else if(strcmp (itype,"--z3") == 0){
+               return Z3;
+       } else if(strcmp (itype,"--smtrat") == 0){
+               return SMTRAT;
+       } else if(strcmp (itype,"--mathsat") == 0){
+               return MATHSAT;
+       } else {
+               printf("Unknown interpreter type: %s\n", itype);
+               printf("./run.sh deserializer test.dump [--alloy/--z3/--smtrat/--mathsat]\n");
+               exit(-1);
+       }
+}
+
 int main(int argc, char **argv) {
        printf("%d\n", argc);
-       if (argc != 2 && argc != 3) {
+       if (argc < 2 && argc > 4) {
                printf("You only specify the name of the file ...\n");
-               printf("./run.sh deserializer test.dump [--alloy]\n");
+               printf("./run.sh deserializer test.dump [--alloy/--z3/--smtrat/--mathsat] [timeout]\n");
                exit(-1);
        }
        CSolver *solver; 
-       if(argc == 3){
-               solver = CSolver::deserialize(argv[1], true);
+       if(argc >= 3){
+               solver = CSolver::deserialize(argv[1], getInterpreterType(argv[2]));
+               if(argc == 4){
+                       solver->setSatSolverTimeout(atol(argv[3]));
+               }
        } else {
                solver = CSolver::deserialize(argv[1]);
        }