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 "test68.h"
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061 int main(int argc, char** argv)
0062 {
0063 UBFH *p_ub = (UBFH *)tpalloc("UBF", NULL, 56000);
0064 long rsplen;
0065 int i;
0066 int ret=EXSUCCEED;
0067 int cd;
0068 long revent;
0069 TPCONTEXT_T ctx = NULL;
0070
0071 if (argc<2)
0072 {
0073 fprintf(stderr, "Usage: %s call|fail|conv\n", argv[0]);
0074 EXFAIL_OUT(ret);
0075 }
0076
0077 tpinit(NULL);
0078
0079 if (0==strcmp(argv[1], "call"))
0080 {
0081 if (EXFAIL==CBchg(p_ub, T_STRING_FLD, 0, VALUE_EXPECTED, 0, BFLD_STRING))
0082 {
0083 NDRX_LOG(log_debug, "Failed to set T_STRING_FLD[0]: %s", Bstrerror(Berror));
0084 ret=EXFAIL;
0085 goto out;
0086 }
0087
0088 for (i=0; i<100; i++)
0089 {
0090 if (EXFAIL == tpcall("TESTSV", (char *)p_ub, 0L, (char **)&p_ub, &rsplen,0))
0091 {
0092 NDRX_LOG(log_error, "TESTSV failed: %s", tpstrerror(tperrno));
0093 ret=EXFAIL;
0094 goto out;
0095 }
0096 }
0097 }
0098 else if (0==strcmp(argv[1], "fail"))
0099 {
0100 if (EXFAIL == tpcall("FAILSV", (char *)p_ub, 0L, (char **)&p_ub, &rsplen,0))
0101 {
0102 NDRX_LOG(log_error, "FAILSV failed: %s", tpstrerror(tperrno));
0103 ret=EXFAIL;
0104 goto out;
0105 }
0106 }
0107 else if (0==strcmp(argv[1], "conv"))
0108 {
0109
0110 tpgetctxt(&ctx, 0L);
0111
0112
0113
0114 tpnewctxt(EXTRUE, EXTRUE);
0115
0116
0117 tpinit(NULL);
0118
0119 if (EXFAIL == (cd=tpconnect("CONVSV", (char *)p_ub, 0L, TPRECVONLY)))
0120 {
0121 NDRX_LOG(log_error, "FAILSV failed: %s", tpstrerror(tperrno));
0122 ret=EXFAIL;
0123 goto out;
0124 }
0125
0126 if (EXFAIL==tprecv(cd, (char **)&p_ub, &rsplen, 0, &revent))
0127 {
0128 NDRX_LOG(log_error, "Failed to recv: %s", tpstrerror(tperrno));
0129 ret=EXFAIL;
0130 goto out;
0131 }
0132
0133 }
0134 else
0135 {
0136 NDRX_LOG(log_error, "TESTERROR! invalid command [%s]", argv[1]);
0137 }
0138
0139 out:
0140
0141 tpterm();
0142
0143 if (NULL!=ctx)
0144 {
0145 tpsetctxt(ctx, 0L);
0146 tpterm();
0147 tpfreectxt(ctx);
0148 }
0149 fprintf(stderr, "Exit with %d\n", ret);
0150
0151 return ret;
0152 }
0153
0154