diff options
author | Simon Feltman <sfeltman@src.gnome.org> | 2013-12-17 05:22:39 -0800 |
---|---|---|
committer | Simon Feltman <sfeltman@src.gnome.org> | 2014-01-02 14:34:42 -0800 |
commit | 4a64ab0b8e3e6cf0ebb4f34dd9276e964e1f303c (patch) | |
tree | 122cee10b008528340cb9043d3767008843df59b /tests/scanner/typedefs.h | |
parent | 80b54bd0daf82e566570c6c952271e74fbb4542e (diff) | |
download | gobject-introspection-4a64ab0b8e3e6cf0ebb4f34dd9276e964e1f303c.tar.gz |
tests: Add tests for various struct typedef combinations
Add functional blackbox tests typedefs.[h|c] for various struct typedef
orderings. Use XFAIL_TESTS with the new Typedefs-1.0.gir target.
This allows for a differing expected gir that does not cause the suite
to fail but rather a goal to work towards.
https://bugzilla.gnome.org/show_bug.cgi?id=581525
Diffstat (limited to 'tests/scanner/typedefs.h')
-rw-r--r-- | tests/scanner/typedefs.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/scanner/typedefs.h b/tests/scanner/typedefs.h new file mode 100644 index 00000000..2a5d8beb --- /dev/null +++ b/tests/scanner/typedefs.h @@ -0,0 +1,73 @@ +#ifndef __TYPEDEFS_H__ +#define __TYPEDEFS_H__ + +#include <glib-object.h> + +/* + * Tests for various orderings of typedef struct declarations. + */ + + +typedef struct { + int value; +} TypedefsStructWithAnonymousTypedef; + + +typedef struct _TypedefsStructWithTypedefBefore TypedefsStructWithTypedefBefore; +struct _TypedefsStructWithTypedefBefore { + int value; +}; + + +/* BUG: produces name with underscore prefix */ +struct _TypedefsStructWithTypedefAfter { + int value; +}; +typedef struct _TypedefsStructWithTypedefAfter TypedefsStructWithTypedefAfter; + + +/* BUG: produces name with underscore prefix */ +typedef struct _TypedefsStructWithTagAndTypedef { + int value; +} TypedefsStructWithTagAndTypedef; + + +/* + * Boxed versions of typedef ordering tests. + */ + +typedef struct _TypedefsBoxedWithTypedefBefore TypedefsBoxedWithTypedefBefore; +struct _TypedefsBoxedWithTypedefBefore { + int value; +}; +GType typedefs_boxed_with_typedef_before_get_type (void) G_GNUC_CONST; + + +/* BUG: struct has no fields in GIR */ +struct _TypedefsBoxedWithTypedefAfter { + int value; +}; +typedef struct _TypedefsBoxedWithTypedefAfter TypedefsBoxedWithTypedefAfter; +GType typedefs_boxed_with_typedef_after_get_type (void) G_GNUC_CONST; + + +/* BUG: struct has no fields and extra <record> with underscore prefix */ +typedef struct _TypedefsBoxedWithTagAndTypedef { + int value; +} TypedefsBoxedWithTagAndTypedef; +GType typedefs_boxed_with_tag_and_typedef_get_type (void) G_GNUC_CONST; + + +/* BUG: extra <record> with underscore prefix */ +typedef struct { + int value; +} TypedefsBoxedWithAnonymousTypedef; +GType typedefs_boxed_with_anonymous_typedef_get_type (void) G_GNUC_CONST; + + +/* BUG: uses <record> instead of <glib:boxed> */ +typedef struct _TypedefsBoxedWithHiddenStruct TypedefsBoxedWithHiddenStruct; +GType typedefs_boxed_with_hidden_struct_get_type (void) G_GNUC_CONST; + + +#endif /*__TYPEDEFS_H__*/ |