Merge commit 'master' into development
authorNathan Bird <nathan@acceleration.net>
Fri, 29 Jan 2010 19:22:04 +0000 (14:22 -0500)
committerNathan Bird <nathan@acceleration.net>
Fri, 29 Jan 2010 19:22:04 +0000 (14:22 -0500)
Conflicts:
tests/test-init.lisp  --pretty small.

1  2 
tests/test-init.lisp

diff --combined tests/test-init.lisp
index e64a2acb921a8fcea310830abe954e795624e539,fd61e924323e54bf5d0c03b55703130c19d547a6..500b89852125ee48a8af06f7882317f69741a313
@@@ -30,8 -30,6 +30,8 @@@
  (defvar *test-database-type* nil)
  (defvar *test-database-underlying-type* nil)
  (defvar *test-database-user* nil)
 +(defvar *test-false-database-user* "adsfjalsdkfjlakjsdfl"
 +  "For testing ownership, a user that isn't the owner.")
  (defvar *test-start-utime* nil)
  (defvar *test-connection-spec* nil)
  (defvar *test-connection-db-type* nil)
@@@ -46,7 -44,7 +46,7 @@@
    (setf *test-database-type* db-type)
    (setf *test-database-user*
      (cond
 -     ((eq :oracle db-type) (second spec))
 +     ((member db-type '(:oracle :odbc :aodbc)) (second spec))
       ((>= (length spec) 3) (third spec))))
  
    ;; Connect to the database
      (when (db-type-spec db-type specs)
        (clsql-sys:initialize-database-type :database-type db-type))))
  
 -(defun write-report-banner (report-type db-type stream)
 +(defun write-report-banner (report-type db-type stream db-name)
    (format stream
            "~&
  ******************************************************************************
  ***     CLSQL ~A begun at ~A
  ***     ~A
  ***     ~A on ~A
 -***     Database ~:@(~A~) backend~A.
 +***     Database ~:@(~A~)
 +***     Type: ~:@(~A~) backend~A.
  ******************************************************************************
  "
            report-type
            (lisp-implementation-type)
            (lisp-implementation-version)
            (machine-type)
 +        db-name
            db-type
            (if (not (eq db-type *test-database-underlying-type*))
                (format nil " with underlying type ~:@(~A~)"
         (multiple-value-bind (test-forms skip-tests)
             (compute-tests-for-backend db-type *test-database-underlying-type*)
  
 -           (write-report-banner "Test Suite" db-type *report-stream*)
 +           (write-report-banner "Test Suite" db-type *report-stream*
 +                              (database-name-from-spec spec db-type))
  
  ;           (test-initialise-database)
  
             (if skip-tests
                 (dolist (skipped skip-tests)
                   (format *report-stream*
-                          "~&   ~20A ~A~%" (car skipped) (cdr skipped)))
+                          "~&   ~30A ~A~%" (car skipped) (cdr skipped)))
                 (format *report-stream* " None~%")))
      (disconnect)))
  
          (cond
            ((and (null (clsql-sys:db-type-has-views? db-underlying-type))
                  (clsql-sys:in test :fddl/view/1 :fddl/view/2 :fddl/view/3 :fddl/view/4))
-            (push (cons test "views not supported") skip-tests))
+            (push (cons test "views not supported.") skip-tests))
            ((and (null (clsql-sys:db-type-has-boolean-where? db-underlying-type))
                  (clsql-sys:in test :fdml/select/11 :oodml/select/5))
-            (push (cons test "boolean where not supported") skip-tests))
+            (push (cons test "boolean where not supported.") skip-tests))
            ((and (null (clsql-sys:db-type-has-subqueries? db-underlying-type))
                  (clsql-sys:in test :fdml/select/5 :fdml/select/10
                                :fdml/select/32 :fdml/select/33))
-            (push (cons test "subqueries not supported") skip-tests))
+            (push (cons test "subqueries not supported.") skip-tests))
            ((and (null (clsql-sys:db-type-transaction-capable? db-underlying-type
                                                      *default-database*))
                  (clsql-sys:in test :fdml/transaction/1 :fdml/transaction/2 :fdml/transaction/3 :fdml/transaction/4))
-            (push (cons test "transactions not supported") skip-tests))
+            (push (cons test "transactions not supported.") skip-tests))
            ((and (null (clsql-sys:db-type-has-fancy-math? db-underlying-type))
                  (clsql-sys:in test :fdml/select/1))
-            (push (cons test "fancy math not supported") skip-tests))
+            (push (cons test "fancy math not supported.") skip-tests))
            ((and (eql *test-database-type* :sqlite)
                  (clsql-sys:in test :fddl/view/4 :fdml/select/10
                                  :fdml/select/21 :fdml/select/32
                                  :fdml/select/33))
-            (push (cons test "not supported by sqlite") skip-tests))
+            (push (cons test "not supported by sqlite.") skip-tests))
            ((and (eql *test-database-type* :sqlite3)
                  (clsql-sys:in test :fddl/view/4 :fdml/select/10
                                :fdml/select/21 :fdml/select/32
                                :fdml/select/33))
-            (push (cons test "not supported by sqlite3") skip-tests))
+            (push (cons test "not supported by sqlite3.") skip-tests))
            ((and (not (clsql-sys:db-type-has-bigint? db-type))
                  (clsql-sys:in test :basic/bigint/1))
-            (push (cons test "bigint not supported") skip-tests))
+            (push (cons test "bigint not supported.") skip-tests))
            ((and (eql *test-database-underlying-type* :mysql)
                  (clsql-sys:in test :fdml/select/26))
-            (push (cons test "string table aliases not supported on all mysql versions") skip-tests))
+            (push (cons test "string table aliases not supported on all mysql versions.") skip-tests))
            ((and (eql *test-database-underlying-type* :mysql)
                  (clsql-sys:in test :fdml/select/22 :fdml/query/5
                                  :fdml/query/7 :fdml/query/8))
-            (push (cons test "not supported by mysql") skip-tests))
+            (push (cons test "not supported by mysql.") skip-tests))
            ((and (null (clsql-sys:db-type-has-union? db-underlying-type))
                  (clsql-sys:in test :fdml/query/6 :fdml/select/31))
             (push (cons test "union not supported") skip-tests))
            ((and (eq *test-database-type* :oracle)
                  (clsql-sys:in test :fdml/query/8 :fdml/select/21
                                :fddl/table/6))
-            (push (cons test "syntax not supported") skip-tests))
+            (push (cons test "syntax not supported.") skip-tests))
            ((and (eq *test-database-type* :odbc)
                  (eq *test-database-underlying-type* :postgresql)
 -                (clsql-sys:in test :fddl/owner/1))
 -           (push (cons test "table ownership not supported by postgresql odbc driver.") skip-tests))
 +                (clsql-sys:in test :fddl/owner/1 :fddl/owner/table
 +                            :fddl/owner/attributes
 +                            :fddl/owner/attribute-types
 +                            :fddl/owner/index
 +                            :fddl/owner/sequence))
