~ 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