aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/guile/pointer_in_out_runme.scm
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/guile/pointer_in_out_runme.scm')
-rw-r--r--Examples/test-suite/guile/pointer_in_out_runme.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/Examples/test-suite/guile/pointer_in_out_runme.scm b/Examples/test-suite/guile/pointer_in_out_runme.scm
new file mode 100644
index 000000000..68ce0aa3b
--- /dev/null
+++ b/Examples/test-suite/guile/pointer_in_out_runme.scm
@@ -0,0 +1,18 @@
+;; The SWIG modules have "passive" Linkage, i.e., they don't generate
+;; Guile modules (namespaces) but simply put all the bindings into the
+;; current module. That's enough for such a simple test.
+(dynamic-call "scm_init_pointer_in_out_module" (dynamic-link "./libpointer_in_out.so"))
+
+(define-macro (check form)
+ `(if (not ,form)
+ (error "Check failed: " ',form)))
+
+(define p (produce-int-pointer 47 11))
+
+(check (= (consume-int-pointer p) 47))
+
+(define q (frobnicate-int-pointer p))
+
+(check (= (consume-int-pointer q) 11))
+
+(exit 0)