X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=tests%2Ftest-basic.lisp;h=4d277e358d14ba2c722940c36e02df888371048d;hp=9dad688c99954b7c4da456c12c2677e23a5f9fc7;hb=374df8f34a7214e08fc4cfc5d734d024acdbf9ca;hpb=5fd51413d8e15acaec4a70e4dd7996defcd87073 diff --git a/tests/test-basic.lisp b/tests/test-basic.lisp index 9dad688..4d277e3 100644 --- a/tests/test-basic.lisp +++ b/tests/test-basic.lisp @@ -208,18 +208,40 @@ )) nil) (deftest :basic/bigtext/2 - (dotimes (n 10) - (with-dataset *ds-bigtext* - (let* ((len (random 7500)) - (str (make-string len :initial-element #\a)) - (cmd (format nil "INSERT INTO testbigtext (a) VALUES ('~a')" str))) - (execute-command cmd) - (let ((a (first (query "SELECT a from testbigtext" - :flatp t :field-names nil)))) - (assert (string= str a) (str a) - "mismatch on a. inserted: ~a returned: ~a" len (length a))) - ))) - nil) + (flet ((random-char () + (let ((alphabet "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") + (idx (random 52))) + (elt alphabet idx)))) + (dotimes (n 10) + (with-dataset *ds-bigtext* + (let* ((len (random 7500)) + (str (coerce (make-array len + :initial-contents (loop repeat len collect (random-char))) + 'string)) + (cmd (format nil "INSERT INTO testbigtext (a) VALUES ('~a')" str))) + (execute-command cmd) + (let ((a (first (query "SELECT a from testbigtext" + :flatp t :field-names nil)))) + (assert (string= str a) (str a) + "mismatch on randomized bigtext(~a) inserted: ~s returned: ~s" len str a)) + )))) + nil) + + (deftest :basic/reallybigintegers/1 + (with-dataset *ds-reallybigintegers* + (let* ((a (1- (expt 2 64))) + (b (- (expt 2 64) 2)) + (c (expt 2 63)) + (d (expt 2 62)) + (sql (format nil "INSERT INTO testreallybigintegers + VALUES (~A, ~A, ~A, ~A)" + a b c d))) + (query sql) + (let ((results + (query + (format nil "SELECT * FROM testreallybigintegers")))) + (equal `(,a ,b ,c ,d) (car results))))) + t) )) @@ -279,3 +301,14 @@ (def-dataset *ds-bigtext* (:setup "CREATE TABLE testbigtext(a varchar(7500))") (:cleanup "DROP TABLE testbigtext")) + +(def-dataset *ds-reallybigintegers* + (:setup (lambda () + (ignore-errors + (clsql:execute-command "DROP TABLE testreallybigintegers")) + (clsql:execute-command + "CREATE TABLE testreallybigintegers( a BIGINT UNSIGNED, + b BIGINT UNSIGNED, + c BIGINT UNSIGNED, + d BIGINT UNSIGNED )"))) + (:cleanup "DROP TABLE testreallybigintegers"))