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 <string.h>
0035 #include <stdio.h>
0036 #include <stdlib.h>
0037 #include <memory.h>
0038 #include <math.h>
0039
0040 #include <atmi.h>
0041 #include <ubf.h>
0042 #include <ndebug.h>
0043 #include <test.fd.h>
0044 #include <ndrstandard.h>
0045 #include <nstopwatch.h>
0046 #include <fcntl.h>
0047 #include <unistd.h>
0048 #include <nstdutil.h>
0049 #include <ubfutil.h>
0050 #include "test48.h"
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065 int main(int argc, char** argv)
0066 {
0067
0068 UBFH *p_ub = (UBFH *)tpalloc("UBF", NULL, 56000);
0069 long rsplen;
0070 short i;
0071 short i_res, i_res_prev = EXFAIL;
0072 int ret=EXSUCCEED;
0073 char testbuf[1024];
0074 char tstamp[TSTAMP_BUFSZ];
0075 char tstamp_prev[TSTAMP_BUFSZ];
0076 BFLDID emtpy [] = {BBADFLDID};
0077
0078 for (i=0; i<200; i++)
0079 {
0080 if (EXSUCCEED!=Bproj(p_ub, emtpy))
0081 {
0082 NDRX_LOG(log_debug, "Failed to reset buffer: %s", Bstrerror(Berror));
0083 ret=EXFAIL;
0084 goto out;
0085 }
0086
0087 if (EXFAIL==CBchg(p_ub, T_STRING_FLD, 0, VALUE_EXPECTED, 0, BFLD_STRING))
0088 {
0089 NDRX_LOG(log_debug, "Failed to set T_STRING_FLD[0]: %s", Bstrerror(Berror));
0090 ret=EXFAIL;
0091 goto out;
0092 }
0093
0094 if (EXFAIL==CBchg(p_ub, T_STRING_3_FLD, 0, "HELLO", 0, BFLD_STRING))
0095 {
0096 NDRX_LOG(log_debug, "Failed to set T_STRING_3_FLD[0]: %s", Bstrerror(Berror));
0097 ret=EXFAIL;
0098 goto out;
0099 }
0100
0101 i_res = i / 5;
0102
0103 if (EXFAIL==CBchg(p_ub, T_STRING_2_FLD, 1, (char *)&i_res, 0, BFLD_SHORT))
0104 {
0105 NDRX_LOG(log_debug, "Failed to set T_STRING_2_FLD[1]: %s", Bstrerror(Berror));
0106 ret=EXFAIL;
0107 goto out;
0108 }
0109
0110 if (EXFAIL==CBchg(p_ub, T_LONG_FLD, 0, "4", 0, BFLD_STRING))
0111 {
0112 NDRX_LOG(log_debug, "Failed to set T_LONG_FLD[0]: %s", Bstrerror(Berror));
0113 ret=EXFAIL;
0114 goto out;
0115 }
0116
0117 if (EXFAIL==CBchg(p_ub, T_SHORT_FLD, 0, "3", 0, BFLD_STRING))
0118 {
0119 NDRX_LOG(log_debug, "Failed to set T_SHORT_FLD[0]: %s", Bstrerror(Berror));
0120 ret=EXFAIL;
0121 goto out;
0122 }
0123
0124 if (EXFAIL == tpcall("TESTSV01", (char *)p_ub, 0L, (char **)&p_ub, &rsplen,0))
0125 {
0126 NDRX_LOG(log_error, "TESTSV01 failed: %s", tpstrerror(tperrno));
0127 ret=EXFAIL;
0128 goto out;
0129 }
0130
0131
0132
0133 ndrx_debug_dump_UBF(log_debug, "Got data from service", p_ub);
0134
0135
0136
0137
0138 if (EXFAIL==Bget(p_ub, T_STRING_FLD, 1, testbuf, 0))
0139 {
0140 NDRX_LOG(log_error, "TESTERROR: Failed to get T_STRING_FLD: %s",
0141 Bstrerror(Berror));
0142 ret=EXFAIL;
0143 goto out;
0144 }
0145
0146 if (0!=strcmp(testbuf, VALUE_EXPECTED_RET))
0147 {
0148 NDRX_LOG(log_error, "TESTERROR: Expected: [%s] got [%s]",
0149 VALUE_EXPECTED_RET, testbuf);
0150 ret=EXFAIL;
0151 goto out;
0152 }
0153
0154 if (EXFAIL==Bget(p_ub, T_STRING_5_FLD, 0, tstamp, 0))
0155 {
0156 NDRX_LOG(log_error, "TESTERROR: Failed to get T_STRING_5_FLD - tstamp: %s",
0157 Bstrerror(Berror));
0158 ret=EXFAIL;
0159 goto out;
0160 }
0161
0162 if (EXFAIL==i_res_prev)
0163 {
0164
0165 i_res_prev = i_res;
0166 NDRX_STRCPY_SAFE(tstamp_prev, tstamp);
0167 }
0168 else if (i_res_prev != i_res)
0169 {
0170 NDRX_STRCPY_SAFE(tstamp_prev, tstamp);
0171 i_res_prev = i_res;
0172 }
0173 else
0174 {
0175
0176
0177 if (0!=strcmp(tstamp, tstamp_prev))
0178 {
0179 NDRX_LOG(log_error, "TESTERROR ! i_res = %d, tstamp [%d] != tstamp_prev [%d]",
0180 tstamp, tstamp_prev);
0181 EXFAIL_OUT(ret);
0182 }
0183 }
0184 }
0185
0186 out:
0187 tpterm();
0188 fprintf(stderr, "Exit with %d\n", ret);
0189
0190 return ret;
0191 }
0192