mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 19:25:59 +00:00
[NETAPI32_WINETEST]: Sync with Wine 1.5.19.
svn path=/trunk/; revision=57871
This commit is contained in:
parent
2fd1bc8f24
commit
c5657b4002
3 changed files with 73 additions and 11 deletions
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
add_definitions(
|
add_definitions(-D__ROS_LONG64__)
|
||||||
-D__ROS_LONG64__
|
|
||||||
-D_DLL -D__USE_CRTIMP)
|
|
||||||
|
|
||||||
list(APPEND SOURCE
|
list(APPEND SOURCE
|
||||||
access.c
|
access.c
|
||||||
|
|
|
@ -29,8 +29,8 @@
|
||||||
|
|
||||||
#include "wine/test.h"
|
#include "wine/test.h"
|
||||||
|
|
||||||
WCHAR user_name[UNLEN + 1];
|
static WCHAR user_name[UNLEN + 1];
|
||||||
WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
|
static WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
|
||||||
|
|
||||||
static const WCHAR sNonexistentUser[] = {'N','o','n','e','x','i','s','t','e','n','t',' ',
|
static const WCHAR sNonexistentUser[] = {'N','o','n','e','x','i','s','t','e','n','t',' ',
|
||||||
'U','s','e','r',0};
|
'U','s','e','r',0};
|
||||||
|
@ -63,6 +63,8 @@ static NET_API_STATUS (WINAPI *pNetUserGetInfo)(LPCWSTR,LPCWSTR,DWORD,LPBYTE*)=N
|
||||||
static NET_API_STATUS (WINAPI *pNetUserModalsGet)(LPCWSTR,DWORD,LPBYTE*)=NULL;
|
static NET_API_STATUS (WINAPI *pNetUserModalsGet)(LPCWSTR,DWORD,LPBYTE*)=NULL;
|
||||||
static NET_API_STATUS (WINAPI *pNetUserAdd)(LPCWSTR,DWORD,LPBYTE,LPDWORD)=NULL;
|
static NET_API_STATUS (WINAPI *pNetUserAdd)(LPCWSTR,DWORD,LPBYTE,LPDWORD)=NULL;
|
||||||
static NET_API_STATUS (WINAPI *pNetUserDel)(LPCWSTR,LPCWSTR)=NULL;
|
static NET_API_STATUS (WINAPI *pNetUserDel)(LPCWSTR,LPCWSTR)=NULL;
|
||||||
|
static NET_API_STATUS (WINAPI *pNetLocalGroupGetInfo)(LPCWSTR,LPCWSTR,DWORD,LPBYTE*)=NULL;
|
||||||
|
static NET_API_STATUS (WINAPI *pNetLocalGroupGetMembers)(LPCWSTR,LPCWSTR,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,PDWORD_PTR)=NULL;
|
||||||
|
|
||||||
static int init_access_tests(void)
|
static int init_access_tests(void)
|
||||||
{
|
{
|
||||||
|
@ -158,6 +160,7 @@ static void run_usergetinfo_tests(void)
|
||||||
ok(rc == ERROR_BAD_NETPATH ||
|
ok(rc == ERROR_BAD_NETPATH ||
|
||||||
rc == ERROR_NETWORK_UNREACHABLE ||
|
rc == ERROR_NETWORK_UNREACHABLE ||
|
||||||
rc == RPC_S_SERVER_UNAVAILABLE ||
|
rc == RPC_S_SERVER_UNAVAILABLE ||
|
||||||
|
rc == NERR_WkstaNotStarted || /* workstation service not running */
|
||||||
rc == RPC_S_INVALID_NET_ADDR, /* Some Win7 */
|
rc == RPC_S_INVALID_NET_ADDR, /* Some Win7 */
|
||||||
"Bad Network Path: rc=%d\n",rc);
|
"Bad Network Path: rc=%d\n",rc);
|
||||||
}
|
}
|
||||||
|
@ -320,6 +323,33 @@ static void run_userhandling_tests(void)
|
||||||
ok(ret == NERR_UserNotFound, "Deleting a nonexistent user returned 0x%08x\n",ret);
|
ok(ret == NERR_UserNotFound, "Deleting a nonexistent user returned 0x%08x\n",ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void run_localgroupgetinfo_tests(void)
|
||||||
|
{
|
||||||
|
NET_API_STATUS status;
|
||||||
|
static const WCHAR admins[] = {'A','d','m','i','n','i','s','t','r','a','t','o','r','s',0};
|
||||||
|
PLOCALGROUP_INFO_1 lgi = NULL;
|
||||||
|
PLOCALGROUP_MEMBERS_INFO_3 buffer = NULL;
|
||||||
|
DWORD entries_read = 0, total_entries =0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
status = pNetLocalGroupGetInfo(NULL, admins, 1, (LPBYTE *)&lgi);
|
||||||
|
ok(status == NERR_Success || broken(status == NERR_GroupNotFound),
|
||||||
|
"NetLocalGroupGetInfo unexpectedly returned %d\n", status);
|
||||||
|
if (status != NERR_Success) return;
|
||||||
|
|
||||||
|
trace("Local groupname:%s\n", wine_dbgstr_w( lgi->lgrpi1_name));
|
||||||
|
trace("Comment: %s\n", wine_dbgstr_w( lgi->lgrpi1_comment));
|
||||||
|
|
||||||
|
pNetApiBufferFree(lgi);
|
||||||
|
|
||||||
|
status = pNetLocalGroupGetMembers(NULL, admins, 3, (LPBYTE *)&buffer, MAX_PREFERRED_LENGTH, &entries_read, &total_entries, NULL);
|
||||||
|
ok(status == NERR_Success, "NetLocalGroupGetMembers unexpectedly returned %d\n", status);
|
||||||
|
ok(entries_read > 0 && total_entries > 0, "Amount of entries is unexpectedly 0\n");
|
||||||
|
|
||||||
|
for(i=0;i<entries_read;i++)
|
||||||
|
trace("domain and name: %s\n", wine_dbgstr_w(buffer[i].lgrmi3_domainandname));
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(access)
|
START_TEST(access)
|
||||||
{
|
{
|
||||||
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
|
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
|
||||||
|
@ -331,6 +361,8 @@ START_TEST(access)
|
||||||
pNetUserModalsGet=(void*)GetProcAddress(hnetapi32,"NetUserModalsGet");
|
pNetUserModalsGet=(void*)GetProcAddress(hnetapi32,"NetUserModalsGet");
|
||||||
pNetUserAdd=(void*)GetProcAddress(hnetapi32, "NetUserAdd");
|
pNetUserAdd=(void*)GetProcAddress(hnetapi32, "NetUserAdd");
|
||||||
pNetUserDel=(void*)GetProcAddress(hnetapi32, "NetUserDel");
|
pNetUserDel=(void*)GetProcAddress(hnetapi32, "NetUserDel");
|
||||||
|
pNetLocalGroupGetInfo=(void*)GetProcAddress(hnetapi32, "NetLocalGroupGetInfo");
|
||||||
|
pNetLocalGroupGetMembers=(void*)GetProcAddress(hnetapi32, "NetLocalGroupGetMembers");
|
||||||
|
|
||||||
/* These functions were introduced with NT. It's safe to assume that
|
/* These functions were introduced with NT. It's safe to assume that
|
||||||
* if one is not available, none are.
|
* if one is not available, none are.
|
||||||
|
@ -346,6 +378,7 @@ START_TEST(access)
|
||||||
run_usergetinfo_tests();
|
run_usergetinfo_tests();
|
||||||
run_querydisplayinformation1_tests();
|
run_querydisplayinformation1_tests();
|
||||||
run_usermodalsget_tests();
|
run_usermodalsget_tests();
|
||||||
|
run_localgroupgetinfo_tests();
|
||||||
}
|
}
|
||||||
|
|
||||||
FreeLibrary(hnetapi32);
|
FreeLibrary(hnetapi32);
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "lmerr.h"
|
#include "lmerr.h"
|
||||||
#include "lmwksta.h"
|
#include "lmwksta.h"
|
||||||
#include "lmapibuf.h"
|
#include "lmapibuf.h"
|
||||||
|
#include "lmjoin.h"
|
||||||
|
|
||||||
static NET_API_STATUS (WINAPI *pNetApiBufferFree)(LPVOID)=NULL;
|
static NET_API_STATUS (WINAPI *pNetApiBufferFree)(LPVOID)=NULL;
|
||||||
static NET_API_STATUS (WINAPI *pNetApiBufferSize)(LPVOID,LPDWORD)=NULL;
|
static NET_API_STATUS (WINAPI *pNetApiBufferSize)(LPVOID,LPDWORD)=NULL;
|
||||||
|
@ -38,9 +39,10 @@ static NET_API_STATUS (WINAPI *pNetpGetComputerName)(LPWSTR*)=NULL;
|
||||||
static NET_API_STATUS (WINAPI *pNetWkstaUserGetInfo)(LPWSTR,DWORD,PBYTE*)=NULL;
|
static NET_API_STATUS (WINAPI *pNetWkstaUserGetInfo)(LPWSTR,DWORD,PBYTE*)=NULL;
|
||||||
static NET_API_STATUS (WINAPI *pNetWkstaTransportEnum)(LPWSTR,DWORD,LPBYTE*,
|
static NET_API_STATUS (WINAPI *pNetWkstaTransportEnum)(LPWSTR,DWORD,LPBYTE*,
|
||||||
DWORD,LPDWORD,LPDWORD,LPDWORD)=NULL;
|
DWORD,LPDWORD,LPDWORD,LPDWORD)=NULL;
|
||||||
|
static NET_API_STATUS (WINAPI *pNetGetJoinInformation)(LPCWSTR,LPWSTR*,PNETSETUP_JOIN_STATUS);
|
||||||
|
|
||||||
WCHAR user_name[UNLEN + 1];
|
static WCHAR user_name[UNLEN + 1];
|
||||||
WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
|
static WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
|
||||||
|
|
||||||
static int init_wksta_tests(void)
|
static int init_wksta_tests(void)
|
||||||
{
|
{
|
||||||
|
@ -77,12 +79,17 @@ static void run_wkstausergetinfo_tests(void)
|
||||||
LPWKSTA_USER_INFO_1 ui1 = NULL;
|
LPWKSTA_USER_INFO_1 ui1 = NULL;
|
||||||
LPWKSTA_USER_INFO_1101 ui1101 = NULL;
|
LPWKSTA_USER_INFO_1101 ui1101 = NULL;
|
||||||
DWORD dwSize;
|
DWORD dwSize;
|
||||||
|
NET_API_STATUS rc;
|
||||||
|
|
||||||
/* Level 0 */
|
/* Level 0 */
|
||||||
ok(pNetWkstaUserGetInfo(NULL, 0, (LPBYTE *)&ui0) == NERR_Success,
|
rc = pNetWkstaUserGetInfo(NULL, 0, (LPBYTE *)&ui0);
|
||||||
"NetWkstaUserGetInfo is unsuccessful\n");
|
if (rc == NERR_WkstaNotStarted)
|
||||||
|
{
|
||||||
|
skip("Workstation service not running\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ok(!rc && ui0, "got %d and %p (expected NERR_Success and != NULL\n", rc, ui0);
|
||||||
|
|
||||||
ok(ui0 != NULL, "ui0 is NULL\n");
|
|
||||||
/* This failure occurred when I ran sshd as service and didn't authenticate
|
/* This failure occurred when I ran sshd as service and didn't authenticate
|
||||||
* Since the test dereferences ui0, the rest of this test is worthless
|
* Since the test dereferences ui0, the rest of this test is worthless
|
||||||
*/
|
*/
|
||||||
|
@ -166,7 +173,7 @@ static void run_wkstatransportenum_tests(void)
|
||||||
/* final check: valid return, actually get data back */
|
/* final check: valid return, actually get data back */
|
||||||
apiReturn = pNetWkstaTransportEnum(NULL, 0, &bufPtr, MAX_PREFERRED_LENGTH,
|
apiReturn = pNetWkstaTransportEnum(NULL, 0, &bufPtr, MAX_PREFERRED_LENGTH,
|
||||||
&entriesRead, &totalEntries, NULL);
|
&entriesRead, &totalEntries, NULL);
|
||||||
ok(apiReturn == NERR_Success || apiReturn == ERROR_NETWORK_UNREACHABLE,
|
ok(apiReturn == NERR_Success || apiReturn == ERROR_NETWORK_UNREACHABLE || apiReturn == NERR_WkstaNotStarted,
|
||||||
"NetWkstaTransportEnum returned %d\n", apiReturn);
|
"NetWkstaTransportEnum returned %d\n", apiReturn);
|
||||||
if (apiReturn == NERR_Success) {
|
if (apiReturn == NERR_Success) {
|
||||||
/* WKSTA_TRANSPORT_INFO_0 *transports = (WKSTA_TRANSPORT_INFO_0 *)bufPtr; */
|
/* WKSTA_TRANSPORT_INFO_0 *transports = (WKSTA_TRANSPORT_INFO_0 *)bufPtr; */
|
||||||
|
@ -179,6 +186,28 @@ static void run_wkstatransportenum_tests(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void run_wkstajoininfo_tests(void)
|
||||||
|
{
|
||||||
|
NET_API_STATUS ret;
|
||||||
|
LPWSTR buffer = NULL;
|
||||||
|
NETSETUP_JOIN_STATUS buffertype = 0xdada;
|
||||||
|
/* NT4 doesn't have this function */
|
||||||
|
if (!pNetGetJoinInformation) {
|
||||||
|
win_skip("NetGetJoinInformation not available\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = pNetGetJoinInformation(NULL, NULL, NULL);
|
||||||
|
ok(ret == ERROR_INVALID_PARAMETER, "NetJoinGetInformation returned unexpected 0x%08x\n", ret);
|
||||||
|
ok(buffertype == 0xdada, "buffertype set to unexpected value %d\n", buffertype);
|
||||||
|
|
||||||
|
ret = pNetGetJoinInformation(NULL, &buffer, &buffertype);
|
||||||
|
ok(ret == NERR_Success, "NetJoinGetInformation returned unexpected 0x%08x\n", ret);
|
||||||
|
ok(buffertype != 0xdada && buffertype != NetSetupUnknownStatus, "buffertype set to unexpected value %d\n", buffertype);
|
||||||
|
trace("workstation joined to %s with status %d\n", wine_dbgstr_w(buffer), buffertype);
|
||||||
|
pNetApiBufferFree(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(wksta)
|
START_TEST(wksta)
|
||||||
{
|
{
|
||||||
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
|
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
|
||||||
|
@ -188,6 +217,7 @@ START_TEST(wksta)
|
||||||
pNetpGetComputerName=(void*)GetProcAddress(hnetapi32,"NetpGetComputerName");
|
pNetpGetComputerName=(void*)GetProcAddress(hnetapi32,"NetpGetComputerName");
|
||||||
pNetWkstaUserGetInfo=(void*)GetProcAddress(hnetapi32,"NetWkstaUserGetInfo");
|
pNetWkstaUserGetInfo=(void*)GetProcAddress(hnetapi32,"NetWkstaUserGetInfo");
|
||||||
pNetWkstaTransportEnum=(void*)GetProcAddress(hnetapi32,"NetWkstaTransportEnum");
|
pNetWkstaTransportEnum=(void*)GetProcAddress(hnetapi32,"NetWkstaTransportEnum");
|
||||||
|
pNetGetJoinInformation=(void*)GetProcAddress(hnetapi32,"NetGetJoinInformation");
|
||||||
|
|
||||||
/* These functions were introduced with NT. It's safe to assume that
|
/* These functions were introduced with NT. It's safe to assume that
|
||||||
* if one is not available, none are.
|
* if one is not available, none are.
|
||||||
|
@ -205,6 +235,7 @@ START_TEST(wksta)
|
||||||
win_skip("Function NetpGetComputerName not available\n");
|
win_skip("Function NetpGetComputerName not available\n");
|
||||||
run_wkstausergetinfo_tests();
|
run_wkstausergetinfo_tests();
|
||||||
run_wkstatransportenum_tests();
|
run_wkstatransportenum_tests();
|
||||||
|
run_wkstajoininfo_tests();
|
||||||
}
|
}
|
||||||
|
|
||||||
FreeLibrary(hnetapi32);
|
FreeLibrary(hnetapi32);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue