[bknr-cvs] r2374 - branches/bos/projects/bos/m2
ksprotte at common-lisp.net
ksprotte at common-lisp.net
Mon Jan 21 12:40:20 UTC 2008
Author: ksprotte
Date: Mon Jan 21 07:40:18 2008
New Revision: 2374
Modified:
branches/bos/projects/bos/m2/allocation-test.lisp
branches/bos/projects/bos/m2/allocation.lisp
branches/bos/projects/bos/m2/test-fixtures.lisp
Log:
Started some testing using REOPEN-STORE.
Modified: branches/bos/projects/bos/m2/allocation-test.lisp
==============================================================================
--- branches/bos/projects/bos/m2/allocation-test.lisp (original)
+++ branches/bos/projects/bos/m2/allocation-test.lisp Mon Jan 21 07:40:18 2008
@@ -25,7 +25,9 @@
(m2-count 10))
(with-transaction ()
(bos.m2::activate-allocation-area area))
+ (finishes (allocation-area-free-m2s area))
(is (= 1 (bos.m2.allocation-cache:free-regions-count)))
+ (reopen-store (:snapshot nil) area sponsor)
(is-true (bos.m2.allocation-cache:find-exact-match 10))
(finishes (make-contract sponsor m2-count))
(is (zerop (allocation-area-free-m2s area))))))
Modified: branches/bos/projects/bos/m2/allocation.lisp
==============================================================================
--- branches/bos/projects/bos/m2/allocation.lisp (original)
+++ branches/bos/projects/bos/m2/allocation.lisp Mon Jan 21 07:40:18 2008
@@ -46,10 +46,13 @@
(defmethod print-object ((allocation-area allocation-area) stream)
(print-unreadable-object (allocation-area stream :type t)
- (format stream "~a x ~a ~:[inactive~;active~] ID: ~a"
+ (format stream "~a x ~a ~:[inactive~;active~] free: ~s ID: ~a"
(allocation-area-width allocation-area)
(allocation-area-height allocation-area)
(allocation-area-active-p allocation-area)
+ (if (slot-boundp allocation-area 'free-m2s)
+ (allocation-area-free-m2s allocation-area)
+ :unbound)
(store-object-id allocation-area))))
(defmethod initialize-persistent-instance :after ((allocation-area allocation-area))
@@ -181,13 +184,13 @@
(null (allocation-area-free-m2s allocation-area)))))
(all-allocation-areas)))
-(defun activate-allocation-area (area)
+(deftransaction activate-allocation-area (area)
(warn "activating ~S" area)
(setf (slot-value area 'active-p) t)
(bos.m2.allocation-cache:rebuild-cache)
area)
-(defun deactivate-allocation-area (area)
+(deftransaction deactivate-allocation-area (area)
(warn "deactivating ~S" area)
(setf (slot-value area 'active-p) nil)
(bos.m2.allocation-cache:rebuild-cache)
Modified: branches/bos/projects/bos/m2/test-fixtures.lisp
==============================================================================
--- branches/bos/projects/bos/m2/test-fixtures.lisp (original)
+++ branches/bos/projects/bos/m2/test-fixtures.lisp Mon Jan 21 07:40:18 2008
@@ -1,5 +1,31 @@
(in-package :bos.test)
+(defun %reopen-store (&key snapshot)
+ (format t "~&;; ++ reopen-store~%")
+ (when snapshot
+ (format t "~&;; ++ taking snapshot~%")
+ (snapshot))
+ (bos.m2::reinit :directory (bknr.datastore::store-directory *store*)
+ :website-url bos.m2::*website-url*)
+ (format t "~&;; ++ reopen-store done~%"))
+
+(defmacro reopen-store ((&key snapshot) &body store-object-vars)
+ (let ((id-vars (iter
+ (with *print-case* = :upcase)
+ (for store-object-var in store-object-vars)
+ (for id-var = (gensym (format nil "~A-ID" store-object-var)))
+ (collect id-var))))
+ `(let (,@(iter
+ (for id-var in id-vars)
+ (for store-object-var in store-object-vars)
+ (collect `(,id-var (store-object-id ,store-object-var)))))
+ (%reopen-store :snapshot ,snapshot)
+ (setf ,@(iter
+ (for id-var in id-vars)
+ (for store-object-var in store-object-vars)
+ (collect store-object-var)
+ (collect `(find-store-object ,id-var)))))))
+
(def-fixture empty-store ()
(unwind-protect
(progn
More information about the Bknr-cvs
mailing list