From 82e34082ecc9626763a1b1692297b25ab10fbaed Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sun, 25 Sep 2011 17:25:28 -0700 Subject: [PATCH] classes.struct: add test cases for see on structs. --- .../struct/prettyprint/prettyprint.factor | 3 ++- basis/classes/struct/struct-tests.factor | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/basis/classes/struct/prettyprint/prettyprint.factor b/basis/classes/struct/prettyprint/prettyprint.factor index 8e75c85ad6..2d7998135f 100644 --- a/basis/classes/struct/prettyprint/prettyprint.factor +++ b/basis/classes/struct/prettyprint/prettyprint.factor @@ -12,8 +12,9 @@ IN: classes.struct.prettyprint : struct-definer-word ( class -- word ) struct-slots { - { [ dup [ offset>> 0 = ] all? ] [ drop \ UNION-STRUCT: ] } { [ dup [ packed?>> ] all? ] [ drop \ PACKED-STRUCT: ] } + { [ dup length 1 <= ] [ drop \ STRUCT: ] } + { [ dup [ offset>> 0 = ] all? ] [ drop \ UNION-STRUCT: ] } [ drop \ STRUCT: ] } cond ; diff --git a/basis/classes/struct/struct-tests.factor b/basis/classes/struct/struct-tests.factor index 46970c86f7..6003924998 100644 --- a/basis/classes/struct/struct-tests.factor +++ b/basis/classes/struct/struct-tests.factor @@ -514,3 +514,23 @@ PACKED-STRUCT: packed-struct-test [ POSTPONE: PACKED-STRUCT: ] [ packed-struct-test struct-definer-word ] unit-test + +STRUCT: struct-1 { a c:int } ; +PACKED-STRUCT: struct-1-packed { a c:int } ; +UNION-STRUCT: struct-1-union { a c:int } ; + +[ "USING: alien.c-types classes.struct ; +IN: classes.struct.tests +STRUCT: struct-1 { a int initial: 0 } ; +" ] +[ \ struct-1 [ see ] with-string-writer ] unit-test +[ "USING: alien.c-types classes.struct ; +IN: classes.struct.tests +PACKED-STRUCT: struct-1-packed { a int initial: 0 } ; +" ] +[ \ struct-1-packed [ see ] with-string-writer ] unit-test +[ "USING: alien.c-types classes.struct ; +IN: classes.struct.tests +STRUCT: struct-1-union { a int initial: 0 } ; +" ] +[ \ struct-1-union [ see ] with-string-writer ] unit-test