0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035 #include <stdio.h>
0036 #include <stdlib.h>
0037 #include <unistd.h>
0038 #include <cgreen/cgreen.h>
0039 #include <ubf.h>
0040 #include <ndrstandard.h>
0041 #include <string.h>
0042 #include "test.fd.h"
0043 #include "ndebug.h"
0044 #include <fdatatype.h>
0045
0046 #include "test040.h"
0047
0048
0049
0050
0051 exprivate void basic_setup(void)
0052 {
0053
0054 }
0055
0056 exprivate void basic_teardown(void)
0057 {
0058
0059 }
0060
0061
0062
0063
0064 Ensure(test_Bvsizeof)
0065 {
0066 struct MYVIEW1 v;
0067 struct MYVIEW3 v3;
0068
0069 assert_equal(Bvsizeof("MYVIEW1"), sizeof(v));
0070 assert_equal(Bvsizeof("MYVIEW3"), sizeof(v3));
0071 }
0072
0073
0074
0075
0076
0077 Ensure(test_Bvoccur)
0078 {
0079 struct MYVIEW1 v;
0080 BFLDOCC maxocc;
0081 BFLDOCC realocc;
0082 long dim_size;
0083 int fldtype;
0084
0085 init_MYVIEW1(&v);
0086
0087 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tshort1", &maxocc, &realocc, &dim_size, &fldtype), 1);
0088 assert_equal(maxocc, 1);
0089 assert_equal(realocc, 1);
0090 assert_equal(dim_size, sizeof(short));
0091 assert_equal(fldtype, BFLD_SHORT);
0092
0093 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tshort2", &maxocc, &realocc, &dim_size, NULL), 2);
0094 assert_equal(maxocc, 2);
0095 assert_equal(realocc, 2);
0096
0097 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tshort3", &maxocc, &realocc, &dim_size, NULL), 2);
0098 assert_equal(maxocc, 3);
0099 assert_equal(realocc, 2);
0100
0101
0102 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tshort4", NULL, NULL, NULL, NULL), 1);
0103
0104 v.tint2[1] = 0;
0105 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tint2", &maxocc, &realocc, &dim_size, &fldtype), 2);
0106 assert_equal(maxocc, 2);
0107 assert_equal(realocc, 1);
0108 assert_equal(dim_size, sizeof(int));
0109 assert_equal(fldtype, BFLD_INT);
0110
0111 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tchar2", &maxocc, &realocc, &dim_size, &fldtype), 5);
0112 assert_equal(maxocc, 5);
0113 assert_equal(realocc, 5);
0114 assert_equal(fldtype, BFLD_CHAR);
0115
0116
0117 v.tchar2[4]='A';
0118 v.tchar2[3]='A';
0119
0120 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tchar2", &maxocc, &realocc, &dim_size, NULL), 5);
0121 assert_equal(maxocc, 5);
0122 assert_equal(realocc, 3);
0123
0124
0125 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tchar3", &maxocc, &realocc, &dim_size, NULL), 0);
0126 assert_equal(maxocc, 2);
0127 assert_equal(realocc, 0);
0128
0129
0130 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tfloat1", &maxocc, &realocc, &dim_size, &fldtype), 4);
0131 assert_equal(maxocc, 4);
0132 assert_equal(realocc, 4);
0133 assert_equal(dim_size, sizeof(float));
0134 assert_equal(fldtype, BFLD_FLOAT);
0135
0136 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tstring0", &maxocc, &realocc, &dim_size, &fldtype), 3);
0137 assert_equal(maxocc, 3);
0138 assert_equal(realocc, 3);
0139 assert_equal(dim_size, 18);
0140 assert_equal(fldtype, BFLD_STRING);
0141
0142 assert_equal(Bvoccur((char *)&v, "MYVIEW1", "tstring2", &maxocc, &realocc, &dim_size, &fldtype), 2);
0143 assert_equal(maxocc, 3);
0144 assert_equal(realocc, 2);
0145 assert_equal(fldtype, BFLD_STRING);
0146
0147 }
0148
0149
0150
0151
0152
0153 Ensure(test_Bvsetoccur)
0154 {
0155 struct MYVIEW1 v;
0156 BFLDOCC maxocc;
0157 memset(&v, 0, sizeof(v));
0158
0159 assert_equal(Bvsetoccur((char *)&v, "MYVIEW1", "tshort2", 0), 0);
0160 assert_equal(v.C_tshort2, 0);
0161
0162 assert_equal(Bvsetoccur((char *)&v, "MYVIEW1", "tshort2", 1), 0);
0163 assert_equal(v.C_tshort2, 1);
0164
0165 assert_equal(Bvsetoccur((char *)&v, "MYVIEW1", "tshort2", 2), 0);
0166 assert_equal(v.C_tshort2, 2);
0167
0168 assert_equal(Bvsetoccur((char *)&v, "MYVIEW1", "tshort2", 3), -1);
0169 assert_equal(Berror, BEINVAL);
0170
0171 }
0172
0173
0174 Ensure(test_Bvnext)
0175 {
0176 struct MYVIEW1 v;
0177 Bvnext_state_t state;
0178 char cname[NDRX_VIEW_CNAME_LEN+1];
0179 int fldtype=99;
0180 BFLDOCC maxocc;
0181 long dim_size;
0182
0183 init_MYVIEW1(&v);
0184
0185 assert_equal(Bvnext (&state, "MYVIEW1", cname, &fldtype, &maxocc, &dim_size), 1);
0186 assert_string_equal(cname, "tshort1");
0187 assert_equal(fldtype, 0);
0188 assert_equal(maxocc, 1);
0189 assert_equal(dim_size, sizeof(short));
0190
0191
0192 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0193 assert_string_equal(cname, "tshort2");
0194 assert_equal(fldtype, BFLD_SHORT);
0195
0196 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0197 assert_string_equal(cname, "tshort3");
0198 assert_equal(fldtype, BFLD_SHORT);
0199
0200 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0201 assert_string_equal(cname, "tshort4");
0202 assert_equal(fldtype, BFLD_SHORT);
0203
0204 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0205 assert_string_equal(cname, "tlong1");
0206 assert_equal(fldtype, BFLD_LONG);
0207
0208 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0209 assert_string_equal(cname, "tint2");
0210 assert_equal(fldtype, BFLD_INT);
0211
0212 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0213 assert_string_equal(cname, "tint3");
0214 assert_equal(fldtype, BFLD_INT);
0215
0216 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0217 assert_string_equal(cname, "tint4");
0218 assert_equal(fldtype, BFLD_INT);
0219 assert_equal(maxocc, 2);
0220 assert_equal(dim_size, sizeof(int));
0221
0222 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0223 assert_string_equal(cname, "tchar1");
0224 assert_equal(fldtype, BFLD_CHAR);
0225
0226
0227 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0228 assert_string_equal(cname, "tchar2");
0229 assert_equal(fldtype, BFLD_CHAR);
0230
0231 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0232 assert_string_equal(cname, "tchar3");
0233 assert_equal(fldtype, BFLD_CHAR);
0234
0235 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0236 assert_string_equal(cname, "tfloat1");
0237 assert_equal(fldtype, BFLD_FLOAT);
0238
0239 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0240 assert_string_equal(cname, "tfloat2");
0241 assert_equal(fldtype, BFLD_FLOAT);
0242
0243 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0244 assert_string_equal(cname, "tfloat3");
0245 assert_equal(fldtype, BFLD_FLOAT);
0246
0247 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0248 assert_string_equal(cname, "tdouble1");
0249 assert_equal(fldtype, BFLD_DOUBLE);
0250
0251 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0252 assert_string_equal(cname, "tdouble2");
0253 assert_equal(fldtype, BFLD_DOUBLE);
0254
0255 assert_equal(Bvnext (&state, NULL, cname, NULL, NULL, NULL), 1);
0256 assert_string_equal(cname, "tstring0");
0257
0258 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0259 assert_string_equal(cname, "tstring1");
0260 assert_equal(fldtype, BFLD_STRING);
0261
0262 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0263 assert_string_equal(cname, "tstring2");
0264 assert_equal(fldtype, BFLD_STRING);
0265
0266 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0267 assert_string_equal(cname, "tstring3");
0268 assert_equal(fldtype, BFLD_STRING);
0269
0270 assert_equal(maxocc, 4);
0271 assert_equal(dim_size, 20);
0272
0273
0274 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0275 assert_string_equal(cname, "tstring4");
0276 assert_equal(fldtype, BFLD_STRING);
0277
0278 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0279 assert_string_equal(cname, "tstring5");
0280 assert_equal(fldtype, BFLD_STRING);
0281
0282 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0283 assert_string_equal(cname, "tcarray1");
0284 assert_equal(fldtype, BFLD_CARRAY);
0285
0286 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0287 assert_string_equal(cname, "tcarray2");
0288 assert_equal(fldtype, BFLD_CARRAY);
0289
0290 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0291 assert_string_equal(cname, "tcarray3");
0292 assert_equal(fldtype, BFLD_CARRAY);
0293
0294 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0295 assert_string_equal(cname, "tcarray4");
0296 assert_equal(fldtype, BFLD_CARRAY);
0297
0298 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 1);
0299 assert_string_equal(cname, "tcarray5");
0300 assert_equal(fldtype, BFLD_CARRAY);
0301
0302 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 0);
0303
0304
0305
0306 assert_equal(Bvnext (NULL, NULL, cname, &fldtype, &maxocc, &dim_size), -1);
0307 assert_equal(Berror, BEINVAL);
0308
0309
0310 state.v = NULL;
0311 state.vel = NULL;
0312 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), -1);
0313 assert_equal(Berror, BEINVAL);
0314
0315
0316 state.v = (char *)0x1;
0317 state.vel = NULL;
0318 assert_equal(Bvnext (&state, NULL, cname, &fldtype, &maxocc, &dim_size), 0);
0319
0320
0321 }
0322
0323 Ensure(test_Bvcpy)
0324 {
0325 struct MYVIEW1 src;
0326 struct MYVIEW1 dst;
0327 init_MYVIEW1(&src);
0328
0329 memset(&dst, 0, sizeof(dst));
0330 assert_equal(Bvcpy ((char *)&dst, (char *)&src, "MYVIEW1"), sizeof(struct MYVIEW1));
0331 assert_equal(memcmp(&dst, &src, sizeof(struct MYVIEW1)), 0);
0332
0333 }
0334
0335
0336
0337
0338 TestSuite *vacc_util_tests(void)
0339 {
0340 TestSuite *suite = create_test_suite();
0341
0342 set_setup(suite, basic_setup);
0343 set_teardown(suite, basic_teardown);
0344
0345
0346 add_test(suite, test_Bvsizeof);
0347 add_test(suite, test_Bvoccur);
0348 add_test(suite, test_Bvsetoccur);
0349 add_test(suite, test_Bvnext);
0350 add_test(suite, test_Bvcpy);
0351
0352 return suite;
0353 }
0354