-IN: alien.structs.tests
USING: alien alien.syntax alien.c-types kernel tools.test
sequences system libc words vocabs namespaces layouts ;
+IN: alien.structs.tests
C-STRUCT: bar
{ "int" "x" }
{ { "int" 8 } "y" } ;
[ 36 ] [ "bar" heap-size ] unit-test
-[ t ] [ \ <displaced-alien> "bar" c-type c-type-getter memq? ] unit-test
+[ t ] [ \ <displaced-alien> "bar" c-type-getter memq? ] unit-test
C-STRUCT: align-test
{ "int" "x" }
] when
] when
-: MAX_FOOS 30 ;
+CONSTANT: MAX_FOOS 30
C-STRUCT: foox
{ { "int" MAX_FOOS } "x" } ;
[ 120 ] [ "barx" heap-size ] unit-test
"help" vocab [
- "help" "help" lookup "help" set
+ "print-topic" "help" lookup "help" set
[ ] [ \ foox-x "help" get execute ] unit-test
[ ] [ \ set-foox-x "help" get execute ] unit-test
] when
+
+C-STRUCT: nested
+ { "int" "x" } ;
+
+C-STRUCT: nested-2
+ { "nested" "y" } ;
+
+[ 4 ] [
+ "nested-2" <c-object>
+ "nested" <c-object>
+ 4 over set-nested-x
+ over set-nested-2-y
+ nested-2-y
+ nested-x
+] unit-test