X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-connection.lisp;h=3e742e7e1a6f4f895d99c4aec470c47f9491aaef;hb=f67c4e2a4e5b8371a1b7c1629828999ff909f538;hp=11d3cc43fe2ec92af5a3f9699028ed1a0cf3a62f;hpb=9bbed78051e80e6ab76ae47834136035602bbbf1;p=clsql.git diff --git a/tests/test-connection.lisp b/tests/test-connection.lisp index 11d3cc4..3e742e7 100644 --- a/tests/test-connection.lisp +++ b/tests/test-connection.lisp @@ -1,39 +1,80 @@ ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- -;;;; ====================================================================== -;;;; File: test-connection.lisp -;;;; Authors: Marcus Pearce , Kevin Rosenberg -;;;; Created: 30/03/2004 -;;;; Updated: $Id$ +;;;; ************************************************************************* +;;;; FILE IDENTIFICATION ;;;; -;;;; Tests for CLSQL database connections. +;;;; Name: test-connection.lisp +;;;; Purpose: Tests for CLSQL database connections +;;;; Authors: Marcus Pearce and Kevin M. Rosenberg +;;;; Created: March 2004 ;;;; ;;;; This file is part of CLSQL. ;;;; ;;;; CLSQL users are granted the rights to distribute and use this software ;;;; as governed by the terms of the Lisp Lesser GNU Public License ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. -;;;; ====================================================================== +;;;; ************************************************************************* (in-package #:clsql-tests) (setq *rt-connection* '( - + (deftest :connection/1 (let ((database (clsql:find-database (clsql:database-name clsql:*default-database*) - :db-type (clsql:database-type clsql:*default-database*)))) - (eql (clsql:database-type database) *test-database-type*)) + :db-type (clsql-sys:database-type clsql:*default-database*)))) + (eql (clsql-sys:database-type database) *test-database-type*)) t) (deftest :connection/2 - (clsql-base::string-to-list-connection-spec + (clsql-sys::string-to-list-connection-spec "localhost/dbname/user/passwd") ("localhost" "dbname" "user" "passwd")) (deftest :connection/3 - (clsql-base::string-to-list-connection-spec + (clsql-sys::string-to-list-connection-spec "dbname/user@hostname") ("hostname" "dbname" "user")) +(deftest :connection/execute-command + ;;check that we can issue basic commands. + (values + (clsql-sys:execute-command "CREATE TABLE DUMMY (foo integer)") + (clsql-sys:execute-command "DROP TABLE DUMMY")) + nil nil) + +(deftest :connection/query + ;;check that we can do a basic query + (first (clsql:query "SELECT 1" :flatp t :field-names nil)) + 1) + +(deftest :connection/query-command + ;;queries that are commands (no result set) shouldn't cause breakage + (values + (clsql-sys:query "CREATE TABLE DUMMY (foo integer)") + (clsql-sys:query "DROP TABLE DUMMY")) + nil nil) + +(deftest :connection/pool/procedure-mysql + (unwind-protect + (progn + (clsql-sys:disconnect) + (test-connect :pool t) + (clsql-sys:execute-command + "CREATE PROCEDURE prTest () BEGIN SELECT 1 \"a\",2 \"b\",3 \"c\" ,4 \"d\" UNION SELECT 5,6,7,8; END;") + (clsql-sys:disconnect) + (test-connect :pool t) + (let ((p0 (clsql-sys:query "CALL prTest();" :flatp t))) + (clsql-sys:disconnect) + (test-connect :pool t) + (let ((p1 (clsql-sys:query "CALL prTest();" :flatp t))) + (clsql-sys:disconnect) + (test-connect :pool t) + (values p0 p1)))) + (ignore-errors + (clsql-sys:execute-command "DROP PROCEDURE prTest;")) + (test-connect)) + ((1 2 3 4) (5 6 7 8)) + ((1 2 3 4) (5 6 7 8))) + ))