2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
20 #include <glib-object.h>
22 #include "../src/thrift/c_glib/thrift_struct.c"
24 /* tests to ensure we can extend a ThriftStruct */
26 struct _ThriftTestStruct
30 typedef struct _ThriftTestStruct ThriftTestStruct
;
32 struct _ThriftTestStructClass
34 ThriftStructClass parent
;
36 typedef struct _ThriftTestStructClass ThriftTestStructClass
;
38 GType
thrift_test_struct_get_type (void);
40 #define THRIFT_TYPE_TEST_STRUCT (thrift_test_struct_get_type ())
41 #define THRIFT_TEST_STRUCT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THRIFT_TYPE_TEST_STRUCT, ThriftTestStruct))
42 #define THRIFT_TEST_STRUCT_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), THRIFT_TYPE_TEST_STRUCT, ThriftTestStructClass))
43 #define THRIFT_IS_TEST_STRUCT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THRIFT_TYPE_TEST_STRUCT))
44 #define THRIFT_IS_TEST_STRUCT_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), THRIFT_TYPE_TEST_STRUCT))
45 #define THRIFT_TEST_STRUCT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THRIFT_TYPE_TEST_STRUCT, ThriftTestStructClass))
47 G_DEFINE_TYPE(ThriftTestStruct
, thrift_test_struct
, THRIFT_TYPE_STRUCT
)
50 thrift_test_struct_read (ThriftStruct
*object
, ThriftProtocol
*protocol
,
53 THRIFT_UNUSED_VAR (object
);
54 THRIFT_UNUSED_VAR (protocol
);
55 THRIFT_UNUSED_VAR (error
);
61 thrift_test_struct_write (ThriftStruct
*object
, ThriftProtocol
*protocol
,
64 THRIFT_UNUSED_VAR (object
);
65 THRIFT_UNUSED_VAR (protocol
);
66 THRIFT_UNUSED_VAR (error
);
72 thrift_test_struct_class_init (ThriftTestStructClass
*cls
)
74 ThriftStructClass
*ts_cls
= THRIFT_STRUCT_CLASS (cls
);
75 ts_cls
->read
= thrift_test_struct_read
;
76 ts_cls
->write
= thrift_test_struct_write
;
80 thrift_test_struct_init (ThriftTestStruct
*s
)
82 THRIFT_UNUSED_VAR (s
);
86 test_initialize_object (void)
88 ThriftTestStruct
*t
= NULL
;
90 t
= g_object_new (THRIFT_TYPE_TEST_STRUCT
, NULL
);
91 g_assert ( THRIFT_IS_STRUCT (t
));
92 thrift_struct_read (THRIFT_STRUCT (t
), NULL
, NULL
);
93 thrift_struct_write (THRIFT_STRUCT (t
), NULL
, NULL
);
94 thrift_test_struct_read (THRIFT_STRUCT (t
), NULL
, NULL
);
95 thrift_test_struct_write (THRIFT_STRUCT (t
), NULL
, NULL
);
100 main(int argc
, char *argv
[])
102 #if (!GLIB_CHECK_VERSION (2, 36, 0))
106 g_test_init (&argc
, &argv
, NULL
);
108 g_test_add_func ("/teststruct/InitializeObject", test_initialize_object
);
110 return g_test_run ();