X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=tests%2Fforeign-record.scm;h=9bc8dee46676839c9dd9f5c8ef11c954a86a68fe;hb=916ccc1a2ce8a81d8c611fc976fc537d6048dd47;hp=06343b12cc7f49a25143d3b217460bac83d40c24;hpb=5f5b7536e4f044eb617925db8d4df9b02be3ba7d;p=guile-irrlicht.git diff --git a/tests/foreign-record.scm b/tests/foreign-record.scm index 06343b1..9bc8dee 100644 --- a/tests/foreign-record.scm +++ b/tests/foreign-record.scm @@ -20,7 +20,7 @@ (use-modules (system foreign) (srfi srfi-64) - (irrlicht util)) + (irrlicht util foreign)) (test-begin "foreign-record") @@ -28,12 +28,12 @@ (define-foreign-record-type dimension2d (make-dimension2d width height) dimension2d? - dimension2d-pointer (width uint32 dimension2d-width set-dimension2d-width!) (height uint32 dimension2d-height set-dimension2d-height!)) ;; Create dimension (define dim (make-dimension2d 10 20)) +(test-assert (dimension2d? dim)) (test-equal 10 (dimension2d-width dim)) (test-equal 20 (dimension2d-height dim)) @@ -44,6 +44,23 @@ (test-equal 100 (dimension2d-height dim)) ;; Is a pointer -(test-assert (pointer? (dimension2d-pointer dim))) +(test-assert (pointer? (foreign-record->pointer dim))) + +;; Foreign record types as types for other foreign records +(define-foreign-record-type point + (make-point x y) + point? + (x int64 point-x) + (y int64 point-y)) + +(define-foreign-record-type triangle + (make-triangle p1 p2 p3) + triangle? + (p1 point triangle-p1) + (p2 point triangle-p2) + (p3 point triangle-p3)) + +;(define tr (make-triangle (make-point 0 10) (make-point -10 5) (make-point 15 -7))) +;(test-equal -10 (point-x (triangle-p2 tr))) (test-end "foreign-record")