refactor test-connect and test-setup-database to be these two separate things (from...
authorRuss Tyndall <russ@acceleration.net>
Mon, 28 Jul 2014 17:44:04 +0000 (13:44 -0400)
committerRuss Tyndall <russ@acceleration.net>
Mon, 28 Jul 2014 17:44:04 +0000 (13:44 -0400)
tests/benchmarks.lisp
tests/package.lisp
tests/test-init.lisp

index 372b81cca30d0b5683562b7416555f70ed04ab42..4e528908e6f3df98991a275f0ee2dbb660607399 100644 (file)
@@ -42,7 +42,7 @@
   (values))
 
 (defun do-benchmarks-for-backend (db-type spec count)
-  (test-connect-to-database db-type spec)
+  (test-setup-database db-type spec)
   (write-report-banner "Benchmarks" db-type *report-stream*
                       (database-name-from-spec spec db-type))
 
index 044aaccc1d7510875f21033a57c1f9370b9b8bfc..f420b102e503d6eda8fadf8b5ad94e998b2c2c38 100644 (file)
@@ -26,8 +26,8 @@
    #:run-benchmarks
    #:run-benchmarks-append-report-file
    #:summarize-test-report
-   #:test-initialise-database
-   #:test-connect-to-database
+   #:test-connect
+   #:test-setup-database
    )
   (:documentation "Regression tests for CLSQL."))
 
index 4aa485a7711d26b8460c2ed1d08fb3aac6e3e36f..f13f1cc3058d208478cf8956c57c04d1c8cc4088 100644 (file)
 (defvar *test-report-width* 80 "Width of test report in ems.")
 
 
-(defun test-connect-to-database (db-type spec)
+(defun find-test-connection-spec (db-type &key position)
+  (nth (or position 0)
+       (db-type-spec db-type (read-specs))))
+
+(defun test-connect
+    (db-type
+     &key position pool
+     (spec (find-test-connection-spec db-type :position position))
+     )
+  (setf *test-database-type* db-type)
+  (setf *test-database-user*
+        (cond
+          ((member db-type '(:oracle :odbc :aodbc)) (second spec))
+          ((>= (length spec) 3) (third spec))))
+  (let ((*default-database* (clsql:connect
+                             spec
+                             :database-type db-type
+                             :make-default t
+                             :if-exists :old
+                             :pool pool)))
+    (setf *test-database-underlying-type*
+          (clsql-sys:database-underlying-type *default-database*))
+    *default-database*))
+
+(defun test-setup-database (db-type &key (spec (find-test-connection-spec db-type)))
   (when (clsql-sys:db-backend-has-create/destroy-db? db-type)
     (ignore-errors (destroy-database spec :database-type db-type))
     (ignore-errors (create-database spec :database-type db-type)))
 
-  (setf *test-database-type* db-type)
-  (setf *test-database-user*
-    (cond
-     ((member db-type '(:oracle :odbc :aodbc)) (second spec))
-     ((>= (length spec) 3) (third spec))))
-
   ;; Connect to the database
-  (clsql:connect spec
-                 :database-type db-type
-                 :make-default t
-                 :if-exists :old)
+  (test-connect db-type :spec spec)
 
   ;; Ensure database is empty
   (truncate-database :database *default-database*)
 
-  (setf *test-database-underlying-type*
-        (clsql-sys:database-underlying-type *default-database*))
-
   ;; If Postgres, turn off notices to console
   (when (eql db-type :postgresql)
     (clsql:execute-command "SET client_min_messages = WARNING"))
 
 (defun do-tests-for-backend (db-type spec &key
                             (suites (default-suites)) )
-  (test-connect-to-database db-type spec)
+  (test-setup-database db-type :spec spec)
   (unwind-protect
        (multiple-value-bind (test-forms skip-tests)
            (compute-tests-for-backend db-type *test-database-underlying-type* :suites suites)
                      ;; word-wrap the reason string field
                      (let* ((test (car skipped))
                             (reason (cdr skipped))
-                            (rlen (length reason))
+                            ;; (rlen (length reason))
                             (rwidth (max 20 (- (or *test-report-width* 80) max-test-name 3)))
                             (rwords (clsql-sys::delimited-string-to-list reason #\space t))
                             (rformat (format nil "~~{~~<~%~~1,~D:;~~A~~> ~~}" rwidth))
   "Rapid load for interactive testing."
   (when *default-database*
       (disconnect :database *default-database*))
-  (test-connect-to-database type (nth position (db-type-spec type (read-specs))))
-  ;(test-initialise-database)
+  (test-setup-database
+   type
+   :spec (find-test-connection-spec type :position position))
   *default-database*)
 
 (defun rl ()