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 #include <stdio.h>
0035 #include <stdlib.h>
0036 #include <cgreen/cgreen.h>
0037 #include <ubf.h>
0038 #include <ndrstandard.h>
0039 #include <string.h>
0040 #include "test.fd.h"
0041 #include "ubfunit1.h"
0042
0043 void load_update_test_data(UBFH *p_ub)
0044 {
0045 short s = 88;
0046 long l = -1021;
0047 char c = 'c';
0048 float f = 17.31;
0049 double d = 12312.1111;
0050 char carr[] = "CARRAY1 TEST STRING DATA";
0051 BFLDLEN len = strlen(carr);
0052
0053
0054 assert_equal(Bchg(p_ub, T_SHORT_FLD, 0, (char *)&s, 0), EXSUCCEED);
0055 assert_equal(Bchg(p_ub, T_LONG_FLD, 0, (char *)&l, 0), EXSUCCEED);
0056 assert_equal(Bchg(p_ub, T_CHAR_FLD, 0, (char *)&c, 0), EXSUCCEED);
0057 assert_equal(Bchg(p_ub, T_FLOAT_FLD, 0, (char *)&f, 0), EXSUCCEED);
0058 assert_equal(Bchg(p_ub, T_DOUBLE_FLD, 0, (char *)&d, 0), EXSUCCEED);
0059 assert_equal(Bchg(p_ub, T_STRING_FLD, 0, (char *)"TEST STR VAL", 0), EXSUCCEED);
0060 assert_equal(Bchg(p_ub, T_CARRAY_FLD, 0, (char *)carr, len), EXSUCCEED);
0061
0062 gen_load_ubf(p_ub, 0, 1, 0);
0063 gen_load_view(p_ub, 0, 1, 0);
0064 gen_load_ptr(p_ub, 0, 1, 0);
0065
0066
0067
0068 s = 8;
0069 l = -21;
0070 c = '.';
0071 f = 1.31;
0072 d = 1231.1111;
0073 carr[0] = 'Y';
0074 len = strlen(carr);
0075
0076 assert_equal(Bchg(p_ub, T_SHORT_FLD, 5, (char *)&s, 0), EXSUCCEED);
0077 assert_equal(Bchg(p_ub, T_LONG_FLD, 5, (char *)&l, 0), EXSUCCEED);
0078 assert_equal(Bchg(p_ub, T_CHAR_FLD, 5, (char *)&c, 0), EXSUCCEED);
0079 assert_equal(Bchg(p_ub, T_FLOAT_FLD, 5, (char *)&f, 0), EXSUCCEED);
0080 assert_equal(Bchg(p_ub, T_DOUBLE_FLD, 5, (char *)&d, 0), EXSUCCEED);
0081 assert_equal(Bchg(p_ub, T_STRING_FLD, 5, (char *)"TEST STRING ARRAY2", 0), EXSUCCEED);
0082 assert_equal(Bchg(p_ub, T_CARRAY_FLD, 5, (char *)carr, len), EXSUCCEED);
0083
0084 gen_load_ubf(p_ub, 5, 2, 0);
0085 gen_load_view(p_ub, 5, 2, 0);
0086 gen_load_ptr(p_ub, 5, 2, 0);
0087
0088
0089 s = 212;
0090 l = 212;
0091 c = 'b';
0092 f = 12127;
0093 d = 1231232.1;
0094 carr[0] = 'X';
0095 assert_equal(Bchg(p_ub, T_SHORT_2_FLD, 8, (char *)&s, 0), EXSUCCEED);
0096 assert_equal(Bchg(p_ub, T_LONG_2_FLD, 8, (char *)&l, 0), EXSUCCEED);
0097 assert_equal(Bchg(p_ub, T_CHAR_2_FLD, 8, (char *)&c, 0), EXSUCCEED);
0098 assert_equal(Bchg(p_ub, T_FLOAT_2_FLD, 8, (char *)&f, 0), EXSUCCEED);
0099 assert_equal(Bchg(p_ub, T_DOUBLE_2_FLD, 8, (char *)&d, 0), EXSUCCEED);
0100 assert_equal(Bchg(p_ub, T_STRING_2_FLD, 8, (char *)"XTEST STR VAL", 0), EXSUCCEED);
0101 assert_equal(Bchg(p_ub, T_CARRAY_2_FLD, 8, (char *)carr, len), EXSUCCEED);
0102
0103 gen_load_ubf(p_ub, 8, 3, 1);
0104 gen_load_view(p_ub, 8, 3, 1);
0105 gen_load_ptr(p_ub, 8, 3, 1);
0106
0107 }
0108
0109 void test_update_data_1(UBFH *p_ub)
0110 {
0111 short s;
0112 long l;
0113 char c;
0114 float f;
0115 double d;
0116 char buf[100];
0117 BFLDLEN len;
0118 char carr[] = "CARRAY1 TEST STRING DATA";
0119
0120
0121
0122 assert_equal(Bget(p_ub, T_SHORT_FLD, 0, (char *)&s, 0), EXSUCCEED);
0123 assert_equal(s, 88);
0124 assert_equal(Bget(p_ub, T_LONG_FLD, 0, (char *)&l, 0), EXSUCCEED);
0125 assert_equal(l, -1021);
0126 assert_equal(Bget(p_ub, T_CHAR_FLD, 0, (char *)&c, 0), EXSUCCEED);
0127 assert_equal(c, 'c');
0128 assert_equal(Bget(p_ub, T_FLOAT_FLD, 0, (char *)&f, 0), EXSUCCEED);
0129 assert_double_equal(f, 17.31);
0130 assert_equal(Bget(p_ub, T_DOUBLE_FLD, 0, (char *)&d, 0), EXSUCCEED);
0131 assert_double_equal(d, 12312.1111);
0132 assert_equal(Bget(p_ub, T_STRING_FLD, 0, (char *)buf, 0), EXSUCCEED);
0133 assert_string_equal(buf, "TEST STR VAL");
0134
0135 len = sizeof(buf);
0136 assert_equal(Bget(p_ub, T_CARRAY_FLD, 0, (char *)buf, &len), EXSUCCEED);
0137 assert_equal(strncmp(buf, carr, strlen(carr)), 0);
0138
0139 gen_test_ubf(p_ub, 0, 1, 0);
0140 gen_test_view(p_ub, 0, 1, 0);
0141 gen_test_ptr(p_ub, 0, 1, 0);
0142
0143
0144
0145
0146 assert_equal(Bget(p_ub, T_SHORT_FLD, 5, (char *)&s, 0), EXSUCCEED);
0147 assert_equal(s, 8);
0148 assert_equal(Bget(p_ub, T_LONG_FLD, 5, (char *)&l, 0), EXSUCCEED);
0149 assert_equal(l, -21);
0150 assert_equal(Bget(p_ub, T_CHAR_FLD, 5, (char *)&c, 0), EXSUCCEED);
0151 assert_equal(c, '.');
0152 assert_equal(Bget(p_ub, T_FLOAT_FLD, 5, (char *)&f, 0), EXSUCCEED);
0153 assert_double_equal(f, 1.31);
0154 assert_equal(Bget(p_ub, T_DOUBLE_FLD, 5, (char *)&d, 0), EXSUCCEED);
0155 assert_double_equal(d, 1231.1111);
0156 assert_equal(Bget(p_ub, T_STRING_FLD, 5, (char *)buf, 0), EXSUCCEED);
0157 assert_string_equal(buf, "TEST STRING ARRAY2");
0158
0159 len = sizeof(buf);
0160 carr[0] = 'Y';
0161 assert_equal(Bget(p_ub, T_CARRAY_FLD, 5, (char *)buf, &len), EXSUCCEED);
0162 assert_equal(strncmp(buf, carr, strlen(carr)), 0);
0163
0164
0165 gen_test_ubf(p_ub, 5, 2, 0);
0166 gen_test_view(p_ub, 5, 2, 0);
0167 gen_test_ptr(p_ub, 5, 2, 0);
0168
0169
0170
0171
0172
0173 assert_equal(Bget(p_ub, T_SHORT_2_FLD, 8, (char *)&s, 0), EXSUCCEED);
0174 assert_equal(s, 212);
0175 assert_equal(Bget(p_ub, T_LONG_2_FLD, 8, (char *)&l, 0), EXSUCCEED);
0176 assert_equal(l, 212);
0177 assert_equal(Bget(p_ub, T_CHAR_2_FLD, 8, (char *)&c, 0), EXSUCCEED);
0178 assert_equal(c, 'b');
0179 assert_equal(Bget(p_ub, T_FLOAT_2_FLD, 8, (char *)&f, 0), EXSUCCEED);
0180 assert_double_equal(f, 12127);
0181 assert_equal(Bget(p_ub, T_DOUBLE_2_FLD, 8, (char *)&d, 0), EXSUCCEED);
0182 assert_double_equal(d, 1231232.1);
0183 assert_equal(Bget(p_ub, T_STRING_2_FLD, 8, (char *)buf, 0), EXSUCCEED);
0184 assert_string_equal(buf, "XTEST STR VAL");
0185
0186 len = sizeof(buf);
0187 carr[0] = 'X';
0188 assert_equal(Bget(p_ub, T_CARRAY_2_FLD, 8, (char *)buf, &len), EXSUCCEED);
0189 assert_equal(strncmp(buf, carr, strlen(carr)), 0);
0190
0191 gen_test_ubf(p_ub, 8, 3, 1);
0192 gen_test_view(p_ub, 8, 3, 1);
0193 gen_test_ptr(p_ub, 8, 3, 1);
0194
0195 }
0196
0197
0198
0199
0200
0201 void load_update_test_data_2(UBFH *p_ub)
0202 {
0203 short s = 881;
0204 long l = -10211;
0205 char c = '1';
0206 float f = 117.31;
0207 double d = 112312.1111;
0208 char carr[] = "CARRAY1 TEST STRING DATA1 --- SOME --- LONG - STUFF";
0209 BFLDLEN len = strlen(carr);
0210
0211
0212 assert_equal(Bchg(p_ub, T_SHORT_FLD, 0, (char *)&s, 0), EXSUCCEED);
0213 assert_equal(Bchg(p_ub, T_LONG_FLD, 0, (char *)&l, 0), EXSUCCEED);
0214 assert_equal(Bchg(p_ub, T_CHAR_FLD, 0, (char *)&c, 0), EXSUCCEED);
0215 assert_equal(Bchg(p_ub, T_FLOAT_FLD, 0, (char *)&f, 0), EXSUCCEED);
0216 assert_equal(Bchg(p_ub, T_DOUBLE_FLD, 0, (char *)&d, 0), EXSUCCEED);
0217 assert_equal(Bchg(p_ub, T_STRING_FLD, 0, (char *)"TEST STR VAL1M THIS IS LOGN STRING", 0), EXSUCCEED);
0218 assert_equal(Bchg(p_ub, T_CARRAY_FLD, 0, (char *)carr, len), EXSUCCEED);
0219
0220
0221 gen_load_ubf(p_ub, 0, 4, 0);
0222 gen_load_view(p_ub, 0, 4, 0);
0223 gen_load_ptr(p_ub, 0, 4, 0);
0224
0225
0226
0227
0228 s = 81;
0229 l = -211;
0230 c = '.';
0231 f = 11.31;
0232 d = 11231.1111;
0233 carr[0] = '2';
0234 len = strlen(carr);
0235
0236 assert_equal(Bchg(p_ub, T_SHORT_FLD, 6, (char *)&s, 0), EXSUCCEED);
0237 assert_equal(Bchg(p_ub, T_LONG_FLD, 6, (char *)&l, 0), EXSUCCEED);
0238 assert_equal(Bchg(p_ub, T_CHAR_FLD, 6, (char *)&c, 0), EXSUCCEED);
0239 assert_equal(Bchg(p_ub, T_FLOAT_FLD, 6, (char *)&f, 0), EXSUCCEED);
0240 assert_equal(Bchg(p_ub, T_DOUBLE_FLD, 6, (char *)&d, 0), EXSUCCEED);
0241 assert_equal(Bchg(p_ub, T_STRING_FLD, 6, (char *)"3EST STRING ARRAY2 THIS IS EVEN MORE LONGER", 0), EXSUCCEED);
0242 assert_equal(Bchg(p_ub, T_CARRAY_FLD, 6, (char *)carr, len), EXSUCCEED);
0243
0244 gen_load_ubf(p_ub, 6, 5, 0);
0245 gen_load_view(p_ub, 6, 5, 0);
0246 gen_load_ptr(p_ub, 6, 5, 0);
0247
0248
0249
0250 s = 2121;
0251 l = 2121;
0252 c = 'c';
0253 f = 1227;
0254 d = 1232.1;
0255 carr[0] = 'G';
0256 assert_equal(Bchg(p_ub, T_SHORT_2_FLD, 1, (char *)&s, 0), EXSUCCEED);
0257 assert_equal(Bchg(p_ub, T_LONG_2_FLD, 1, (char *)&l, 0), EXSUCCEED);
0258 assert_equal(Bchg(p_ub, T_CHAR_2_FLD, 1, (char *)&c, 0), EXSUCCEED);
0259 assert_equal(Bchg(p_ub, T_FLOAT_2_FLD, 1, (char *)&f, 0), EXSUCCEED);
0260 assert_equal(Bchg(p_ub, T_DOUBLE_2_FLD, 1, (char *)&d, 0), EXSUCCEED);
0261 assert_equal(Bchg(p_ub, T_STRING_2_FLD, 1, (char *)"XTEST STR VAL", 0), EXSUCCEED);
0262 assert_equal(Bchg(p_ub, T_CARRAY_2_FLD, 1, (char *)carr, len), EXSUCCEED);
0263
0264
0265 gen_load_ubf(p_ub, 1, 6, 1);
0266 gen_load_view(p_ub, 1, 6, 1);
0267 gen_load_ptr(p_ub, 1, 6, 1);
0268 }
0269
0270 void test_update_data_2(UBFH *p_ub)
0271 {
0272 short s;
0273 long l;
0274 char c;
0275 float f;
0276 double d;
0277 char buf[100];
0278 BFLDLEN len;
0279 char carr[] = "CARRAY1 TEST STRING DATA1 --- SOME --- LONG - STUFF";
0280
0281
0282
0283 assert_equal(Bget(p_ub, T_SHORT_FLD, 0, (char *)&s, 0), EXSUCCEED);
0284 assert_equal(s, 881);
0285 assert_equal(Bget(p_ub, T_LONG_FLD, 0, (char *)&l, 0), EXSUCCEED);
0286 assert_equal(l, -10211);
0287 assert_equal(Bget(p_ub, T_CHAR_FLD, 0, (char *)&c, 0), EXSUCCEED);
0288 assert_equal(c, '1');
0289 assert_equal(Bget(p_ub, T_FLOAT_FLD, 0, (char *)&f, 0), EXSUCCEED);
0290 assert_double_equal(f, 117.31);
0291 assert_equal(Bget(p_ub, T_DOUBLE_FLD, 0, (char *)&d, 0), EXSUCCEED);
0292 assert_double_equal(d, 112312.1111);
0293 assert_equal(Bget(p_ub, T_STRING_FLD, 0, (char *)buf, 0), EXSUCCEED);
0294 assert_string_equal(buf, "TEST STR VAL1M THIS IS LOGN STRING");
0295
0296 len = sizeof(buf);
0297 assert_equal(Bget(p_ub, T_CARRAY_FLD, 0, (char *)buf, &len), EXSUCCEED);
0298 assert_equal(strncmp(buf, carr, strlen(carr)), 0);
0299
0300 gen_test_ubf(p_ub, 0, 4, 0);
0301 gen_test_view(p_ub, 0, 4, 0);
0302 gen_test_ptr(p_ub, 0, 4, 0);
0303
0304
0305
0306 assert_equal(Bget(p_ub, T_SHORT_FLD, 6, (char *)&s, 0), EXSUCCEED);
0307 assert_equal(s, 81);
0308 assert_equal(Bget(p_ub, T_LONG_FLD, 6, (char *)&l, 0), EXSUCCEED);
0309 assert_equal(l, -211);
0310 assert_equal(Bget(p_ub, T_CHAR_FLD, 6, (char *)&c, 0), EXSUCCEED);
0311 assert_equal(c, '.');
0312 assert_equal(Bget(p_ub, T_FLOAT_FLD, 6, (char *)&f, 0), EXSUCCEED);
0313 assert_double_equal(f, 11.31);
0314 assert_equal(Bget(p_ub, T_DOUBLE_FLD, 6, (char *)&d, 0), EXSUCCEED);
0315 assert_double_equal(d, 11231.1111);
0316 assert_equal(Bget(p_ub, T_STRING_FLD, 6, (char *)buf, 0), EXSUCCEED);
0317 assert_string_equal(buf, "3EST STRING ARRAY2 THIS IS EVEN MORE LONGER");
0318
0319 len = sizeof(buf);
0320 carr[0] = '2';
0321 assert_equal(Bget(p_ub, T_CARRAY_FLD, 6, (char *)buf, &len), EXSUCCEED);
0322 assert_equal(strncmp(buf, carr, strlen(carr)), 0);
0323
0324 gen_test_ubf(p_ub, 6, 5, 0);
0325 gen_test_view(p_ub, 6, 5, 0);
0326 gen_test_ptr(p_ub, 6, 5, 0);
0327
0328
0329
0330
0331 assert_equal(Bget(p_ub, T_SHORT_2_FLD, 1, (char *)&s, 0), EXSUCCEED);
0332 assert_equal(s, 2121);
0333 assert_equal(Bget(p_ub, T_LONG_2_FLD, 1, (char *)&l, 0), EXSUCCEED);
0334 assert_equal(l, 2121);
0335 assert_equal(Bget(p_ub, T_CHAR_2_FLD, 1, (char *)&c, 0), EXSUCCEED);
0336 assert_equal(c, 'c');
0337 assert_equal(Bget(p_ub, T_FLOAT_2_FLD, 1, (char *)&f, 0), EXSUCCEED);
0338 assert_double_equal(f, 1227);
0339 assert_equal(Bget(p_ub, T_DOUBLE_2_FLD, 1, (char *)&d, 0), EXSUCCEED);
0340 assert_double_equal(d, 1232.1);
0341 assert_equal(Bget(p_ub, T_STRING_2_FLD, 1, (char *)buf, 0), EXSUCCEED);
0342 assert_string_equal(buf, "XTEST STR VAL");
0343
0344 len = sizeof(buf);
0345 carr[0] = 'G';
0346 assert_equal(Bget(p_ub, T_CARRAY_2_FLD, 1, (char *)buf, &len), EXSUCCEED);
0347 assert_equal(strncmp(buf, carr, strlen(carr)), 0);
0348
0349 gen_test_ubf(p_ub, 1, 6, 1);
0350 gen_test_view(p_ub, 1, 6, 1);
0351 gen_test_ptr(p_ub, 1, 6, 1);
0352 }
0353
0354
0355
0356
0357
0358 Ensure(test_fupdate)
0359 {
0360 char fb[9000];
0361 UBFH *p_ub = (UBFH *)fb;
0362
0363 char fb2[9000];
0364 UBFH *p_ub2 = (UBFH *)fb2;
0365
0366 assert_equal(Binit(p_ub, sizeof(fb)), EXSUCCEED);
0367 assert_equal(Binit(p_ub2, sizeof(fb2)), EXSUCCEED);
0368
0369 load_update_test_data(p_ub);
0370
0371 assert_equal(Bupdate(p_ub2, p_ub), EXSUCCEED);
0372 assert_equal(Bcmp(p_ub2, p_ub), 0);
0373
0374 assert_equal(Bcmp(p_ub2, p_ub), 0);
0375 test_update_data_1(p_ub2);
0376
0377 assert_equal(Binit(p_ub2, sizeof(fb2)), EXSUCCEED);
0378 load_update_test_data_2(p_ub2);
0379 test_update_data_2(p_ub2);
0380 assert_equal(Bupdate(p_ub2, p_ub), EXSUCCEED);
0381 test_update_data_1(p_ub2);
0382 }
0383
0384 TestSuite *ubf_fupdate_tests(void)
0385 {
0386 TestSuite *suite = create_test_suite();
0387
0388 add_test(suite, test_fupdate);
0389
0390 return suite;
0391 }
0392
0393