changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/rocksdb/tests.lisp

changeset 0: 35b3dcda7839
child: 4f38a5cb8b09
author: ellis <ellis@rwest.io>
date: Thu, 12 Oct 2023 22:36:34 -0400
permissions: -rw-r--r--
description: comp/core init
1 ;;; rocksdb/tests.lisp --- RocksDB tests
2 
3 ;;; Code:
4 (defpackage :rocksdb.tests
5  (:use :cl :rt :rocksdb :rdb :sb-alien :alien :sb-ext)
6  (:export :rocksdb-test-dir))
7 
8 (in-package :rocksdb.tests)
9 
10 (defun rocksdb-test-dir ()
11  (format nil "/tmp/~A/" (gensym "rocksdb-tests-")))
12 
13 (defun test-opts ()
14  (let ((opts (rocksdb-options-create)))
15  (rocksdb-options-set-create-if-missing opts t)
16  opts))
17 
18 (defsuite :rocksdb)
19 
20 (defsuite :rdb)
21 
22 (in-suite :rocksdb)
23 
24 (deftest set-opts ()
25  (let ((opts (rocksdb-options-create))
26  (wopts (rocksdb-writeoptions-create))
27  (ropts (rocksdb-readoptions-create))
28  (bopts (rocksdb-block-based-options-create)))
29  (rocksdb-options-set-create-if-missing opts t)
30  (rocksdb-options-destroy opts)
31  (rocksdb-writeoptions-destroy wopts)
32  (rocksdb-readoptions-destroy ropts)
33  (rocksdb-block-based-options-destroy bopts)))
34 
35 (deftest db ()
36  (let* ((opts (test-opts))
37  (path (rocksdb-test-dir))
38  (db (rocksdb-open opts path nil)))
39  (let ((k "key")
40  (v "val")
41  (wopts (rocksdb-writeoptions-create))
42  (ropts (rocksdb-readoptions-create)))
43  (with-alien ((key (* char) (make-alien-string k))
44  (val (* char) (make-alien-string v :external-format :ascii :null-terminate t))
45  (errptr rocksdb-errptr nil)
46  (vlen (* size-t) (make-alien size-t 1))
47  (ar (array char)))
48  (rocksdb-put db
49  wopts
50  key
51  (length k)
52  val
53  (length v)
54  errptr)
55  (is (string= v (rocksdb-get db ropts key (length k) vlen errptr)))
56 
57  (rocksdb-delete db wopts key (length k) errptr)
58  (rocksdb-writeoptions-destroy wopts)
59  (rocksdb-readoptions-destroy ropts)))
60  (rocksdb-close db)
61  (rocksdb-options-destroy opts)
62  (sb-ext:delete-directory path :recursive t)))