summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--testprogs/win32/midltests/midltests.idl251
1 files changed, 3 insertions, 248 deletions
diff --git a/testprogs/win32/midltests/midltests.idl b/testprogs/win32/midltests/midltests.idl
index 26ef9397ca..0c0bbf8d3d 100644
--- a/testprogs/win32/midltests/midltests.idl
+++ b/testprogs/win32/midltests/midltests.idl
@@ -22,7 +22,7 @@ cpp_quote("#define CONNECT_IP \"172.31.9.1\"")
* For testing it might be needed to allow downgrades
* to NDR32. This is needed when you use 'pipe'.
*/
-cpp_quote("#define DONOT_FORCE_NDR64 1")
+//cpp_quote("#define DONOT_FORCE_NDR64 1")
[
uuid("225b9fcb-eb3d-497b-8b0b-591f049a2507"),
@@ -30,267 +30,22 @@ cpp_quote("#define DONOT_FORCE_NDR64 1")
]
interface midltests
{
- typedef pipe char pipe_char;
- typedef pipe hyper pipe_hyper;
- typedef struct {
- long l;
- short s;
- } structtype;
- typedef pipe structtype pipe_structtype;
-
- struct msg {
- long l;
- [size_is(l)] char *m;
- };
-
long midltests_fn(
- [out,ref] struct msg *out1,
- [out] pipe_structtype outp,
- [in] pipe_structtype inp,
- [in] struct msg in1
);
-
- long midltests_ping( [in] struct msg in1);
-
}
#elif MIDLTESTS_C_CODE
-struct pipe_char_state {
- const char *name;
- unsigned long count;
- unsigned long sleep;
-};
-
-void pipe_char_pull(
- char * _state,
- unsigned char * buf,
- unsigned long esize,
- unsigned long * ecount)
-{
- struct pipe_char_state *state = (struct pipe_char_state *)_state;
-
- printf("pull1:%s: esize[%u] ecount[%u]\n",
- state->name, esize, *ecount);
- *ecount = state->count--;
- if (*ecount > esize) {
- *ecount = esize;
- }
- memset(buf, 0xDD, *ecount * sizeof(*buf));
- printf("pull2:%s: esize[%u] ecount[%u]\n",
- state->name, esize, *ecount);
-}
-
-void pipe_char_push(
- char * _state,
- unsigned char * buf,
- unsigned long ecount)
-{
- struct pipe_char_state *state = (struct pipe_char_state *)_state;
-
- printf("push:%s: ecount[%u]\n",
- state->name, ecount);
-}
-
-void pipe_char_alloc(
- char * _state,
- unsigned long bsize,
- unsigned char * * buf,
- unsigned long * bcount)
-{
- struct pipe_char_state *state = (struct pipe_char_state *)_state;
-
- printf("alloc1:%s: bsize[%u], bcount[%u]\n",
- state->name, bsize, *bcount);
- *bcount = bsize / sizeof(**buf);
- *buf = malloc(*bcount * sizeof(**buf));
- printf("alloc2:%s: bsize[%u], bcount[%u]\n",
- state->name, bsize, *bcount);
-}
-
-struct pipe_hyper_state {
- const char *name;
- unsigned long count;
- unsigned long sleep;
-};
-
-void pipe_hyper_pull(
- char * _state,
- hyper * buf,
- unsigned long esize,
- unsigned long * ecount)
-{
- struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state;
-
- printf("pull1:%s: esize[%u] ecount[%u]\n",
- state->name, esize, *ecount);
- *ecount = state->count--;
- if (*ecount > esize) {
- *ecount = esize;
- }
- memset(buf, 0xDD, *ecount * sizeof(*buf));
- printf("pull2:%s: esize[%u] ecount[%u]\n",
- state->name, esize, *ecount);
-}
-
-void pipe_hyper_push(
- char * _state,
- hyper * buf,
- unsigned long ecount)
-{
- struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state;
-
- printf("push:%s: ecount[%u]\n",
- state->name, ecount);
-}
-
-void pipe_hyper_alloc(
- char * _state,
- unsigned long bsize,
- hyper * * buf,
- unsigned long * bcount)
-{
- struct pipe_hyper_state *state = (struct pipe_hyper_state *)_state;
-
- printf("alloc1:%s: bsize[%u], bcount[%u]\n",
- state->name, bsize, *bcount);
- *bcount = bsize / sizeof(**buf);
- *buf = malloc(*bcount * sizeof(**buf));
- printf("alloc2:%s: bsize[%u], bcount[%u]\n",
- state->name, bsize, *bcount);
-}
-struct pipe_structtype_state {
- const char *name;
- unsigned long count;
- unsigned long sleep;
-};
-
-void pipe_structtype_pull(
- char * _state,
- structtype * buf,
- unsigned long esize,
- unsigned long * ecount)
-{
- struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state;
-
- printf("pull1:%s: esize[%u] ecount[%u]\n",
- state->name, esize, *ecount);
- *ecount = state->count--;
- if (*ecount > esize) {
- *ecount = esize;
- }
- memset(buf, 0xDD, *ecount * sizeof(*buf));
- printf("pull2:%s: esize[%u] ecount[%u]\n",
- state->name, esize, *ecount);
-}
-
-void pipe_structtype_push(
- char * _state,
- structtype * buf,
- unsigned long ecount)
-{
- struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state;
-
- printf("push:%s: ecount[%u]\n",
- state->name, ecount);
-}
-
-void pipe_structtype_alloc(
- char * _state,
- unsigned long bsize,
- structtype * * buf,
- unsigned long * bcount)
-{
- struct pipe_structtype_state *state = (struct pipe_structtype_state *)_state;
-
- printf("alloc1:%s: bsize[%u], bcount[%u]\n",
- state->name, bsize, *bcount);
- *bcount = bsize / sizeof(**buf);
- *buf = malloc(*bcount * sizeof(**buf));
- printf("alloc2:%s: bsize[%u], bcount[%u]\n",
- state->name, bsize, *bcount);
-}
static void midltests(void)
{
- struct msg out1;
- unsigned char out1b[3];
- struct pipe_structtype_state outs;
- pipe_structtype outp;
- struct pipe_structtype_state ins;
- pipe_structtype inp;
- struct msg in1;
- unsigned char in1b[3];
-
- in1.l = sizeof(in1b);
- memset(&in1b, 0xAA, sizeof(in1b));
- in1.m = in1b;
-
- memset(&outs, 0, sizeof(outs));
- outs.name = "outp";
- memset(&outp, 0, sizeof(outp));
- outp.pull = pipe_structtype_pull;
- outp.push = pipe_structtype_push;
- outp.alloc = pipe_structtype_alloc;
- outp.state = (char *)&outs;
-
- memset(&ins, 0, sizeof(ins));
- ins.name = "inp";
- ins.count = 1;
- memset(&inp, 0, sizeof(inp));
- inp.pull = pipe_structtype_pull;
- inp.push = pipe_structtype_push;
- inp.alloc = pipe_structtype_alloc;
- inp.state = (char *)&ins;
-
- out1.l = sizeof(out1b);
- memset(&out1b, 0xFF, sizeof(out1b));
- out1.m = out1b;
-
- cli_midltests_ping(in1);
- cli_midltests_fn(&out1, outp, inp, in1);
+ cli_midltests_fn();
}
-long srv_midltests_fn(
- /* [ref][out] */ struct msg *out1,
- /* [out] */ pipe_structtype outp,
- /* [in] */ pipe_structtype inp,
- /* [in] */ struct msg in1)
+long srv_midltests_fn(void)
{
- structtype inb[500];
- unsigned long inb_len = 0;
- structtype *outb = NULL;
- unsigned long outb_size = 0;
- unsigned long outb_len = 0;
-
printf("srv_midltests_fn: Start\n");
-
- do {
- inp.pull(inp.state, inb, sizeof(inb), &inb_len);
- printf("pull inp_len[%u]\n", inb_len);
- } while (inb_len > 0);
-
- outb_size = 5;
- do {
- outp.alloc(outp.state, outb_size, &outb, &outb_len);
- memset(outb, 0xCC, outb_len * sizeof(*outb));
- outp.push(outp.state, outb, outb_len);
- printf("push outb_len[%u]\n", outb_len);
- //Sleep(1000);
- outb_size--;
- } while (outb_len > 0);
-
- out1->l = 3;
- out1->m = (unsigned char *)malloc(out1->l);
- memset(out1->m, 0xBB, out1->l);
printf("srv_midltests_fn: End\n");
return 0x65757254;
}
-long srv_midltests_ping(
- /* [in] */ struct msg in1)
-{
- printf("srv_midltests_fn: Start\n");
- printf("srv_midltests_fn: End\n");
- return 0x65757254;
-}
#endif