1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_codemaker.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "FILE.hpp"
28*b1cdbd2cSJim Jagielski #include "lconv.hpp"
29*b1cdbd2cSJim Jagielski #include "tm.hpp"
30*b1cdbd2cSJim Jagielski #include "std.hpp"
31*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/XTest.hpp"
32*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/S1.hpp"
33*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/asm.hpp"
34*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/auto.hpp"
35*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/bool.hpp"
36*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/break.hpp"
37*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/case.hpp"
38*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/catch.hpp"
39*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/char.hpp"
40*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/class.hpp"
41*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/const.hpp"
42*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/continue.hpp"
43*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/default.hpp"
44*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/delete.hpp"
45*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/do.hpp"
46*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/double.hpp"
47*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/else.hpp"
48*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/enum.hpp"
49*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/explicit.hpp"
50*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/export.hpp"
51*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/extern.hpp"
52*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/false.hpp"
53*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/float.hpp"
54*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/for.hpp"
55*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/friend.hpp"
56*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/goto.hpp"
57*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/if.hpp"
58*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/inline.hpp"
59*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/int.hpp"
60*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/long.hpp"
61*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/mutable.hpp"
62*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/namespace.hpp"
63*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/new.hpp"
64*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/operator.hpp"
65*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/private.hpp"
66*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/protected.hpp"
67*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/public.hpp"
68*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/register.hpp"
69*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/return.hpp"
70*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/short.hpp"
71*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/signed.hpp"
72*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/sizeof.hpp"
73*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/static.hpp"
74*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/struct.hpp"
75*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/switch.hpp"
76*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/template.hpp"
77*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/this.hpp"
78*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/throw.hpp"
79*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/true.hpp"
80*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/try.hpp"
81*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/typedef.hpp"
82*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/typeid.hpp"
83*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/typename.hpp"
84*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/union.hpp"
85*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/unsigned.hpp"
86*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/using.hpp"
87*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/virtual.hpp"
88*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/services/void.hpp"
89*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/volatile.hpp"
90*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/while.hpp"
91*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/and.hpp"
92*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/bitand.hpp"
93*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/bitor.hpp"
94*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/compl.hpp"
95*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/not.hpp"
96*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/or.hpp"
97*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/xor.hpp"
98*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/BUFSIZ.hpp"
99*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/CLOCKS_PER_SEC.hpp"
100*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/EDOM.hpp"
101*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/EOF.hpp"
102*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/ERANGE.hpp"
103*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/EXIT_FAILURE.hpp"
104*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/EXIT_SUCCESS.hpp"
105*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FILENAME_MAX.hpp"
106*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FOPEN_MAX.hpp"
107*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/HUGE_VAL.hpp"
108*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LC_ALL.hpp"
109*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LC_COLLATE.hpp"
110*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LC_CTYPE.hpp"
111*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LC_MONETARY.hpp"
112*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LC_NUMERIC.hpp"
113*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LC_TIME.hpp"
114*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/L_tmpnam.hpp"
115*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/MB_CUR_MAX.hpp"
116*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/NULL.hpp"
117*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/RAND_MAX.hpp"
118*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SEEK_CUR.hpp"
119*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SEEK_END.hpp"
120*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SEEK_SET.hpp"
121*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIGABRT.hpp"
122*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIGFPE.hpp"
123*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIGILL.hpp"
124*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIGINT.hpp"
125*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIGSEGV.hpp"
126*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIGTERM.hpp"
127*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIG_DFL.hpp"
128*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIG_ERR.hpp"
129*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SIG_IGN.hpp"
130*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/TMP_MAX.hpp"
131*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/WCHAR_MAX.hpp"
132*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/WCHAR_MIN.hpp"
133*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/WEOF.hpp"
134*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/assert.hpp"
135*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/errno.hpp"
136*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/offsetof.hpp"
137*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/setjmp.hpp"
138*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/stderr.hpp"
139*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/stdin.hpp"
140*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/stdout.hpp"
141*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/CHAR_BIT.hpp"
142*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/CHAR_MAX.hpp"
143*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/CHAR_MIN.hpp"
144*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_DIG.hpp"
145*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_EPSILON.hpp"
146*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_MANT_DIG.hpp"
147*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_MAX.hpp"
148*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_MAX_10_EXP.hpp"
149*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_MAX_EXP.hpp"
150*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_MIN.hpp"
151*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_MIN_10_EXP.hpp"
152*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/DBL_MIN_EXP.hpp"
153*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_DIG.hpp"
154*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_EPSILON.hpp"
155*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_MANT_DIG.hpp"
156*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_MAX.hpp"
157*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_MAX_10_EXP.hpp"
158*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_MAX_EXP.hpp"
159*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_MIN.hpp"
160*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_MIN_10_EXP.hpp"
161*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_MIN_EXP.hpp"
162*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_RADIX.hpp"
163*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FLT_ROUNDS.hpp"
164*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/INT_MAX.hpp"
165*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/INT_MIN.hpp"
166*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_DIG.hpp"
167*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_EPSILON.hpp"
168*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_MANT_DIG.hpp"
169*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_MAX.hpp"
170*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_MAX_10_EXP.hpp"
171*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_MAX_EXP.hpp"
172*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_MIN.hpp"
173*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_MIN_10_EXP.hpp"
174*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LDBL_MIN_EXP.hpp"
175*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LONG_MAX.hpp"
176*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/LONG_MIN.hpp"
177*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/MB_LEN_MAX.hpp"
178*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SCHAR_MAX.hpp"
179*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SCHAR_MIN.hpp"
180*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SHRT_MAX.hpp"
181*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/SHRT_MIN.hpp"
182*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/UCHAR_MAX.hpp"
183*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/UINT_MAX.hpp"
184*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/ULONG_MAX.hpp"
185*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/USHRT_MAX.hpp"
186*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/FILE.hpp"
187*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/lconv.hpp"
188*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/tm.hpp"
189*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/std.hpp"
190*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/NDEBUG.hpp"
191*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/services/create.hpp"
192*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/asm.hpp"
193*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/auto.hpp"
194*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/bool.hpp"
195*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/break.hpp"
196*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/case.hpp"
197*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/catch.hpp"
198*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/char.hpp"
199*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/class.hpp"
200*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/const.hpp"
201*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/continue.hpp"
202*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/default.hpp"
203*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/delete.hpp"
204*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/do.hpp"
205*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/double.hpp"
206*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/else.hpp"
207*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/enum.hpp"
208*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/explicit.hpp"
209*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/export.hpp"
210*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/extern.hpp"
211*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/false.hpp"
212*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/float.hpp"
213*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/for.hpp"
214*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/friend.hpp"
215*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/goto.hpp"
216*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/if.hpp"
217*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/inline.hpp"
218*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/int.hpp"
219*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/long.hpp"
220*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/mutable.hpp"
221*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/namespace.hpp"
222*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/new.hpp"
223*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/operator.hpp"
224*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/private.hpp"
225*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/protected.hpp"
226*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/public.hpp"
227*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/register.hpp"
228*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/return.hpp"
229*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/short.hpp"
230*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/signed.hpp"
231*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/sizeof.hpp"
232*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/static.hpp"
233*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/struct.hpp"
234*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/switch.hpp"
235*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/template.hpp"
236*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/this.hpp"
237*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/throw.hpp"
238*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/true.hpp"
239*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/try.hpp"
240*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/typedef.hpp"
241*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/typeid.hpp"
242*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/typename.hpp"
243*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/union.hpp"
244*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/unsigned.hpp"
245*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/using.hpp"
246*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/virtual.hpp"
247*b1cdbd2cSJim Jagielski //TODO: #include "test/codemaker/cppumaker/singletons/void.hpp"
248*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/volatile.hpp"
249*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/while.hpp"
250*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/and.hpp"
251*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/bitand.hpp"
252*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/bitor.hpp"
253*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/compl.hpp"
254*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/not.hpp"
255*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/or.hpp"
256*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/xor.hpp"
257*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/BUFSIZ.hpp"
258*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/CLOCKS_PER_SEC.hpp"
259*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/EDOM.hpp"
260*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/EOF.hpp"
261*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/ERANGE.hpp"
262*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/EXIT_FAILURE.hpp"
263*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/EXIT_SUCCESS.hpp"
264*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FILENAME_MAX.hpp"
265*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FOPEN_MAX.hpp"
266*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/HUGE_VAL.hpp"
267*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LC_ALL.hpp"
268*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LC_COLLATE.hpp"
269*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LC_CTYPE.hpp"
270*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LC_MONETARY.hpp"
271*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LC_NUMERIC.hpp"
272*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LC_TIME.hpp"
273*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/L_tmpnam.hpp"
274*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/MB_CUR_MAX.hpp"
275*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/NULL.hpp"
276*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/RAND_MAX.hpp"
277*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SEEK_CUR.hpp"
278*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SEEK_END.hpp"
279*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SEEK_SET.hpp"
280*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIGABRT.hpp"
281*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIGFPE.hpp"
282*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIGILL.hpp"
283*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIGINT.hpp"
284*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIGSEGV.hpp"
285*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIGTERM.hpp"
286*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIG_DFL.hpp"
287*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIG_ERR.hpp"
288*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SIG_IGN.hpp"
289*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/TMP_MAX.hpp"
290*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/WCHAR_MAX.hpp"
291*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/WCHAR_MIN.hpp"
292*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/WEOF.hpp"
293*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/assert.hpp"
294*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/errno.hpp"
295*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/offsetof.hpp"
296*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/setjmp.hpp"
297*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/stderr.hpp"
298*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/stdin.hpp"
299*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/stdout.hpp"
300*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/CHAR_BIT.hpp"
301*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/CHAR_MAX.hpp"
302*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/CHAR_MIN.hpp"
303*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_DIG.hpp"
304*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_EPSILON.hpp"
305*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_MANT_DIG.hpp"
306*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_MAX.hpp"
307*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_MAX_10_EXP.hpp"
308*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_MAX_EXP.hpp"
309*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_MIN.hpp"
310*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_MIN_10_EXP.hpp"
311*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/DBL_MIN_EXP.hpp"
312*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_DIG.hpp"
313*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_EPSILON.hpp"
314*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_MANT_DIG.hpp"
315*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_MAX.hpp"
316*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_MAX_10_EXP.hpp"
317*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_MAX_EXP.hpp"
318*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_MIN.hpp"
319*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_MIN_10_EXP.hpp"
320*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_MIN_EXP.hpp"
321*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_RADIX.hpp"
322*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FLT_ROUNDS.hpp"
323*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/INT_MAX.hpp"
324*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/INT_MIN.hpp"
325*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_DIG.hpp"
326*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_EPSILON.hpp"
327*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_MANT_DIG.hpp"
328*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_MAX.hpp"
329*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_MAX_10_EXP.hpp"
330*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_MAX_EXP.hpp"
331*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_MIN.hpp"
332*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_MIN_10_EXP.hpp"
333*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LDBL_MIN_EXP.hpp"
334*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LONG_MAX.hpp"
335*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/LONG_MIN.hpp"
336*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/MB_LEN_MAX.hpp"
337*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SCHAR_MAX.hpp"
338*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SCHAR_MIN.hpp"
339*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SHRT_MAX.hpp"
340*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/SHRT_MIN.hpp"
341*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/UCHAR_MAX.hpp"
342*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/UINT_MAX.hpp"
343*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/ULONG_MAX.hpp"
344*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/USHRT_MAX.hpp"
345*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/FILE.hpp"
346*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/lconv.hpp"
347*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/tm.hpp"
348*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/std.hpp"
349*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/NDEBUG.hpp"
350*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/singletons/get.hpp"
351*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/HelperEnum.hpp"
352*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/HelperStruct.hpp"
353*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/BigStruct.hpp"
354*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/Struct.hpp"
355*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/StructUsage.hpp"
356*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/AlignmentDerivedStruct.hpp"
357*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/TestException1.hpp"
358*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/TestException2.hpp"
359*b1cdbd2cSJim Jagielski #include "test/codemaker/cppumaker/Constants.hpp"
360*b1cdbd2cSJim Jagielski 
361*b1cdbd2cSJim Jagielski #include "boost/scoped_array.hpp"
362*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/Any.hxx"
363*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/Type.hxx"
364*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/TypeClass.hpp"
365*b1cdbd2cSJim Jagielski #include "testshl/simpleheader.hxx"
366*b1cdbd2cSJim Jagielski #include "rtl/ustring.h"
367*b1cdbd2cSJim Jagielski #include "rtl/ustring.hxx"
368*b1cdbd2cSJim Jagielski 
369*b1cdbd2cSJim Jagielski #include <cstddef>
370*b1cdbd2cSJim Jagielski #include <iostream>
371*b1cdbd2cSJim Jagielski 
372*b1cdbd2cSJim Jagielski namespace {
373*b1cdbd2cSJim Jagielski 
374*b1cdbd2cSJim Jagielski class Test: public CppUnit::TestFixture {
375*b1cdbd2cSJim Jagielski public:
376*b1cdbd2cSJim Jagielski     void testBigStruct();
377*b1cdbd2cSJim Jagielski 
378*b1cdbd2cSJim Jagielski     void testPolyStruct();
379*b1cdbd2cSJim Jagielski 
380*b1cdbd2cSJim Jagielski     void testExceptions();
381*b1cdbd2cSJim Jagielski 
382*b1cdbd2cSJim Jagielski     void testConstants();
383*b1cdbd2cSJim Jagielski 
384*b1cdbd2cSJim Jagielski     CPPUNIT_TEST_SUITE(Test);
385*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testBigStruct);
386*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testPolyStruct);
387*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testExceptions);
388*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testConstants);
389*b1cdbd2cSJim Jagielski     CPPUNIT_TEST_SUITE_END();
390*b1cdbd2cSJim Jagielski };
391*b1cdbd2cSJim Jagielski 
392*b1cdbd2cSJim Jagielski struct Guard {
Guard__anondb0758910111::Guard393*b1cdbd2cSJim Jagielski     explicit Guard(void * buffer):
394*b1cdbd2cSJim Jagielski         p(new(buffer) test::codemaker::cppumaker::BigStruct) {}
395*b1cdbd2cSJim Jagielski 
~Guard__anondb0758910111::Guard396*b1cdbd2cSJim Jagielski     ~Guard() { p->test::codemaker::cppumaker::BigStruct::~BigStruct(); }
397*b1cdbd2cSJim Jagielski 
398*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::BigStruct * const p;
399*b1cdbd2cSJim Jagielski };
400*b1cdbd2cSJim Jagielski 
testBigStruct()401*b1cdbd2cSJim Jagielski void Test::testBigStruct() {
402*b1cdbd2cSJim Jagielski     // Default-initialize a BigStruct instance on top of a memory buffer filled
403*b1cdbd2cSJim Jagielski     // with random data, and make sure that all members are default-initialized:
404*b1cdbd2cSJim Jagielski     boost::scoped_array< char > buffer(
405*b1cdbd2cSJim Jagielski         new char[sizeof (test::codemaker::cppumaker::BigStruct)]);
406*b1cdbd2cSJim Jagielski     for (std::size_t i = 0; i < sizeof (test::codemaker::cppumaker::BigStruct);
407*b1cdbd2cSJim Jagielski          ++i)
408*b1cdbd2cSJim Jagielski     {
409*b1cdbd2cSJim Jagielski         buffer[i] = '\x56';
410*b1cdbd2cSJim Jagielski     }
411*b1cdbd2cSJim Jagielski     Guard guard(buffer.get());
412*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m1, sal_False);
413*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m2, static_cast< sal_Int8 >(0));
414*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m3, static_cast< sal_Int16 >(0));
415*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m4, static_cast< sal_uInt16 >(0));
416*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m5, static_cast< sal_Int32 >(0));
417*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m6, static_cast< sal_uInt32 >(0));
418*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m7, static_cast< sal_Int64 >(0));
419*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m8, static_cast< sal_uInt64 >(0));
420*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m9, 0.0f);
421*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m10, 0.0);
422*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m11, static_cast< sal_Unicode >(0));
423*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m12.getLength(), static_cast< sal_Int32 >(0));
424*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
425*b1cdbd2cSJim Jagielski         guard.p->m13.getTypeClass(), com::sun::star::uno::TypeClass_VOID);
426*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m14.hasValue(), sal_False);
427*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m15.getLength(), static_cast< sal_Int32 >(0));
428*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
429*b1cdbd2cSJim Jagielski         guard.p->m16, test::codemaker::cppumaker::HelperEnum_ZERO);
430*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m17.m1, sal_False);
431*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m17.m2.is(), sal_False);
432*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m18.is(), sal_False);
433*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m19, static_cast< sal_Int8 >(0));
434*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
435*b1cdbd2cSJim Jagielski         guard.p->m20, test::codemaker::cppumaker::HelperEnum_ZERO);
436*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m21.getLength(), static_cast< sal_Int32 >(0));
437*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m22.getLength(), static_cast< sal_Int32 >(0));
438*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(guard.p->m23.getLength(), static_cast< sal_Int32 >(0));
439*b1cdbd2cSJim Jagielski 
440*b1cdbd2cSJim Jagielski #if defined __GNUC__ && __GNUC__ >= 3 // see CPPU_GCC3_ALIGN
441*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
442*b1cdbd2cSJim Jagielski #if defined X86_64
443*b1cdbd2cSJim Jagielski         static_cast< std::size_t >(24),
444*b1cdbd2cSJim Jagielski #else
445*b1cdbd2cSJim Jagielski         static_cast< std::size_t >(16),
446*b1cdbd2cSJim Jagielski #endif
447*b1cdbd2cSJim Jagielski         sizeof (test::codemaker::cppumaker::AlignmentDerivedStruct));
448*b1cdbd2cSJim Jagielski #endif
449*b1cdbd2cSJim Jagielski 
450*b1cdbd2cSJim Jagielski     com::sun::star::uno::Type t(
451*b1cdbd2cSJim Jagielski         cppu::UnoType< test::codemaker::cppumaker::BigStruct >::get());
452*b1cdbd2cSJim Jagielski     typelib_TypeDescription * td = NULL;
453*b1cdbd2cSJim Jagielski     t.getDescription(&td);
454*b1cdbd2cSJim Jagielski     typelib_typedescription_complete(&td);
455*b1cdbd2cSJim Jagielski     fprintf(stdout, "#### 1\n");
456*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(td != NULL);
457*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(typelib_TypeClass_STRUCT, td->eTypeClass);
458*b1cdbd2cSJim Jagielski     typelib_StructTypeDescription * std =
459*b1cdbd2cSJim Jagielski         reinterpret_cast< typelib_StructTypeDescription * >(td);
460*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(typelib_TypeClass_UNSIGNED_SHORT, std->aBase.ppTypeRefs[3]->eTypeClass); // unsigned short m4;
461*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(typelib_TypeClass_CHAR, std->aBase.ppTypeRefs[10]->eTypeClass); // char m11;
462*b1cdbd2cSJim Jagielski }
463*b1cdbd2cSJim Jagielski 
testPolyStruct()464*b1cdbd2cSJim Jagielski void Test::testPolyStruct() {
465*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
466*b1cdbd2cSJim Jagielski         rtl::OUString(
467*b1cdbd2cSJim Jagielski             RTL_CONSTASCII_USTRINGPARAM(
468*b1cdbd2cSJim Jagielski                 "test.codemaker.cppumaker.Struct<char,short>")),
469*b1cdbd2cSJim Jagielski         (com::sun::star::uno::makeAny(
470*b1cdbd2cSJim Jagielski             test::codemaker::cppumaker::Struct< sal_Unicode, sal_Int16 >()).
471*b1cdbd2cSJim Jagielski          getValueType().getTypeName()));
472*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
473*b1cdbd2cSJim Jagielski         (test::codemaker::cppumaker::make_Struct< sal_uInt32, sal_Bool >(5, 0).
474*b1cdbd2cSJim Jagielski          member1),
475*b1cdbd2cSJim Jagielski         static_cast< sal_uInt32 >(5));
476*b1cdbd2cSJim Jagielski }
477*b1cdbd2cSJim Jagielski 
478*b1cdbd2cSJim Jagielski namespace {
479*b1cdbd2cSJim Jagielski 
operator ==(test::codemaker::cppumaker::TestException1 const & e1,test::codemaker::cppumaker::TestException1 const & e2)480*b1cdbd2cSJim Jagielski bool operator ==(
481*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::TestException1 const & e1,
482*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::TestException1 const & e2)
483*b1cdbd2cSJim Jagielski {
484*b1cdbd2cSJim Jagielski     return e1.Message == e2.Message && e1.Context == e2.Context
485*b1cdbd2cSJim Jagielski         && e1.m1 == e2.m1 && e1.m2 == e2.m2 && e1.m3 == e2.m3
486*b1cdbd2cSJim Jagielski         && e1.m4.member1 == e2.m4.member1 && e1.m4.member2 == e2.m4.member2;
487*b1cdbd2cSJim Jagielski }
488*b1cdbd2cSJim Jagielski 
operator <<(std::ostream & out,com::sun::star::uno::Exception const &)489*b1cdbd2cSJim Jagielski std::ostream & operator <<(
490*b1cdbd2cSJim Jagielski     std::ostream & out, com::sun::star::uno::Exception const &)
491*b1cdbd2cSJim Jagielski {
492*b1cdbd2cSJim Jagielski     return out << "<UNO exception>";
493*b1cdbd2cSJim Jagielski }
494*b1cdbd2cSJim Jagielski 
495*b1cdbd2cSJim Jagielski }
496*b1cdbd2cSJim Jagielski 
testExceptions()497*b1cdbd2cSJim Jagielski void Test::testExceptions() {
498*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::TestException1 e11(
499*b1cdbd2cSJim Jagielski         rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("abc")), 0, 1,
500*b1cdbd2cSJim Jagielski         com::sun::star::uno::makeAny(123.0),
501*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::HelperEnum_ONE,
502*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::Struct<sal_Int32, sal_Int32>(5, 0), 2);
503*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::TestException1 e12(e11);
504*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(e11, e12);
505*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::TestException1 e13;
506*b1cdbd2cSJim Jagielski     e13 = e11;
507*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(e11, e13);
508*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::TestException2 e21(
509*b1cdbd2cSJim Jagielski         rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("abc")), 0, 1,
510*b1cdbd2cSJim Jagielski         com::sun::star::uno::makeAny(123.0),
511*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::HelperEnum_ONE,
512*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::Struct<sal_Int32, sal_Int32>(5, 0), 2);
513*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::TestException2 e22(e21);
514*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(e21, e22);
515*b1cdbd2cSJim Jagielski     test::codemaker::cppumaker::TestException2 e23;
516*b1cdbd2cSJim Jagielski     e23 = e21;
517*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(e21, e23);
518*b1cdbd2cSJim Jagielski }
519*b1cdbd2cSJim Jagielski 
testConstants()520*b1cdbd2cSJim Jagielski void Test::testConstants() {
521*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
522*b1cdbd2cSJim Jagielski         SAL_MIN_INT8, test::codemaker::cppumaker::Constants::byteMin);
523*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
524*b1cdbd2cSJim Jagielski         SAL_MAX_INT8, test::codemaker::cppumaker::Constants::byteMax);
525*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
526*b1cdbd2cSJim Jagielski         static_cast< sal_Int8 >(-1),
527*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::Constants::byteNeg);
528*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
529*b1cdbd2cSJim Jagielski         SAL_MIN_INT16, test::codemaker::cppumaker::Constants::shortMin);
530*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
531*b1cdbd2cSJim Jagielski         SAL_MAX_INT16, test::codemaker::cppumaker::Constants::shortMax);
532*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
533*b1cdbd2cSJim Jagielski         static_cast< sal_uInt16 >(0),
534*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::Constants::unsignedShortMin);
535*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
536*b1cdbd2cSJim Jagielski         SAL_MAX_UINT16,
537*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::Constants::unsignedShortMax);
538*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
539*b1cdbd2cSJim Jagielski         SAL_MIN_INT32, test::codemaker::cppumaker::Constants::longMin);
540*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
541*b1cdbd2cSJim Jagielski         SAL_MAX_INT32, test::codemaker::cppumaker::Constants::longMax);
542*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
543*b1cdbd2cSJim Jagielski         static_cast< sal_uInt32 >(0),
544*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::Constants::unsignedLongMin);
545*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
546*b1cdbd2cSJim Jagielski         SAL_MAX_UINT32, test::codemaker::cppumaker::Constants::unsignedLongMax);
547*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
548*b1cdbd2cSJim Jagielski         SAL_MIN_INT64, test::codemaker::cppumaker::Constants::hyperMin);
549*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
550*b1cdbd2cSJim Jagielski         SAL_MAX_INT64, test::codemaker::cppumaker::Constants::hyperMax);
551*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
552*b1cdbd2cSJim Jagielski         static_cast< sal_uInt64 >(0),
553*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::Constants::unsignedHyperMin);
554*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_EQUAL(
555*b1cdbd2cSJim Jagielski         SAL_MAX_UINT64,
556*b1cdbd2cSJim Jagielski         test::codemaker::cppumaker::Constants::unsignedHyperMax);
557*b1cdbd2cSJim Jagielski }
558*b1cdbd2cSJim Jagielski 
559*b1cdbd2cSJim Jagielski CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
560*b1cdbd2cSJim Jagielski 
561*b1cdbd2cSJim Jagielski }
562*b1cdbd2cSJim Jagielski 
563*b1cdbd2cSJim Jagielski NOADDITIONAL;
564