Author: akhaldi
Date: Tue Dec 11 10:19:54 2012
New Revision: 57871
URL:
http://svn.reactos.org/svn/reactos?rev=57871&view=rev
Log:
[NETAPI32_WINETEST]: Sync with Wine 1.5.19.
Modified:
trunk/rostests/winetests/netapi32/CMakeLists.txt
trunk/rostests/winetests/netapi32/access.c
trunk/rostests/winetests/netapi32/wksta.c
Modified: trunk/rostests/winetests/netapi32/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/netapi32/CMakeL…
==============================================================================
--- trunk/rostests/winetests/netapi32/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/rostests/winetests/netapi32/CMakeLists.txt [iso-8859-1] Tue Dec 11 10:19:54
2012
@@ -1,7 +1,5 @@
-add_definitions(
- -D__ROS_LONG64__
- -D_DLL -D__USE_CRTIMP)
+add_definitions(-D__ROS_LONG64__)
list(APPEND SOURCE
access.c
Modified: trunk/rostests/winetests/netapi32/access.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/netapi32/access…
==============================================================================
--- trunk/rostests/winetests/netapi32/access.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/netapi32/access.c [iso-8859-1] Tue Dec 11 10:19:54 2012
@@ -29,8 +29,8 @@
#include "wine/test.h"
-WCHAR user_name[UNLEN + 1];
-WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
+static WCHAR user_name[UNLEN + 1];
+static WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
static const WCHAR sNonexistentUser[] =
{'N','o','n','e','x','i','s','t','e','n','t','
',
'U','s','e','r',0};
@@ -63,6 +63,8 @@
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 *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)
{
@@ -158,6 +160,7 @@
ok(rc == ERROR_BAD_NETPATH ||
rc == ERROR_NETWORK_UNREACHABLE ||
rc == RPC_S_SERVER_UNAVAILABLE ||
+ rc == NERR_WkstaNotStarted || /* workstation service not running */
rc == RPC_S_INVALID_NET_ADDR, /* Some Win7 */
"Bad Network Path: rc=%d\n",rc);
}
@@ -320,6 +323,33 @@
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)
{
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
@@ -331,6 +361,8 @@
pNetUserModalsGet=(void*)GetProcAddress(hnetapi32,"NetUserModalsGet");
pNetUserAdd=(void*)GetProcAddress(hnetapi32, "NetUserAdd");
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
* if one is not available, none are.
@@ -346,6 +378,7 @@
run_usergetinfo_tests();
run_querydisplayinformation1_tests();
run_usermodalsget_tests();
+ run_localgroupgetinfo_tests();
}
FreeLibrary(hnetapi32);
Modified: trunk/rostests/winetests/netapi32/wksta.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/netapi32/wksta.…
==============================================================================
--- trunk/rostests/winetests/netapi32/wksta.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/netapi32/wksta.c [iso-8859-1] Tue Dec 11 10:19:54 2012
@@ -31,6 +31,7 @@
#include "lmerr.h"
#include "lmwksta.h"
#include "lmapibuf.h"
+#include "lmjoin.h"
static NET_API_STATUS (WINAPI *pNetApiBufferFree)(LPVOID)=NULL;
static NET_API_STATUS (WINAPI *pNetApiBufferSize)(LPVOID,LPDWORD)=NULL;
@@ -38,9 +39,10 @@
static NET_API_STATUS (WINAPI *pNetWkstaUserGetInfo)(LPWSTR,DWORD,PBYTE*)=NULL;
static NET_API_STATUS (WINAPI *pNetWkstaTransportEnum)(LPWSTR,DWORD,LPBYTE*,
DWORD,LPDWORD,LPDWORD,LPDWORD)=NULL;
-
-WCHAR user_name[UNLEN + 1];
-WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
+static NET_API_STATUS (WINAPI
*pNetGetJoinInformation)(LPCWSTR,LPWSTR*,PNETSETUP_JOIN_STATUS);
+
+static WCHAR user_name[UNLEN + 1];
+static WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
static int init_wksta_tests(void)
{
@@ -77,12 +79,17 @@
LPWKSTA_USER_INFO_1 ui1 = NULL;
LPWKSTA_USER_INFO_1101 ui1101 = NULL;
DWORD dwSize;
+ NET_API_STATUS rc;
/* Level 0 */
- ok(pNetWkstaUserGetInfo(NULL, 0, (LPBYTE *)&ui0) == NERR_Success,
- "NetWkstaUserGetInfo is unsuccessful\n");
-
- ok(ui0 != NULL, "ui0 is NULL\n");
+ rc = pNetWkstaUserGetInfo(NULL, 0, (LPBYTE *)&ui0);
+ 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);
+
/* 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
*/
@@ -166,7 +173,7 @@
/* final check: valid return, actually get data back */
apiReturn = pNetWkstaTransportEnum(NULL, 0, &bufPtr, MAX_PREFERRED_LENGTH,
&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);
if (apiReturn == NERR_Success) {
/* WKSTA_TRANSPORT_INFO_0 *transports = (WKSTA_TRANSPORT_INFO_0 *)bufPtr; */
@@ -179,6 +186,28 @@
}
}
+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)
{
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
@@ -188,6 +217,7 @@
pNetpGetComputerName=(void*)GetProcAddress(hnetapi32,"NetpGetComputerName");
pNetWkstaUserGetInfo=(void*)GetProcAddress(hnetapi32,"NetWkstaUserGetInfo");
pNetWkstaTransportEnum=(void*)GetProcAddress(hnetapi32,"NetWkstaTransportEnum");
+
pNetGetJoinInformation=(void*)GetProcAddress(hnetapi32,"NetGetJoinInformation");
/* These functions were introduced with NT. It's safe to assume that
* if one is not available, none are.
@@ -205,6 +235,7 @@
win_skip("Function NetpGetComputerName not available\n");
run_wkstausergetinfo_tests();
run_wkstatransportenum_tests();
+ run_wkstajoininfo_tests();
}
FreeLibrary(hnetapi32);