]> matita.cs.unibo.it Git - helm.git/commitdiff
Added deadline (now 30s) to each test.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Thu, 30 Mar 2006 11:40:40 +0000 (11:40 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Thu, 30 Mar 2006 11:40:40 +0000 (11:40 +0000)
components/binaries/utilities/test_library.ml

index 03742ac308a7efc02d68b929158fc5846e169f55..5cfb7c3487276e2d38f85229e5da13dacd86a7be 100644 (file)
@@ -24,6 +24,7 @@
  *)
 
 let trust = true
+let deadline = 30
 let conffile = "../../../matita/matita.conf.xml"
 
 let _ = CicEnvironment.set_trust (fun _ -> trust);;
@@ -46,6 +47,15 @@ let _ =
      Printf.printf "Old: %.2f (%.2f%%)\n" !old_total (perc !new_total !old_total))
 ;;
 
+let timeout = ref false;;
+
+let _ =
+ Sys.set_signal 14 (* SIGALRM *)
+  (Sys.Signal_handle (fun _ ->
+    timeout := true;
+    raise Sys.Break))
+;;
+
 let urifname =
   try
     Sys.argv.(1)
@@ -74,7 +84,9 @@ let _ =
         flush stdout;
         let uri = UriManager.uri_of_string uri in
         let before = Unix.gettimeofday () in
+        ignore (Unix.alarm deadline);
         ignore (CicTypeChecker.typecheck uri);
+        ignore (Unix.alarm 0);
         let after = Unix.gettimeofday () in
         let diff = after -. before in
         new_total := !new_total +. diff;
@@ -93,16 +105,24 @@ let _ =
               begin
                Printf.printf "\e[0;31mSKIPPED\e[0m\n";
                flush stdout;
-               Printf.eprintf "\e[0;31mContinue with next URI? [y/_]\e[0m";
-               flush stderr;
+               if not !timeout then
+                begin
+                 Printf.eprintf "\e[0;31mContinue with next URI? [y/_]\e[0m";
+                 flush stderr;
+                end;
               end;
-             (match input_line stdin with
-                 "y" -> ()
-               | _ -> raise Done)
+             if not !timeout then
+              (match input_line stdin with
+                  "y" -> ()
+                | _ -> raise Done)
+             else
+              timeout := false
             with
              Sys.Break -> skip_break false
            in
             skip_break true
+        | CicEnvironment.CircularDependency _ ->
+           Printf.printf "\e[0;31mCIRCULARDEP\e[0m\n"
         | exn ->
            Printf.printf "\e[0;31mFAIL\e[0m\n";
            flush stdout;