-            (push (cons test "table ownership not supported by postgresql odbc driver") skip-tests))
++          (push (cons test "table ownership not supported by postgresql odbc driver.") skip-tests))
            ((and (not (member *test-database-underlying-type*
                               '(:postgresql :oracle)))
 -                (clsql-sys:in test :fddl/owner/1))
 -           (push (cons test "table ownership not supported.") skip-tests))
 +                (clsql-sys:in test :fddl/owner/1 :fddl/owner/table
 +                            :fddl/owner/attributes
 +                            :fddl/owner/attribute-types
 +                            :fddl/owner/index
 +                            :fddl/owner/sequence))
-            (push (cons test "table ownership not supported") skip-tests))
++         (push (cons test "table ownership not supported.") skip-tests))
            ((and (null (clsql-sys:db-type-has-intersect? db-underlying-type))
                  (clsql-sys:in test :fdml/query/7))
-            (push (cons test "intersect not supported") skip-tests))
+            (push (cons test "intersect not supported.") skip-tests))
            ((and (null (clsql-sys:db-type-has-except? db-underlying-type))
                  (clsql-sys:in test :fdml/query/8))
-            (push (cons test "except not supported") skip-tests))
+            (push (cons test "except not supported.") skip-tests))
            ((and (eq *test-database-underlying-type* :mssql)
                  (clsql-sys:in test :fdml/select/9))
-            (push (cons test "mssql uses integer math for AVG") skip-tests))
+            (push (cons test "mssql uses integer math for AVG.") skip-tests))
            ((and (not (member *test-database-underlying-type*
                               '(:postgresql :mysql :sqlite3)))
                  (clsql-sys:in test :fdml/select/37 :fdml/select/38))
-            (push (cons test "LIMIT keyword not supported in SELECT") skip-tests))
+            (push (cons test "LIMIT keyword not supported in SELECT.") skip-tests))
          ((and (not (clsql-sys:db-type-has-auto-increment? db-underlying-type))
                (clsql-sys:in test :oodml/select/12 :oodml/select/13 :oodml/select/14
                              :oodml/select/15 :oodml/select/16 :oodml/select/17
                              :oodml/update-instance/4 :oodml/update-instance/5
                              :oodml/update-instance/6 :oodml/update-instance/7
                              :oodml/db-auto-sync/3 :oodml/db-auto-sync/4))
-          (push (cons test ":auto-increment not by backend.") skip-tests))
+          (push (cons test ":auto-increment not supported.") skip-tests))
            (t
             (push test-form test-forms)))))
        (values (nreverse test-forms) (nreverse skip-tests))))