return true;
}
+/* echo_BytePipe */
+struct echo_BytePipe;
+struct echo_BytePipe *dcerpc_echo_BytePipe_create(TALLOC_CTX *mem_ctx);
+struct tevent_req *dcerpc_echo_BytePipe_chunk_push_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct echo_BytePipe *p,
+ const struct echo_BytePipe_chunk *chunk);
+NTSTATUS dcerpc_echo_BytePipe_chunk_push_recv(struct tevent_req *req);
+struct tevent_req *dcerpc_echo_BytePipe_chunk_pull_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct echo_BytePipe *p);
+NTSTATUS dcerpc_echo_BytePipe_chunk_pull_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ struct echo_BytePipe_chunk **chunk);
+struct tevent_req *dcerpc_echo_TestBytePipeIn_r_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct dcerpc_binding_handle *h,
+ struct echo_TestBytePipeIn *r);
+NTSTATUS dcerpc_echo_TestBytePipeIn_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+/*
+ * The following function is skipped because
+ * it uses pipes:
+ *
+ * dcerpc_echo_TestBytePipeIn_r()
+ */
+
+struct tevent_req *dcerpc_echo_TestBytePipeIn_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct dcerpc_binding_handle *h,
+ uint32_t _count /* [in] */,
+ struct echo_BytePipe *_in_pipe /* [in] [ref] */);
+NTSTATUS dcerpc_echo_TestBytePipeIn_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ uint32_t *result);
+/*
+ * The following function is skipped because
+ * it uses pipes:
+ *
+ * dcerpc_echo_TestBytePipeIn()
+ */
+
+static bool test_bytepipein(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+ struct dcerpc_binding_handle *b = p->binding_handle;
+ struct echo_TestBytePipeIn r;
+ struct frstrans_BytePipe_chunk chunk;
+ struct echo_BytePipe_chunk chunk;
+ struct echo_BytePipe *in_pipe;
+ struct tevent_req *subreq1;
+ struct tevent_req *subreq2;
+
+ in_pipe = dcerpc_echo_BytePipe_create(tctx);
+
+ ZERO_STRUCT(r);
+ r.in.count = 5;
+ r.in.in_pipe = in_pipe;
+
+ subreq1 = dcerpc_echo_TestBytePipeIn_r_send(tctx, tctx->ev, b, r);
+
+ ZERO_STRUCT(chunk);
+ subreq2 = dcerpc_echo_BytePipe_chunk_push_send(tctx, tctx->ev, in_pipe, &chunk);
+ tevent_req_poll(subreq2);
+ status = dcerpc_echo_BytePipe_chunk_push_recv(subreq2);
+ tevent_req_poll(subreq1);
+ status = dcerpc_echo_TestBytePipeIn_r_recv(subreq1, tctx);
+
+ return true;
+}
/*
test request timeouts
torture_rpc_tcase_add_test(tcase, "surrounding", test_surrounding);
torture_rpc_tcase_add_test(tcase, "doublepointer", test_doublepointer);
torture_rpc_tcase_add_test(tcase, "sleep", test_sleep);
+ torture_rpc_tcase_add_test(tcase, "bytepipein", test_bytepipein);
#if 0 /* this test needs fixing to work over ncacn_np */
torture_rpc_tcase_add_test(tcase, "timeout", test_timeout);
#endif