X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-init.lisp;h=543ab871f6bfefebd69093f8cadeb4478cfeb3df;hb=63158b2ef9d21af6454966d78b7e3ea81a9c73aa;hp=9b2597e171a6c9319aa9ebe1435e452adf0a2438;hpb=5257515973703e60f7ad3eca63c9a1ea0409cdd1;p=clsql.git diff --git a/tests/test-init.lisp b/tests/test-init.lisp index 9b2597e..543ab87 100644 --- a/tests/test-init.lisp +++ b/tests/test-init.lisp @@ -19,6 +19,7 @@ (defvar *report-stream* *standard-output* "Stream to send text report.") (defvar *sexp-report-stream* nil "Stream to send sexp report.") (defvar *rt-connection*) +(defvar *rt-basic*) (defvar *rt-fddl*) (defvar *rt-fdml*) (defvar *rt-ooddl*) @@ -163,14 +164,28 @@ :retrieval :immediate))) (:base-table "ea_join")) +(def-view-class deferred-employee-address () + ((aemplid :type integer :initarg :emplid) + (aaddressid :type integer :initarg :addressid) + (verified :type boolean :initarg :verified) + (address :db-kind :join + :db-info (:join-class address + :home-key aaddressid + :foreign-key addressid + :retrieval :deferred + :set nil))) + (:base-table "ea_join")) + (defun test-connect-to-database (db-type spec) (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) - (when (>= (length spec) 3) - (setq *test-database-user* (third spec))) + (setf *test-database-user* + (cond + ((eq :oracle db-type) (second spec)) + ((>= (length spec) 3) (third spec)))) ;; Connect to the database (clsql:connect spec @@ -207,7 +222,6 @@ (defun test-initialise-database () (test-basic-initialize) - (let ((*backend-warning-behavior* (if (member *test-database-type* '(:postgresql :postgresql-socket)) :ignore @@ -456,7 +470,7 @@ *** CLSQL ~A begun at ~A *** ~A *** ~A on ~A -*** Database ~A backend~A. +*** Database ~:@(~A~) backend~A. ****************************************************************************** " report-type @@ -514,11 +528,9 @@ (defun compute-tests-for-backend (db-type db-underlying-type) - (declare (ignorable db-type)) (let ((test-forms '()) (skip-tests '())) - (dolist (test-form (append (test-basic-forms) - *rt-connection* *rt-fddl* *rt-fdml* + (dolist (test-form (append *rt-connection* *rt-basic* *rt-fddl* *rt-fdml* *rt-ooddl* *rt-oodml* *rt-syntax*)) (let ((test (second test-form))) (cond @@ -529,7 +541,8 @@ (clsql-sys:in test :fdml/select/11 :oodml/select/5)) (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)) + (clsql-sys:in test :fdml/select/5 :fdml/select/10 + :fdml/select/32 :fdml/select/33)) (push (cons test "subqueries not supported") skip-tests)) ((and (null (clsql-sys:db-type-transaction-capable? db-underlying-type *default-database*)) @@ -540,12 +553,22 @@ (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/21 :fdml/select/32 + :fdml/select/33)) (push (cons test "not supported by sqlite") 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)) + ((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)) ((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)) + ((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)) (t (push test-form test-forms))))) (values (nreverse test-forms) (nreverse skip-tests)))) @@ -556,7 +579,8 @@ (when *default-database* (disconnect :database *default-database*)) (test-connect-to-database type (car (db-type-spec type (read-specs)))) - (test-initialise-database)) + (test-initialise-database) + *default-database*) (defun rl () (rapid-load :postgresql)) @@ -565,4 +589,4 @@ (rapid-load :mysql)) (defun rlo () - (rapid-load :odbc)) + (rapid-load :oracle))