[NETAPI32_APITEST]
authorColin Finck <colin@reactos.org>
Mon, 26 Jun 2017 15:19:07 +0000 (15:19 +0000)
committerColin Finck <colin@reactos.org>
Mon, 26 Jun 2017 15:19:07 +0000 (15:19 +0000)
Add a simple API Test for netapi32.dll, only covering DsRoleGetPrimaryDomainInformation so far.
It succeeds in ReactOS, but outputs a heap error in the debug log. In real world applications, this later leads to a heap assertion failure.

svn path=/trunk/; revision=75208

rostests/apitests/CMakeLists.txt
rostests/apitests/netapi32/CMakeLists.txt [new file with mode: 0644]
rostests/apitests/netapi32/DsRoleGetPrimaryDomainInformation.c [new file with mode: 0644]
rostests/apitests/netapi32/testlist.c [new file with mode: 0644]

index 3999bfc..f9fd5d2 100644 (file)
@@ -20,6 +20,7 @@ endif()
 add_subdirectory(localspl)
 add_subdirectory(msgina)
 add_subdirectory(msvcrt)
 add_subdirectory(localspl)
 add_subdirectory(msgina)
 add_subdirectory(msvcrt)
+add_subdirectory(netapi32)
 add_subdirectory(netshell)
 add_subdirectory(ntdll)
 add_subdirectory(ole32)
 add_subdirectory(netshell)
 add_subdirectory(ntdll)
 add_subdirectory(ole32)
diff --git a/rostests/apitests/netapi32/CMakeLists.txt b/rostests/apitests/netapi32/CMakeLists.txt
new file mode 100644 (file)
index 0000000..78ea60d
--- /dev/null
@@ -0,0 +1,10 @@
+
+list(APPEND SOURCE
+    DsRoleGetPrimaryDomainInformation.c
+    testlist.c)
+
+add_executable(netapi32_apitest ${SOURCE})
+target_link_libraries(netapi32_apitest wine ${PSEH_LIB})
+set_module_type(netapi32_apitest win32cui)
+add_importlibs(netapi32_apitest netapi32 msvcrt kernel32 ntdll)
+add_rostests_file(TARGET netapi32_apitest)
diff --git a/rostests/apitests/netapi32/DsRoleGetPrimaryDomainInformation.c b/rostests/apitests/netapi32/DsRoleGetPrimaryDomainInformation.c
new file mode 100644 (file)
index 0000000..6b1a31b
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * PROJECT:     ReactOS netapi32.dll API Tests
+ * LICENSE:     GNU GPLv2 or any later version as published by the Free Software Foundation
+ * PURPOSE:     Tests for DsRoleGetPrimaryDomainInformation
+ * COPYRIGHT:   Copyright 2017 Colin Finck <colin@reactos.org>
+ */
+
+#include <apitest.h>
+
+#define WIN32_NO_STATUS
+#include <windef.h>
+#include <winbase.h>
+#include <dsrole.h>
+
+START_TEST(DsRoleGetPrimaryDomainInformation)
+{
+    DWORD dwErrorCode;
+    PDSROLE_PRIMARY_DOMAIN_INFO_BASIC pInfo = NULL;
+
+    // Get information about the domain membership of this computer.
+    dwErrorCode = DsRoleGetPrimaryDomainInformation(NULL, DsRolePrimaryDomainInfoBasic, (PBYTE*)&pInfo);
+    ok(dwErrorCode == ERROR_SUCCESS, "DsRoleGetPrimaryDomainInformation returns %lu!\n", dwErrorCode);
+    ok(pInfo->MachineRole >= DsRole_RoleStandaloneWorkstation && pInfo->MachineRole <= DsRole_RolePrimaryDomainController, "pInfo->MachineRole is %lu!\n", pInfo->MachineRole);
+
+    if (pInfo)
+        DsRoleFreeMemory(pInfo);
+}
diff --git a/rostests/apitests/netapi32/testlist.c b/rostests/apitests/netapi32/testlist.c
new file mode 100644 (file)
index 0000000..71249eb
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * PROJECT:     ReactOS netapi32.dll API Tests
+ * LICENSE:     GNU GPLv2 or any later version as published by the Free Software Foundation
+ * PURPOSE:     Test list
+ * COPYRIGHT:   Copyright 2017 Colin Finck <colin@reactos.org>
+ */
+
+#define __ROS_LONG64__
+
+#define STANDALONE
+#include <apitest.h>
+
+extern void func_DsRoleGetPrimaryDomainInformation(void);
+
+const struct test winetest_testlist[] =
+{
+    { "DsRoleGetPrimaryDomainInformation", func_DsRoleGetPrimaryDomainInformation },
+
+    { 0, 0 }
+};