changeset 634:37fc7411e1ef

Actually test for retrieve behaviour in sb-alien bindings Motivated by Jamie's bug report that it doesn't in fact work at all on 32-bit platforms. (Ticket #32 in audioDB trac)
author mas01cr
date Tue, 29 Sep 2009 16:23:39 +0000
parents 1b3b303957bd
children 641daceae79c
files bindings/sb-alien/tests.lisp
diffstat 1 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/bindings/sb-alien/tests.lisp	Tue Sep 29 16:23:37 2009 +0000
+++ b/bindings/sb-alien/tests.lisp	Tue Sep 29 16:23:39 2009 +0000
@@ -30,6 +30,12 @@
      (= length ,(length body))
      (present ,@body)))
 
+(defmacro assert-erroneous (form)
+  `(handler-case ,form
+     (error ())
+     (:no-error (&rest values) 
+       (error "No error: returned ~S" values))))
+
 (declaim (optimize debug))
 
 (defun test-0003 ()
@@ -134,3 +140,16 @@
             ("testfeature10" 0 0 0) ("testfeature10" 2 0 1)))
         (with-asserted-query-results (query50 db :npoints 1)
           ("testfeature01" 0 0 1) ("testfeature10" 0 0 0))))))
+
+(defun test-0048 ()
+  (let ((datum1 (make-datum "testfeature01" '((0d0 0.5d0) (0.5d0 0d0))
+                            :times (coerce '(0d0 1d0 1d0 2d0) '(vector double-float))))
+        (datum2 (make-datum "testfeature10" '((0.5d0 0d0) (0d0 0.5d0) (0.5d0 0d0))
+                            :times (coerce '(0d0 2d0 2d0 3d0 3d0 4d0) '(vector double-float)))))
+    (with-adb (db "testdb.0048" :direction :output :if-exists :supersede)
+      (insert datum1 db)
+      (insert datum2 db)
+      (l2norm db)
+      (assert-erroneous (retrieve "testfeature" db))
+      (assert (equalp (retrieve "testfeature01" db) datum1))
+      (assert (equalp (retrieve "testfeature10" db) datum2)))))