-(defun test-initialise-database ()
- ;; Delete the instance records
- (with-ignore-errors
- (usql:delete-instance-records company1)
- (usql:delete-instance-records employee1)
- (usql:delete-instance-records employee2)
- (usql:delete-instance-records employee3)
- (usql:delete-instance-records employee4)
- (usql:delete-instance-records employee5)
- (usql:delete-instance-records employee6)
- (usql:delete-instance-records employee7)
- (usql:delete-instance-records employee8)
- (usql:delete-instance-records employee9)
- (usql:delete-instance-records employee10)
- ;; Drop the required tables if they exist
- (usql:drop-view-from-class 'employee)
- (usql:drop-view-from-class 'company))
- ;; Create the tables for our view classes
- (usql:create-view-from-class 'employee)
- (usql:create-view-from-class 'company)
- ;; Lenin manages everyone
- (usql:add-to-relation employee2 'manager employee1)
- (usql:add-to-relation employee3 'manager employee1)
- (usql:add-to-relation employee4 'manager employee1)
- (usql:add-to-relation employee5 'manager employee1)
- (usql:add-to-relation employee6 'manager employee1)
- (usql:add-to-relation employee7 'manager employee1)
- (usql:add-to-relation employee8 'manager employee1)
- (usql:add-to-relation employee9 'manager employee1)
- (usql:add-to-relation employee10 'manager employee1)
- ;; Everyone works for Widgets Inc.
- (usql:add-to-relation company1 'employees employee1)
- (usql:add-to-relation company1 'employees employee2)
- (usql:add-to-relation company1 'employees employee3)
- (usql:add-to-relation company1 'employees employee4)
- (usql:add-to-relation company1 'employees employee5)
- (usql:add-to-relation company1 'employees employee6)
- (usql:add-to-relation company1 'employees employee7)
- (usql:add-to-relation company1 'employees employee8)
- (usql:add-to-relation company1 'employees employee9)
- (usql:add-to-relation company1 'employees employee10)
- ;; Lenin is president of Widgets Inc.
- (usql:add-to-relation company1 'president employee1)
- ;; store these instances
- (usql:update-records-from-instance employee1)
- (usql:update-records-from-instance employee2)
- (usql:update-records-from-instance employee3)
- (usql:update-records-from-instance employee4)
- (usql:update-records-from-instance employee5)
- (usql:update-records-from-instance employee6)
- (usql:update-records-from-instance employee7)
- (usql:update-records-from-instance employee8)
- (usql:update-records-from-instance employee9)
- (usql:update-records-from-instance employee10)
- (usql:update-records-from-instance company1))
+ (unwind-protect
+ (multiple-value-bind (test-forms skip-tests)
+ (compute-tests-for-backend db-type *test-database-underlying-type*)
+
+ (format *report-stream*
+ "~&
+******************************************************************************
+*** CLSQL Test Suite begun at ~A
+*** ~A
+*** ~A
+*** Database ~A backend~A.
+******************************************************************************
+"
+(clsql-base:format-time nil (clsql-base:utime->time (get-universal-time)))
+(lisp-implementation-type)
+(lisp-implementation-version)
+db-type
+(if (not (eq db-type *test-database-underlying-type*))
+ (format nil " with underlying type ~A" *test-database-underlying-type*)
+ "")
+)
+
+ (test-initialise-database)