Adding some tests for sending large strings to and from the database.
[clsql.git] / tests / test-basic.lisp
index 03ed1e1c4b03e9a2093aa1fb0dc25d7af4821115..98e986119fae8c6495caadc55d73ba3b00b4e87b 100644 (file)
                      results)))))
       ((t t) (t t) (t t) (t t) (t t) (t t) (t t) (t t) (t t) (t t) (t t)))
 
+
+    (deftest :basic/bigtext/1
+       (with-dataset *ds-bigtext*
+         (let* ((len 7499)
+                (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)
+    (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)
+
     ))
 
 
        (if (> diff (* 10 double-float-epsilon))
            nil
            t))))
+
+(def-dataset *ds-bigtext*
+  (:setup "CREATE TABLE testbigtext(a varchar(7500))")
+  (:cleanup "DROP TABLE testbigtext"))