rpcrt4/tests: Merge rpc_protseq.c into rpc.c.
Signed-off-by: Hans Leidekker <hans@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
369543e365
commit
dd62188627
|
@ -8,7 +8,6 @@ C_SRCS = \
|
||||||
ndr_marshall.c \
|
ndr_marshall.c \
|
||||||
rpc.c \
|
rpc.c \
|
||||||
rpc_async.c \
|
rpc_async.c \
|
||||||
rpc_protseq.c \
|
|
||||||
server.c
|
server.c
|
||||||
|
|
||||||
IDL_SRCS = server.idl
|
IDL_SRCS = server.idl
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* Unit test suite for rpc functions
|
* Unit test suite for rpc functions
|
||||||
*
|
*
|
||||||
* Copyright 2002 Greg Turner
|
* Copyright 2002 Greg Turner
|
||||||
|
* Copyright 2008-2009 Robert Shearman
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -909,8 +910,163 @@ static void test_RpcServerRegisterAuthInfo(void)
|
||||||
ok(status == RPC_S_UNKNOWN_AUTHN_SERVICE, "status = %x\n", status);
|
ok(status == RPC_S_UNKNOWN_AUTHN_SERVICE, "status = %x\n", status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_RpcServerUseProtseq(void)
|
||||||
|
{
|
||||||
|
RPC_STATUS status;
|
||||||
|
RPC_BINDING_VECTOR *bindings;
|
||||||
|
ULONG i;
|
||||||
|
ULONG binding_count_before;
|
||||||
|
ULONG binding_count_after1;
|
||||||
|
ULONG binding_count_after2;
|
||||||
|
ULONG endpoints_registered = 0;
|
||||||
|
static unsigned char iptcp[] = "ncacn_ip_tcp";
|
||||||
|
static unsigned char np[] = "ncacn_np";
|
||||||
|
static unsigned char ncalrpc[] = "ncalrpc";
|
||||||
|
BOOL iptcp_registered = FALSE, np_registered = FALSE, ncalrpc_registered = FALSE;
|
||||||
|
|
||||||
|
status = RpcServerInqBindings(&bindings);
|
||||||
|
if (status == RPC_S_NO_BINDINGS)
|
||||||
|
binding_count_before = 0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
binding_count_before = bindings->Count;
|
||||||
|
ok(status == RPC_S_OK, "RpcServerInqBindings failed with status %d\n", status);
|
||||||
|
for (i = 0; i < bindings->Count; i++)
|
||||||
|
{
|
||||||
|
RPC_CSTR str_bind;
|
||||||
|
status = RpcBindingToStringBindingA(bindings->BindingH[i], &str_bind);
|
||||||
|
ok(status == RPC_S_OK, "RpcBindingToStringBinding failed with status %d\n", status);
|
||||||
|
if (lstrlenA((const char *)str_bind) > 12 && !memcmp(str_bind, "ncacn_ip_tcp", 12))
|
||||||
|
iptcp_registered = TRUE;
|
||||||
|
if (lstrlenA((const char *)str_bind) > 8 && !memcmp(str_bind, "ncacn_np", 8))
|
||||||
|
np_registered = TRUE;
|
||||||
|
if (lstrlenA((const char *)str_bind) > 7 && !memcmp(str_bind, "ncalrpc", 7))
|
||||||
|
ncalrpc_registered = TRUE;
|
||||||
|
RpcStringFreeA(&str_bind);
|
||||||
|
}
|
||||||
|
RpcBindingVectorFree(&bindings);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show that RpcServerUseProtseqEp(..., NULL, ...) is the same as
|
||||||
|
* RpcServerUseProtseq(...) */
|
||||||
|
status = RpcServerUseProtseqEpA(ncalrpc, 0, NULL, NULL);
|
||||||
|
ok(status == RPC_S_OK || broken(status == RPC_S_INVALID_ENDPOINT_FORMAT),
|
||||||
|
"RpcServerUseProtseqEp with NULL endpoint failed with status %d\n",
|
||||||
|
status);
|
||||||
|
|
||||||
|
/* register protocol sequences without explicit endpoints */
|
||||||
|
status = RpcServerUseProtseqA(np, 0, NULL);
|
||||||
|
if (status == RPC_S_PROTSEQ_NOT_SUPPORTED)
|
||||||
|
win_skip("ncacn_np not supported\n");
|
||||||
|
else
|
||||||
|
ok(status == RPC_S_OK, "RpcServerUseProtseq(ncacn_np) failed with status %d\n", status);
|
||||||
|
if (status == RPC_S_OK && !np_registered) endpoints_registered++;
|
||||||
|
|
||||||
|
status = RpcServerUseProtseqA(iptcp, 0, NULL);
|
||||||
|
ok(status == RPC_S_OK, "RpcServerUseProtseq(ncacn_ip_tcp) failed with status %d\n", status);
|
||||||
|
if (status == RPC_S_OK && !iptcp_registered) endpoints_registered++;
|
||||||
|
|
||||||
|
status = RpcServerUseProtseqA(ncalrpc, 0, NULL);
|
||||||
|
ok(status == RPC_S_OK, "RpcServerUseProtseqEp(ncalrpc) failed with status %d\n", status);
|
||||||
|
if (status == RPC_S_OK && !ncalrpc_registered) endpoints_registered++;
|
||||||
|
|
||||||
|
status = RpcServerInqBindings(&bindings);
|
||||||
|
ok(status == RPC_S_OK, "RpcServerInqBindings failed with status %d\n", status);
|
||||||
|
binding_count_after1 = bindings->Count;
|
||||||
|
ok(binding_count_after1 == binding_count_before + endpoints_registered,
|
||||||
|
"wrong binding count - before: %u, after %u, endpoints registered %u\n",
|
||||||
|
binding_count_before, binding_count_after1, endpoints_registered);
|
||||||
|
for (i = 0; i < bindings->Count; i++)
|
||||||
|
{
|
||||||
|
RPC_CSTR str_bind;
|
||||||
|
status = RpcBindingToStringBindingA(bindings->BindingH[i], &str_bind);
|
||||||
|
ok(status == RPC_S_OK, "RpcBindingToStringBinding failed with status %d\n", status);
|
||||||
|
trace("string binding: %s\n", str_bind);
|
||||||
|
RpcStringFreeA(&str_bind);
|
||||||
|
}
|
||||||
|
RpcBindingVectorFree(&bindings);
|
||||||
|
|
||||||
|
/* re-register - endpoints should be reused */
|
||||||
|
status = RpcServerUseProtseqA(np, 0, NULL);
|
||||||
|
if (status == RPC_S_PROTSEQ_NOT_SUPPORTED)
|
||||||
|
win_skip("ncacn_np not supported\n");
|
||||||
|
else
|
||||||
|
ok(status == RPC_S_OK, "RpcServerUseProtseq(ncacn_np) failed with status %d\n", status);
|
||||||
|
|
||||||
|
status = RpcServerUseProtseqA(iptcp, 0, NULL);
|
||||||
|
ok(status == RPC_S_OK, "RpcServerUseProtseq(ncacn_ip_tcp) failed with status %d\n", status);
|
||||||
|
|
||||||
|
status = RpcServerUseProtseqA(ncalrpc, 0, NULL);
|
||||||
|
ok(status == RPC_S_OK, "RpcServerUseProtseqEp(ncalrpc) failed with status %d\n", status);
|
||||||
|
|
||||||
|
status = RpcServerInqBindings(&bindings);
|
||||||
|
ok(status == RPC_S_OK, "RpcServerInqBindings failed with status %d\n", status);
|
||||||
|
binding_count_after2 = bindings->Count;
|
||||||
|
ok(binding_count_after2 == binding_count_after1,
|
||||||
|
"bindings should have been re-used - after1: %u after2: %u\n",
|
||||||
|
binding_count_after1, binding_count_after2);
|
||||||
|
RpcBindingVectorFree(&bindings);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_endpoint_mapper(RPC_CSTR protseq, RPC_CSTR address)
|
||||||
|
{
|
||||||
|
static unsigned char annotation[] = "Test annotation string.";
|
||||||
|
RPC_STATUS status;
|
||||||
|
RPC_BINDING_VECTOR *binding_vector;
|
||||||
|
handle_t handle;
|
||||||
|
unsigned char *binding;
|
||||||
|
|
||||||
|
status = RpcServerRegisterIf(IFoo_v0_0_s_ifspec, NULL, NULL);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcServerRegisterIf failed (%u)\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcServerInqBindings(&binding_vector);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcServerInqBindings failed with error %u\n", protseq, status);
|
||||||
|
|
||||||
|
/* register endpoints created in test_RpcServerUseProtseq */
|
||||||
|
status = RpcEpRegisterA(IFoo_v0_0_s_ifspec, binding_vector, NULL, annotation);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcEpRegisterA failed with error %u\n", protseq, status);
|
||||||
|
/* reregister the same endpoint with no annotation */
|
||||||
|
status = RpcEpRegisterA(IFoo_v0_0_s_ifspec, binding_vector, NULL, NULL);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcEpRegisterA failed with error %u\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcStringBindingComposeA(NULL, protseq, address,
|
||||||
|
NULL, NULL, &binding);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcStringBindingCompose failed (%u)\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcBindingFromStringBindingA(binding, &handle);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcBindingFromStringBinding failed (%u)\n", protseq, status);
|
||||||
|
|
||||||
|
RpcStringFreeA(&binding);
|
||||||
|
|
||||||
|
status = RpcBindingReset(handle);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcBindingReset failed with error %u\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcEpResolveBinding(handle, IFoo_v0_0_s_ifspec);
|
||||||
|
ok(status == RPC_S_OK || broken(status == RPC_S_SERVER_UNAVAILABLE), /* win9x */
|
||||||
|
"%s: RpcEpResolveBinding failed with error %u\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcBindingReset(handle);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcBindingReset failed with error %u\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcBindingFree(&handle);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcBindingFree failed with error %u\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcServerUnregisterIf(NULL, NULL, FALSE);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcServerUnregisterIf failed (%u)\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcEpUnregister(IFoo_v0_0_s_ifspec, binding_vector, NULL);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcEpUnregisterA failed with error %u\n", protseq, status);
|
||||||
|
|
||||||
|
status = RpcBindingVectorFree(&binding_vector);
|
||||||
|
ok(status == RPC_S_OK, "%s: RpcBindingVectorFree failed with error %u\n", protseq, status);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST( rpc )
|
START_TEST( rpc )
|
||||||
{
|
{
|
||||||
|
static unsigned char ncacn_np[] = "ncacn_np";
|
||||||
|
static unsigned char ncalrpc[] = "ncalrpc";
|
||||||
|
static unsigned char np_address[] = ".";
|
||||||
|
|
||||||
UuidConversionAndComparison();
|
UuidConversionAndComparison();
|
||||||
TestDceErrorInqText();
|
TestDceErrorInqText();
|
||||||
test_rpc_ncacn_ip_tcp();
|
test_rpc_ncacn_ip_tcp();
|
||||||
|
@ -924,4 +1080,7 @@ START_TEST( rpc )
|
||||||
test_RpcBindingFree();
|
test_RpcBindingFree();
|
||||||
test_RpcServerInqDefaultPrincName();
|
test_RpcServerInqDefaultPrincName();
|
||||||
test_RpcServerRegisterAuthInfo();
|
test_RpcServerRegisterAuthInfo();
|
||||||
|
test_RpcServerUseProtseq();
|
||||||
|
test_endpoint_mapper(ncacn_np, np_address);
|
||||||
|
test_endpoint_mapper(ncalrpc, NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,205 +0,0 @@
|
||||||
/*
|
|
||||||
* RPC Protocol Sequence Server Tests
|
|
||||||
*
|
|
||||||
* Copyright 2008-2009 Robert Shearman
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2.1 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this library; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "wine/test.h"
|
|
||||||
#include <windef.h>
|
|
||||||
#include <winbase.h>
|
|
||||||
#include <winnt.h>
|
|
||||||
#include <winerror.h>
|
|
||||||
|
|
||||||
#include "rpc.h"
|
|
||||||
#include "rpcdce.h"
|
|
||||||
|
|
||||||
static void test_RpcServerUseProtseq(void)
|
|
||||||
{
|
|
||||||
RPC_STATUS status;
|
|
||||||
RPC_BINDING_VECTOR *bindings;
|
|
||||||
ULONG i;
|
|
||||||
ULONG binding_count_before;
|
|
||||||
ULONG binding_count_after1;
|
|
||||||
ULONG binding_count_after2;
|
|
||||||
ULONG endpoints_registered = 0;
|
|
||||||
static unsigned char iptcp[] = "ncacn_ip_tcp";
|
|
||||||
static unsigned char np[] = "ncacn_np";
|
|
||||||
static unsigned char ncalrpc[] = "ncalrpc";
|
|
||||||
|
|
||||||
status = RpcServerInqBindings(&bindings);
|
|
||||||
if (status == RPC_S_NO_BINDINGS)
|
|
||||||
binding_count_before = 0;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
binding_count_before = bindings->Count;
|
|
||||||
ok(status == RPC_S_OK, "RpcServerInqBindings failed with status %d\n", status);
|
|
||||||
RpcBindingVectorFree(&bindings);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* show that RpcServerUseProtseqEp(..., NULL, ...) is the same as
|
|
||||||
* RpcServerUseProtseq(...) */
|
|
||||||
status = RpcServerUseProtseqEpA(ncalrpc, 0, NULL, NULL);
|
|
||||||
ok(status == RPC_S_OK || broken(status == RPC_S_INVALID_ENDPOINT_FORMAT),
|
|
||||||
"RpcServerUseProtseqEp with NULL endpoint failed with status %d\n",
|
|
||||||
status);
|
|
||||||
|
|
||||||
/* register protocol sequences without explicit endpoints */
|
|
||||||
status = RpcServerUseProtseqA(np, 0, NULL);
|
|
||||||
if (status == RPC_S_PROTSEQ_NOT_SUPPORTED)
|
|
||||||
win_skip("ncacn_np not supported\n");
|
|
||||||
else
|
|
||||||
ok(status == RPC_S_OK, "RpcServerUseProtseq(ncacn_np) failed with status %d\n", status);
|
|
||||||
if (status == RPC_S_OK) endpoints_registered++;
|
|
||||||
|
|
||||||
status = RpcServerUseProtseqA(iptcp, 0, NULL);
|
|
||||||
ok(status == RPC_S_OK, "RpcServerUseProtseq(ncacn_ip_tcp) failed with status %d\n", status);
|
|
||||||
if (status == RPC_S_OK) endpoints_registered++;
|
|
||||||
|
|
||||||
status = RpcServerUseProtseqA(ncalrpc, 0, NULL);
|
|
||||||
ok(status == RPC_S_OK, "RpcServerUseProtseqEp(ncalrpc) failed with status %d\n", status);
|
|
||||||
if (status == RPC_S_OK) endpoints_registered++;
|
|
||||||
|
|
||||||
status = RpcServerInqBindings(&bindings);
|
|
||||||
ok(status == RPC_S_OK, "RpcServerInqBindings failed with status %d\n", status);
|
|
||||||
binding_count_after1 = bindings->Count;
|
|
||||||
ok(binding_count_after1 == binding_count_before + endpoints_registered,
|
|
||||||
"wrong binding count - before: %u, after %u, endpoints registered %u\n",
|
|
||||||
binding_count_before, binding_count_after1, endpoints_registered);
|
|
||||||
for (i = 0; i < bindings->Count; i++)
|
|
||||||
{
|
|
||||||
RPC_CSTR str_bind;
|
|
||||||
status = RpcBindingToStringBindingA(bindings->BindingH[i], &str_bind);
|
|
||||||
ok(status == RPC_S_OK, "RpcBindingToStringBinding failed with status %d\n", status);
|
|
||||||
trace("string binding: %s\n", str_bind);
|
|
||||||
RpcStringFreeA(&str_bind);
|
|
||||||
}
|
|
||||||
RpcBindingVectorFree(&bindings);
|
|
||||||
|
|
||||||
/* re-register - endpoints should be reused */
|
|
||||||
status = RpcServerUseProtseqA(np, 0, NULL);
|
|
||||||
if (status == RPC_S_PROTSEQ_NOT_SUPPORTED)
|
|
||||||
win_skip("ncacn_np not supported\n");
|
|
||||||
else
|
|
||||||
ok(status == RPC_S_OK, "RpcServerUseProtseq(ncacn_np) failed with status %d\n", status);
|
|
||||||
|
|
||||||
status = RpcServerUseProtseqA(iptcp, 0, NULL);
|
|
||||||
ok(status == RPC_S_OK, "RpcServerUseProtseq(ncacn_ip_tcp) failed with status %d\n", status);
|
|
||||||
|
|
||||||
status = RpcServerUseProtseqA(ncalrpc, 0, NULL);
|
|
||||||
ok(status == RPC_S_OK, "RpcServerUseProtseqEp(ncalrpc) failed with status %d\n", status);
|
|
||||||
|
|
||||||
status = RpcServerInqBindings(&bindings);
|
|
||||||
ok(status == RPC_S_OK, "RpcServerInqBindings failed with status %d\n", status);
|
|
||||||
binding_count_after2 = bindings->Count;
|
|
||||||
ok(binding_count_after2 == binding_count_after1,
|
|
||||||
"bindings should have been re-used - after1: %u after2: %u\n",
|
|
||||||
binding_count_after1, binding_count_after2);
|
|
||||||
RpcBindingVectorFree(&bindings);
|
|
||||||
}
|
|
||||||
|
|
||||||
static RPC_DISPATCH_FUNCTION IFoo_table[] =
|
|
||||||
{
|
|
||||||
0
|
|
||||||
};
|
|
||||||
|
|
||||||
static RPC_DISPATCH_TABLE IFoo_v0_0_DispatchTable =
|
|
||||||
{
|
|
||||||
0,
|
|
||||||
IFoo_table
|
|
||||||
};
|
|
||||||
|
|
||||||
static const RPC_SERVER_INTERFACE IFoo___RpcServerInterface =
|
|
||||||
{
|
|
||||||
sizeof(RPC_SERVER_INTERFACE),
|
|
||||||
{{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x34}},{0,0}},
|
|
||||||
{{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},
|
|
||||||
&IFoo_v0_0_DispatchTable,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
};
|
|
||||||
|
|
||||||
static RPC_IF_HANDLE IFoo_v0_0_s_ifspec = (RPC_IF_HANDLE)& IFoo___RpcServerInterface;
|
|
||||||
|
|
||||||
static void test_endpoint_mapper(RPC_CSTR protseq, RPC_CSTR address)
|
|
||||||
{
|
|
||||||
static unsigned char annotation[] = "Test annotation string.";
|
|
||||||
RPC_STATUS status;
|
|
||||||
RPC_BINDING_VECTOR *binding_vector;
|
|
||||||
handle_t handle;
|
|
||||||
unsigned char *binding;
|
|
||||||
|
|
||||||
status = RpcServerRegisterIf(IFoo_v0_0_s_ifspec, NULL, NULL);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcServerRegisterIf failed (%u)\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcServerInqBindings(&binding_vector);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcServerInqBindings failed with error %u\n", protseq, status);
|
|
||||||
|
|
||||||
/* register endpoints created in test_RpcServerUseProtseq */
|
|
||||||
status = RpcEpRegisterA(IFoo_v0_0_s_ifspec, binding_vector, NULL, annotation);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcEpRegisterA failed with error %u\n", protseq, status);
|
|
||||||
/* reregister the same endpoint with no annotation */
|
|
||||||
status = RpcEpRegisterA(IFoo_v0_0_s_ifspec, binding_vector, NULL, NULL);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcEpRegisterA failed with error %u\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcStringBindingComposeA(NULL, protseq, address,
|
|
||||||
NULL, NULL, &binding);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcStringBindingCompose failed (%u)\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcBindingFromStringBindingA(binding, &handle);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcBindingFromStringBinding failed (%u)\n", protseq, status);
|
|
||||||
|
|
||||||
RpcStringFreeA(&binding);
|
|
||||||
|
|
||||||
status = RpcBindingReset(handle);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcBindingReset failed with error %u\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcEpResolveBinding(handle, IFoo_v0_0_s_ifspec);
|
|
||||||
ok(status == RPC_S_OK || broken(status == RPC_S_SERVER_UNAVAILABLE), /* win9x */
|
|
||||||
"%s: RpcEpResolveBinding failed with error %u\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcBindingReset(handle);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcBindingReset failed with error %u\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcBindingFree(&handle);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcBindingFree failed with error %u\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcServerUnregisterIf(NULL, NULL, FALSE);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcServerUnregisterIf failed (%u)\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcEpUnregister(IFoo_v0_0_s_ifspec, binding_vector, NULL);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcEpUnregisterA failed with error %u\n", protseq, status);
|
|
||||||
|
|
||||||
status = RpcBindingVectorFree(&binding_vector);
|
|
||||||
ok(status == RPC_S_OK, "%s: RpcBindingVectorFree failed with error %u\n", protseq, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
START_TEST( rpc_protseq )
|
|
||||||
{
|
|
||||||
static unsigned char ncacn_np[] = "ncacn_np";
|
|
||||||
static unsigned char ncalrpc[] = "ncalrpc";
|
|
||||||
static unsigned char np_address[] = ".";
|
|
||||||
|
|
||||||
test_RpcServerUseProtseq();
|
|
||||||
test_endpoint_mapper(ncacn_np, np_address);
|
|
||||||
test_endpoint_mapper(ncalrpc, NULL);
|
|
||||||
}
|
|
Loading…
Reference in New Issue