[PATCH 5/6] iphlpapi/tests: Run the interface conversion tests on all interfaces.
Huw Davies
huw at codeweavers.com
Mon Jul 5 02:51:10 CDT 2021
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/iphlpapi/tests/iphlpapi.c | 341 +++++++++++++++------------------
1 file changed, 153 insertions(+), 188 deletions(-)
diff --git a/dlls/iphlpapi/tests/iphlpapi.c b/dlls/iphlpapi/tests/iphlpapi.c
index b6e62138256..480d6ac06c5 100644
--- a/dlls/iphlpapi/tests/iphlpapi.c
+++ b/dlls/iphlpapi/tests/iphlpapi.c
@@ -65,23 +65,12 @@ static DWORD (WINAPI *pGetExtendedUdpTable)(PVOID,PDWORD,BOOL,ULONG,UDP_TABLE_CL
static DWORD (WINAPI *pCreateSortedAddressPairs)(const PSOCKADDR_IN6,ULONG,const PSOCKADDR_IN6,ULONG,ULONG,
PSOCKADDR_IN6_PAIR*,ULONG*);
static void (WINAPI *pFreeMibTable)(void*);
-static DWORD (WINAPI *pConvertInterfaceGuidToLuid)(const GUID*,NET_LUID*);
-static DWORD (WINAPI *pConvertInterfaceIndexToLuid)(NET_IFINDEX,NET_LUID*);
-static DWORD (WINAPI *pConvertInterfaceLuidToGuid)(const NET_LUID*,GUID*);
-static DWORD (WINAPI *pConvertInterfaceLuidToIndex)(const NET_LUID*,NET_IFINDEX*);
-static DWORD (WINAPI *pConvertInterfaceLuidToNameW)(const NET_LUID*,WCHAR*,SIZE_T);
-static DWORD (WINAPI *pConvertInterfaceLuidToNameA)(const NET_LUID*,char*,SIZE_T);
-static DWORD (WINAPI *pConvertInterfaceNameToLuidA)(const char*,NET_LUID*);
-static DWORD (WINAPI *pConvertInterfaceNameToLuidW)(const WCHAR*,NET_LUID*);
static DWORD (WINAPI *pConvertLengthToIpv4Mask)(ULONG,ULONG*);
static DWORD (WINAPI *pParseNetworkString)(const WCHAR*,DWORD,NET_ADDRESS_INFO*,USHORT*,BYTE*);
static DWORD (WINAPI *pNotifyUnicastIpAddressChange)(ADDRESS_FAMILY, PUNICAST_IPADDRESS_CHANGE_CALLBACK,
PVOID, BOOLEAN, HANDLE *);
static DWORD (WINAPI *pCancelMibChangeNotify2)(HANDLE);
-static PCHAR (WINAPI *pif_indextoname)(NET_IFINDEX,PCHAR);
-static NET_IFINDEX (WINAPI *pif_nametoindex)(const char*);
-
static void loadIPHlpApi(void)
{
hLibrary = LoadLibraryA("iphlpapi.dll");
@@ -98,18 +87,8 @@ static void loadIPHlpApi(void)
pGetExtendedUdpTable = (void *)GetProcAddress(hLibrary, "GetExtendedUdpTable");
pCreateSortedAddressPairs = (void *)GetProcAddress(hLibrary, "CreateSortedAddressPairs");
pFreeMibTable = (void *)GetProcAddress(hLibrary, "FreeMibTable");
- pConvertInterfaceGuidToLuid = (void *)GetProcAddress(hLibrary, "ConvertInterfaceGuidToLuid");
- pConvertInterfaceIndexToLuid = (void *)GetProcAddress(hLibrary, "ConvertInterfaceIndexToLuid");
- pConvertInterfaceLuidToGuid = (void *)GetProcAddress(hLibrary, "ConvertInterfaceLuidToGuid");
- pConvertInterfaceLuidToIndex = (void *)GetProcAddress(hLibrary, "ConvertInterfaceLuidToIndex");
- pConvertInterfaceLuidToNameA = (void *)GetProcAddress(hLibrary, "ConvertInterfaceLuidToNameA");
- pConvertInterfaceLuidToNameW = (void *)GetProcAddress(hLibrary, "ConvertInterfaceLuidToNameW");
- pConvertInterfaceNameToLuidA = (void *)GetProcAddress(hLibrary, "ConvertInterfaceNameToLuidA");
- pConvertInterfaceNameToLuidW = (void *)GetProcAddress(hLibrary, "ConvertInterfaceNameToLuidW");
pConvertLengthToIpv4Mask = (void *)GetProcAddress(hLibrary, "ConvertLengthToIpv4Mask");
pParseNetworkString = (void *)GetProcAddress(hLibrary, "ParseNetworkString");
- pif_indextoname = (void *)GetProcAddress(hLibrary, "if_indextoname");
- pif_nametoindex = (void *)GetProcAddress(hLibrary, "if_nametoindex");
pNotifyUnicastIpAddressChange = (void *)GetProcAddress(hLibrary, "NotifyUnicastIpAddressChange");
pCancelMibChangeNotify2 = (void *)GetProcAddress(hLibrary, "CancelMibChangeNotify2");
}
@@ -1384,16 +1363,13 @@ static void test_GetAdaptersAddresses(void)
aa->Ipv4Metric, aa->Ipv6Metric, wine_dbgstr_guid((GUID*) &aa->NetworkGuid),
aa->ConnectionType, aa->TunnelType);
- if (pConvertInterfaceLuidToGuid)
- {
- status = pConvertInterfaceLuidToGuid(&aa->Luid, &guid);
- ok(!status, "got %u\n", status);
- sprintf(buf, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
- guid.Data1, guid.Data2, guid.Data3, guid.Data4[0], guid.Data4[1],
- guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5],
- guid.Data4[6], guid.Data4[7]);
- ok(!strcasecmp(aa->AdapterName, buf), "expected '%s' got '%s'\n", aa->AdapterName, buf);
- }
+ status = ConvertInterfaceLuidToGuid(&aa->Luid, &guid);
+ ok(!status, "got %u\n", status);
+ sprintf(buf, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
+ guid.Data1, guid.Data2, guid.Data3, guid.Data4[0], guid.Data4[1],
+ guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5],
+ guid.Data4[6], guid.Data4[7]);
+ ok(!strcasecmp(aa->AdapterName, buf), "expected '%s' got '%s'\n", aa->AdapterName, buf);
}
ok(dns_eligible_found, "Did not find any dns eligible addresses.\n");
HeapFree(GetProcessHeap(), 0, ptr);
@@ -1644,204 +1620,193 @@ static DWORD get_interface_index(void)
static void test_interface_identifier_conversion(void)
{
- DWORD ret;
+ DWORD ret, i;
NET_LUID luid;
GUID guid;
SIZE_T len;
WCHAR nameW[IF_MAX_STRING_SIZE + 1];
char nameA[IF_MAX_STRING_SIZE + 1], *name;
- NET_IFINDEX index, index2;
+ NET_IFINDEX index;
+ MIB_IF_TABLE2 *table;
- if (!pConvertInterfaceIndexToLuid)
- {
- win_skip( "ConvertInterfaceIndexToLuid not available\n" );
- return;
- }
- if (!(index = get_interface_index()))
- {
- skip( "no suitable interface found\n" );
- return;
- }
+ ret = GetIfTable2( &table );
+ ok( !ret, "got %d\n", ret );
- /* ConvertInterfaceIndexToLuid */
- ret = pConvertInterfaceIndexToLuid( 0, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ for (i = 0; i < table->NumEntries; i++)
+ {
+ MIB_IF_ROW2 *row = table->Table + i;
- memset( &luid, 0xff, sizeof(luid) );
- ret = pConvertInterfaceIndexToLuid( 0, &luid );
- ok( ret == ERROR_FILE_NOT_FOUND, "got %u\n", ret );
- ok( !luid.Info.Reserved, "got %x\n", luid.Info.Reserved );
- ok( !luid.Info.NetLuidIndex, "got %u\n", luid.Info.NetLuidIndex );
- ok( !luid.Info.IfType, "got %u\n", luid.Info.IfType );
-
- luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
- ret = pConvertInterfaceIndexToLuid( index, &luid );
- ok( !ret, "got %u\n", ret );
- ok( !luid.Info.Reserved, "got %x\n", luid.Info.Reserved );
- ok( luid.Info.NetLuidIndex != 0xdead, "index not set\n" );
- ok( luid.Info.IfType == IF_TYPE_ETHERNET_CSMACD, "got %u\n", luid.Info.IfType );
-
- /* ConvertInterfaceLuidToIndex */
- ret = pConvertInterfaceLuidToIndex( NULL, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ /* ConvertInterfaceIndexToLuid */
+ ret = ConvertInterfaceIndexToLuid( 0, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- ret = pConvertInterfaceLuidToIndex( NULL, &index );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ memset( &luid, 0xff, sizeof(luid) );
+ ret = ConvertInterfaceIndexToLuid( 0, &luid );
+ ok( ret == ERROR_FILE_NOT_FOUND, "got %u\n", ret );
+ ok( !luid.Info.Reserved, "got %x\n", luid.Info.Reserved );
+ ok( !luid.Info.NetLuidIndex, "got %u\n", luid.Info.NetLuidIndex );
+ ok( !luid.Info.IfType, "got %u\n", luid.Info.IfType );
- ret = pConvertInterfaceLuidToIndex( &luid, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
+ ret = ConvertInterfaceIndexToLuid( row->InterfaceIndex, &luid );
+ ok( !ret, "got %u\n", ret );
+ ok( luid.Value == row->InterfaceLuid.Value, "mismatch\n" );
- ret = pConvertInterfaceLuidToIndex( &luid, &index );
- ok( !ret, "got %u\n", ret );
+ /* ConvertInterfaceLuidToIndex */
+ ret = ConvertInterfaceLuidToIndex( NULL, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- /* ConvertInterfaceLuidToGuid */
- ret = pConvertInterfaceLuidToGuid( NULL, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ ret = ConvertInterfaceLuidToIndex( NULL, &index );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- memset( &guid, 0xff, sizeof(guid) );
- ret = pConvertInterfaceLuidToGuid( NULL, &guid );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- ok( guid.Data1 == 0xffffffff, "got %x\n", guid.Data1 );
+ ret = ConvertInterfaceLuidToIndex( &luid, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- ret = pConvertInterfaceLuidToGuid( &luid, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ ret = ConvertInterfaceLuidToIndex( &luid, &index );
+ ok( !ret, "got %u\n", ret );
+ ok( index == row->InterfaceIndex, "mismatch\n" );
- memset( &guid, 0, sizeof(guid) );
- ret = pConvertInterfaceLuidToGuid( &luid, &guid );
- ok( !ret, "got %u\n", ret );
- ok( guid.Data1, "got %x\n", guid.Data1 );
+ /* ConvertInterfaceLuidToGuid */
+ ret = ConvertInterfaceLuidToGuid( NULL, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- /* ConvertInterfaceGuidToLuid */
- ret = pConvertInterfaceGuidToLuid( NULL, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ memset( &guid, 0xff, sizeof(guid) );
+ ret = ConvertInterfaceLuidToGuid( NULL, &guid );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ ok( guid.Data1 == 0xffffffff, "got %x\n", guid.Data1 );
- luid.Info.NetLuidIndex = 1;
- ret = pConvertInterfaceGuidToLuid( NULL, &luid );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- ok( luid.Info.NetLuidIndex == 1, "got %u\n", luid.Info.NetLuidIndex );
+ ret = ConvertInterfaceLuidToGuid( &luid, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- ret = pConvertInterfaceGuidToLuid( &guid, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ memset( &guid, 0, sizeof(guid) );
+ ret = ConvertInterfaceLuidToGuid( &luid, &guid );
+ ok( !ret, "got %u\n", ret );
+ ok( IsEqualGUID( &guid, &row->InterfaceGuid ), "mismatch\n" );
- luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
- ret = pConvertInterfaceGuidToLuid( &guid, &luid );
- ok( !ret, "got %u\n", ret );
- ok( !luid.Info.Reserved, "got %x\n", luid.Info.Reserved );
- ok( luid.Info.NetLuidIndex != 0xdead, "index not set\n" );
- ok( luid.Info.IfType == IF_TYPE_ETHERNET_CSMACD, "got %u\n", luid.Info.IfType );
+ /* ConvertInterfaceGuidToLuid */
+ ret = ConvertInterfaceGuidToLuid( NULL, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- /* ConvertInterfaceLuidToNameW */
- ret = pConvertInterfaceLuidToNameW( NULL, NULL, 0 );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ luid.Info.NetLuidIndex = 1;
+ ret = ConvertInterfaceGuidToLuid( NULL, &luid );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ ok( luid.Info.NetLuidIndex == 1, "got %u\n", luid.Info.NetLuidIndex );
- ret = pConvertInterfaceLuidToNameW( &luid, NULL, 0 );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ ret = ConvertInterfaceGuidToLuid( &guid, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- ret = pConvertInterfaceLuidToNameW( NULL, nameW, 0 );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
+ ret = ConvertInterfaceGuidToLuid( &guid, &luid );
+ ok( !ret, "got %u\n", ret );
+ ok( luid.Value == row->InterfaceLuid.Value ||
+ broken( luid.Value != row->InterfaceLuid.Value), /* Win8 can have identical guids for two different ifaces */
+ "mismatch\n" );
+ if (luid.Value != row->InterfaceLuid.Value) continue;
- ret = pConvertInterfaceLuidToNameW( &luid, nameW, 0 );
- ok( ret == ERROR_NOT_ENOUGH_MEMORY, "got %u\n", ret );
+ /* ConvertInterfaceLuidToNameW */
+ ret = ConvertInterfaceLuidToNameW( NULL, NULL, 0 );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- nameW[0] = 0;
- len = ARRAY_SIZE(nameW);
- ret = pConvertInterfaceLuidToNameW( &luid, nameW, len );
- ok( !ret, "got %u\n", ret );
- ok( nameW[0], "name not set\n" );
+ ret = ConvertInterfaceLuidToNameW( &luid, NULL, 0 );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- /* ConvertInterfaceLuidToNameA */
- ret = pConvertInterfaceLuidToNameA( NULL, NULL, 0 );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ ret = ConvertInterfaceLuidToNameW( NULL, nameW, 0 );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- ret = pConvertInterfaceLuidToNameA( &luid, NULL, 0 );
- ok( ret == ERROR_NOT_ENOUGH_MEMORY, "got %u\n", ret );
+ ret = ConvertInterfaceLuidToNameW( &luid, nameW, 0 );
+ ok( ret == ERROR_NOT_ENOUGH_MEMORY, "got %u\n", ret );
- ret = pConvertInterfaceLuidToNameA( NULL, nameA, 0 );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ nameW[0] = 0;
+ len = ARRAY_SIZE(nameW);
+ ret = ConvertInterfaceLuidToNameW( &luid, nameW, len );
+ ok( !ret, "got %u\n", ret );
+ ok( nameW[0], "name not set\n" );
- ret = pConvertInterfaceLuidToNameA( &luid, nameA, 0 );
- ok( ret == ERROR_NOT_ENOUGH_MEMORY, "got %u\n", ret );
+ /* ConvertInterfaceLuidToNameA */
+ ret = ConvertInterfaceLuidToNameA( NULL, NULL, 0 );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- nameA[0] = 0;
- len = ARRAY_SIZE(nameA);
- ret = pConvertInterfaceLuidToNameA( &luid, nameA, len );
- ok( !ret, "got %u\n", ret );
- ok( nameA[0], "name not set\n" );
+ ret = ConvertInterfaceLuidToNameA( &luid, NULL, 0 );
+ ok( ret == ERROR_NOT_ENOUGH_MEMORY, "got %u\n", ret );
- /* ConvertInterfaceNameToLuidW */
- ret = pConvertInterfaceNameToLuidW( NULL, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ ret = ConvertInterfaceLuidToNameA( NULL, nameA, 0 );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
- ret = pConvertInterfaceNameToLuidW( NULL, &luid );
- ok( ret == ERROR_INVALID_NAME, "got %u\n", ret );
- ok( !luid.Info.Reserved, "got %x\n", luid.Info.Reserved );
- ok( luid.Info.NetLuidIndex != 0xdead, "index not set\n" );
- ok( !luid.Info.IfType, "got %u\n", luid.Info.IfType );
+ ret = ConvertInterfaceLuidToNameA( &luid, nameA, 0 );
+ ok( ret == ERROR_NOT_ENOUGH_MEMORY, "got %u\n", ret );
- ret = pConvertInterfaceNameToLuidW( nameW, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ nameA[0] = 0;
+ len = ARRAY_SIZE(nameA);
+ ret = ConvertInterfaceLuidToNameA( &luid, nameA, len );
+ ok( !ret, "got %u\n", ret );
+ ok( nameA[0], "name not set\n" );
- luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
- ret = pConvertInterfaceNameToLuidW( nameW, &luid );
- ok( !ret, "got %u\n", ret );
- ok( !luid.Info.Reserved, "got %x\n", luid.Info.Reserved );
- ok( luid.Info.NetLuidIndex != 0xdead, "index not set\n" );
- ok( luid.Info.IfType == IF_TYPE_ETHERNET_CSMACD, "got %u\n", luid.Info.IfType );
-
- /* ConvertInterfaceNameToLuidA */
- ret = pConvertInterfaceNameToLuidA( NULL, NULL );
- ok( ret == ERROR_INVALID_NAME, "got %u\n", ret );
-
- luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
- ret = pConvertInterfaceNameToLuidA( NULL, &luid );
- ok( ret == ERROR_INVALID_NAME, "got %u\n", ret );
- ok( luid.Info.Reserved == 0xdead, "reserved set\n" );
- ok( luid.Info.NetLuidIndex == 0xdead, "index set\n" );
- ok( luid.Info.IfType == 0xdead, "type set\n" );
-
- ret = pConvertInterfaceNameToLuidA( nameA, NULL );
- ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
+ /* ConvertInterfaceNameToLuidW */
+ ret = ConvertInterfaceNameToLuidW( NULL, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
- ret = pConvertInterfaceNameToLuidA( nameA, &luid );
- ok( !ret, "got %u\n", ret );
- ok( !luid.Info.Reserved, "got %x\n", luid.Info.Reserved );
- ok( luid.Info.NetLuidIndex != 0xdead, "index not set\n" );
- ok( luid.Info.IfType == IF_TYPE_ETHERNET_CSMACD, "got %u\n", luid.Info.IfType );
+ luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
+ ret = ConvertInterfaceNameToLuidW( NULL, &luid );
+ ok( ret == ERROR_INVALID_NAME, "got %u\n", ret );
+ ok( !luid.Info.Reserved, "got %x\n", luid.Info.Reserved );
+ ok( luid.Info.NetLuidIndex != 0xdead, "index not set\n" );
+ ok( !luid.Info.IfType, "got %u\n", luid.Info.IfType );
- if (!pif_nametoindex || !pif_indextoname)
- {
- skip("if_nametoindex/if_indextoname not supported\n");
- return;
- }
+ ret = ConvertInterfaceNameToLuidW( nameW, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- index2 = pif_nametoindex( NULL );
- ok( !index2, "Got unexpected index %u\n", index2 );
- index2 = pif_nametoindex( nameA );
- ok( index2 == index, "Got index %u for %s, expected %u\n", index2, nameA, index );
- /* Wargaming.net Game Center passes a GUID-like string. */
- index2 = pif_nametoindex( "{00000001-0000-0000-0000-000000000000}" );
- ok( !index2, "Got unexpected index %u\n", index2 );
- index2 = pif_nametoindex( wine_dbgstr_guid( &guid ) );
- ok( !index2, "Got unexpected index %u for input %s\n", index2, wine_dbgstr_guid( &guid ) );
+ luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
+ ret = ConvertInterfaceNameToLuidW( nameW, &luid );
+ ok( !ret, "got %u\n", ret );
+ ok( luid.Value == row->InterfaceLuid.Value, "mismatch\n" );
- name = pif_indextoname( 0, NULL );
- ok( name == NULL, "got %s\n", name );
+ /* ConvertInterfaceNameToLuidA */
+ ret = ConvertInterfaceNameToLuidA( NULL, NULL );
+ ok( ret == ERROR_INVALID_NAME, "got %u\n", ret );
- name = pif_indextoname( 0, nameA );
- ok( name == NULL, "got %p\n", name );
+ luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
+ ret = ConvertInterfaceNameToLuidA( NULL, &luid );
+ ok( ret == ERROR_INVALID_NAME, "got %u\n", ret );
+ ok( luid.Info.Reserved == 0xdead, "reserved set\n" );
+ ok( luid.Info.NetLuidIndex == 0xdead, "index set\n" );
+ ok( luid.Info.IfType == 0xdead, "type set\n" );
- name = pif_indextoname( ~0u, nameA );
- ok( name == NULL, "got %p\n", name );
+ ret = ConvertInterfaceNameToLuidA( nameA, NULL );
+ ok( ret == ERROR_INVALID_PARAMETER, "got %u\n", ret );
- nameA[0] = 0;
- name = pif_indextoname( 1, nameA );
- if (name != NULL)
- {
- ok( name[0], "empty name\n" );
- ok( name == nameA, "got %p\n", name );
+ luid.Info.Reserved = luid.Info.NetLuidIndex = luid.Info.IfType = 0xdead;
+ ret = ConvertInterfaceNameToLuidA( nameA, &luid );
+ ok( !ret, "got %u\n", ret );
+ ok( luid.Value == row->InterfaceLuid.Value, "mismatch\n" );
+
+ index = if_nametoindex( NULL );
+ ok( !index, "Got unexpected index %u\n", index );
+ index = if_nametoindex( nameA );
+ ok( index == row->InterfaceIndex, "Got index %u for %s, expected %u\n", index, nameA, row->InterfaceIndex );
+ /* Wargaming.net Game Center passes a GUID-like string. */
+ index = if_nametoindex( "{00000001-0000-0000-0000-000000000000}" );
+ ok( !index, "Got unexpected index %u\n", index );
+ index = if_nametoindex( wine_dbgstr_guid( &guid ) );
+ ok( !index, "Got unexpected index %u for input %s\n", index, wine_dbgstr_guid( &guid ) );
+
+ name = if_indextoname( 0, NULL );
+ ok( name == NULL, "got %s\n", name );
+
+ name = if_indextoname( 0, nameA );
+ ok( name == NULL, "got %p\n", name );
+
+ name = if_indextoname( ~0u, nameA );
+ ok( name == NULL, "got %p\n", name );
+
+ nameA[0] = 0;
+ name = if_indextoname( 1, nameA );
+ if (name != NULL)
+ {
+ ok( name[0], "empty name\n" );
+ ok( name == nameA, "got %p\n", name );
+ }
}
+ FreeMibTable( table );
}
static void test_GetIfEntry2(void)
--
2.23.0
More information about the wine-devel
mailing list