Skip to content

Commit 324ee47

Browse files
committed
Add a test case for the meta information
This also tests that the weakhashtable works as expected
1 parent 747935f commit 324ee47

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

geb.asd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@
105105
:serial t
106106
:components
107107
((:file package)
108+
(:file meta)
108109
(:file geb)
109110
(:file lambda)
110111
(:file lambda-conversion)

test/meta.lisp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
(in-package :geb-test)
2+
3+
(define-test geb-meta :parent geb-test-suite)
4+
5+
(defclass mixin-test (meta-mixin) ())
6+
7+
(define-test insert-works :parent geb-meta
8+
(let ((obj (make-instance 'mixin-test)))
9+
(meta-insert obj :a 2)
10+
(is = (meta-lookup obj :a) 2)))
11+
12+
(define-test weak-pointers-work :parent geb-meta
13+
(tg:gc :full t)
14+
(let ((count (hash-table-count
15+
(geb.mixins::meta (make-instance 'mixin-test)))))
16+
;; creates some garbage
17+
(meta-insert (make-instance 'mixin-test) :a 2)
18+
;; collect it
19+
(tg:gc :full t)
20+
;; did it work?
21+
(is =
22+
(hash-table-count (geb.mixins::meta (make-instance 'mixin-test)))
23+
count)))

0 commit comments

Comments
 (0)