cl-scopes/test/test-storage.lisp

44 lines
1.2 KiB
Common Lisp

;;; cl-scopes/test/test-storage
;;;; testing facility for scopes/storage
(defpackage :scopes/test-storage
(:use :common-lisp)
(:local-nicknames (:storage :scopes/storage)
(:tracking :scopes/storage/tracking)
(:t :scopes/testing))
(:export #:*db-config-test*
#:run #:run-all #:run-postgres #:run-sqlite)
(:import-from :scopes/testing #:==))
(in-package :scopes/test-storage)
(defparameter *db-config-test* nil)
(defun run-all ()
(run-sqlite)
(run-postgres))
(defun run-sqlite ()
(load "test/config-sqlite")
(let ((storage:*db-config* *db-config-test*))
(run)))
(defun run-postgres ()
(load "test/config-postgres")
(let ((storage:*db-config* *db-config-test*))
(run)))
(defun run ()
(let* ((engine (storage:make-engine))
(st (storage:make-storage engine))
(t:*tst* (t:test-suite)))
(test-track st)
(t:show-result)))
(defun test-track (st)
(let ((tr (make-instance 'tracking:track)))
(storage:drop-table st :tracks)
(tracking:create-table st :tracks '(taskid username))
(tracking:create-indexes st :tracks '((taskid) (taskid username)))
(== (tracking:data tr) nil)))