r8955: v 2.6.3
[clsql.git] / tests / new-test-init.lisp
index c71025a50405c7d32c13f71fdf11bfe1971e9266..48940a0443deae771f8c496d12e388ecb269410b 100644 (file)
   (clsql:update-records-from-instance employee10)
   (clsql:update-records-from-instance company1))
 
+(defvar *error-count* 0)
+
 (defun run-tests ()
-  (let ((specs (read-specs)))
+  (let ((specs (read-specs))
+       (*error-count* 0))
     (unless specs
       (warn "Not running tests because test configuration file is missing")
       (return-from run-tests :skipped))
     (dolist (db-type +all-db-types+)
       (let ((spec (db-type-spec db-type specs)))
        (when spec
-         (do-tests-for-backend spec db-type))))))
+         (do-tests-for-backend spec db-type))))
+    (zerop *error-count*)))
 
 (defun load-necessary-systems (specs)
   (dolist (db-type +all-db-types+)
 ***     Running CLSQL tests with ~A backend.
 *******************************************************************
 " db-type)
+  (regression-test:rem-all-tests)
   
   ;; Tests of clsql-base
   (ignore-errors (destroy-database spec :database-type db-type))
   (ignore-errors (create-database spec :database-type db-type))
   (with-tests (:name "CLSQL")
     (test-basic spec db-type))
-  
-  (regression-test:rem-all-tests)
+  (incf *error-count* *test-errors*)
+
+  (ignore-errors (destroy-database spec :database-type db-type))
+  (ignore-errors (create-database spec :database-type db-type))
   (dolist (test (append *rt-connection* *rt-fddl* *rt-fdml*
                        *rt-ooddl* *rt-oodml* *rt-syntax*))
     (eval test))
-  
-  (ignore-errors (destroy-database spec :database-type db-type))
-  (ignore-errors (create-database spec :database-type db-type))
   (test-connect-to-database db-type spec)
-  
-  (assert *default-database*)
   (test-initialise-database)
+  (let ((remaining (rtest:do-tests)))
+    (when (consp remaining)
+      (incf *error-count* (length remaining)))))
 
-  (assert *default-database*)
-  (rtest:do-tests)
-  (disconnect))