changelog shortlog graph tags branches changeset file revisions annotate raw help

Mercurial > core / lisp/rocksdb/tests.lisp

revision 0: 35b3dcda7839
child 1: 4f38a5cb8b09
     1.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2+++ b/lisp/rocksdb/tests.lisp	Thu Oct 12 22:36:34 2023 -0400
     1.3@@ -0,0 +1,62 @@
     1.4+;;; rocksdb/tests.lisp --- RocksDB tests
     1.5+
     1.6+;;; Code:
     1.7+(defpackage :rocksdb.tests
     1.8+  (:use :cl :rt :rocksdb :rdb :sb-alien :alien :sb-ext)
     1.9+  (:export :rocksdb-test-dir))
    1.10+
    1.11+(in-package :rocksdb.tests)
    1.12+
    1.13+(defun rocksdb-test-dir ()
    1.14+  (format nil "/tmp/~A/" (gensym "rocksdb-tests-")))
    1.15+
    1.16+(defun test-opts () 
    1.17+  (let ((opts (rocksdb-options-create)))
    1.18+    (rocksdb-options-set-create-if-missing opts t)
    1.19+    opts))
    1.20+
    1.21+(defsuite :rocksdb)
    1.22+
    1.23+(defsuite :rdb)
    1.24+
    1.25+(in-suite :rocksdb)
    1.26+
    1.27+(deftest set-opts ()
    1.28+  (let ((opts (rocksdb-options-create))
    1.29+        (wopts (rocksdb-writeoptions-create))
    1.30+        (ropts (rocksdb-readoptions-create))
    1.31+        (bopts (rocksdb-block-based-options-create)))
    1.32+    (rocksdb-options-set-create-if-missing opts t)
    1.33+    (rocksdb-options-destroy opts)
    1.34+    (rocksdb-writeoptions-destroy wopts)
    1.35+    (rocksdb-readoptions-destroy ropts)
    1.36+    (rocksdb-block-based-options-destroy bopts)))
    1.37+
    1.38+(deftest db ()
    1.39+  (let* ((opts (test-opts))
    1.40+         (path (rocksdb-test-dir))
    1.41+         (db (rocksdb-open opts path nil)))
    1.42+    (let ((k "key")
    1.43+          (v "val")
    1.44+          (wopts (rocksdb-writeoptions-create))
    1.45+          (ropts (rocksdb-readoptions-create)))
    1.46+      (with-alien ((key (* char) (make-alien-string k))
    1.47+                   (val (* char) (make-alien-string v :external-format :ascii :null-terminate t))
    1.48+                   (errptr rocksdb-errptr nil)
    1.49+                   (vlen (* size-t) (make-alien size-t 1))
    1.50+                   (ar (array char)))
    1.51+        (rocksdb-put db 
    1.52+                     wopts
    1.53+                     key
    1.54+                     (length k) 
    1.55+                     val
    1.56+                     (length v)
    1.57+                     errptr)
    1.58+        (is (string= v (rocksdb-get db ropts key (length k) vlen errptr)))
    1.59+
    1.60+        (rocksdb-delete db wopts key (length k) errptr)
    1.61+        (rocksdb-writeoptions-destroy wopts)
    1.62+        (rocksdb-readoptions-destroy ropts)))
    1.63+    (rocksdb-close db)
    1.64+    (rocksdb-options-destroy opts)
    1.65+    (sb-ext:delete-directory path :recursive t)))