~ chicken-core (chicken-5) 198d8ccbbc75d4fa0b5de4d44941be97450537ee


commit 198d8ccbbc75d4fa0b5de4d44941be97450537ee
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Sep 15 09:31:18 2010 -0400
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Sep 15 09:31:18 2010 -0400

    more pv tests

diff --git a/tests/lolevel-tests.scm b/tests/lolevel-tests.scm
index 82095073..71d18acf 100644
--- a/tests/lolevel-tests.scm
+++ b/tests/lolevel-tests.scm
@@ -286,3 +286,18 @@
 (assert (= (pointer->address (pointer-vector-ref pv 40)) 777))
 (pointer-vector-fill! pv (address->pointer 1))
 (assert (= 1 (pointer-vector-ref pv 0)))
+
+(define pv1
+  (foreign-lambda* scheme-object ((pointer-vector pv))
+    "C_return(C_mk_bool(pv == NULL));"))
+
+(define pv2
+  (foreign-lambda* c-pointer ((pointer-vector pv) (bool f))
+    "static void *xx;"
+    "if(!f) C_return(xx[ 0 ]);"
+    "else pv[ 0 ] = xx;"
+    "C_return(xx);"))
+
+(assert (eq? #t (pv1 #f)))
+(define p (pv2 #t))
+(assert (pointer=? p (pv2 #f)))
Trap