Move what's left in trunk here (1/2)
authorAleksey Bragin <aleksey@reactos.org>
Tue, 6 Mar 2007 21:44:58 +0000 (21:44 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Tue, 6 Mar 2007 21:44:58 +0000 (21:44 +0000)
svn path=/trunk/; revision=26019

13 files changed:
rostests/win32/cmd/cmd_test.rbuild [new file with mode: 0644]
rostests/win32/cmd/setup.c [new file with mode: 0644]
rostests/win32/cmd/stubs.rbuild [new file with mode: 0644]
rostests/win32/kernel32/directory.rbuild
rostests/win32/kernel32/tests/CreateFile.c [new file with mode: 0644]
rostests/win32/kernel32/tests/kernel32.rbuild [new file with mode: 0644]
rostests/win32/kernel32/tests/setup.c [new file with mode: 0644]
rostests/win32/kernel32/tests/stubs.rbuild [new file with mode: 0644]
rostests/win32/testsets.rbuild
rostests/win32/win32k/setup.c [new file with mode: 0644]
rostests/win32/win32k/stubs.rbuild [new file with mode: 0644]
rostests/win32/win32k/tests/eng-mem-1.c [new file with mode: 0644]
rostests/win32/win32k/win32k.rbuild [new file with mode: 0644]

diff --git a/rostests/win32/cmd/cmd_test.rbuild b/rostests/win32/cmd/cmd_test.rbuild
new file mode 100644 (file)
index 0000000..57cdf55
--- /dev/null
@@ -0,0 +1,18 @@
+<module name="cmd_test" type="test">
+       <include base="rtshared">.</include>
+       <include base="ReactOS">include/reactos/wine</include>
+       <include base="cmd">.</include>
+       <define name="__USE_W32API" />
+       <define name="ANONYMOUSUNIONS" />
+       <define name="_WIN32_WINNT">0x0501</define>
+       <library>rtshared</library>
+       <library>regtests</library>
+       <library>cmd_base</library>
+       <library>kernel32</library>
+       <library>advapi32</library>
+       <library>cmd_base</library>
+       <library>pseh</library>
+       <library>ntdll</library>
+       <file>setup.c</file>
+       <xi:include href="stubs.rbuild" />
+</module>
diff --git a/rostests/win32/cmd/setup.c b/rostests/win32/cmd/setup.c
new file mode 100644 (file)
index 0000000..66e28a8
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2005 Casper S. Hornstrup
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <windows.h>
+#include "regtests.h"
+
+_SetupOnce()
+{
+}
diff --git a/rostests/win32/cmd/stubs.rbuild b/rostests/win32/cmd/stubs.rbuild
new file mode 100644 (file)
index 0000000..1c964b3
--- /dev/null
@@ -0,0 +1,84 @@
+<component name="kernel32.dll">
+       <symbol>FindFirstFileA@8</symbol>
+       <symbol>GetLastError@0</symbol>
+       <symbol>FindNextFileA@8</symbol>
+       <symbol>FindClose@4</symbol>
+       <symbol>GetFileAttributesA@4</symbol>
+       <symbol>GetCurrentDirectoryA@8</symbol>
+       <symbol>GetFullPathNameA@16</symbol>
+       <symbol>CloseHandle@4</symbol>
+       <symbol>CreateFileA@28</symbol>
+       <symbol>Beep@8</symbol>
+       <symbol>LoadStringA@16</symbol>
+       <symbol>SetConsoleCP@4</symbol>
+       <symbol>SetConsoleOutputCP@4</symbol>
+       <symbol>WaitForSingleObject@8</symbol>
+       <symbol>ReadConsoleInputA@16</symbol>
+       <symbol>GetTickCount@0</symbol>
+       <symbol>GetConsoleScreenBufferInfo@8</symbol>
+       <symbol>FillConsoleOutputAttribute@20</symbol>
+       <symbol>FillConsoleOutputCharacterA@20</symbol>
+       <symbol>SetConsoleCursorPosition@8</symbol>
+       <symbol>LoadLibraryA@4</symbol>
+       <symbol>GetProcAddress@8</symbol>
+       <symbol>SetCurrentDirectoryA@4</symbol>
+       <symbol>SetConsoleMode@8</symbol>
+       <symbol>CreateProcessA@40</symbol>
+       <symbol>GetExitCodeProcess@8</symbol>
+       <symbol>GetConsoleOutputCP@0</symbol>
+       <symbol>GetTempPathA@8</symbol>
+       <symbol>GetTempFileNameA@16</symbol>
+       <symbol>GetCurrentProcess@0</symbol>
+       <symbol>DuplicateHandle@28</symbol>
+       <symbol>GetFileType@4</symbol>
+       <symbol>SetFilePointer@16</symbol>
+       <symbol>GetTimeFormatA@24</symbol>
+       <symbol>GetDateFormatA@24</symbol>
+       <symbol>GetEnvironmentVariableA@12</symbol>
+       <symbol>GenerateConsoleCtrlEvent@8</symbol>
+       <symbol>SetConsoleCtrlHandler@8</symbol>
+       <symbol>GetVersionExA@4</symbol>
+       <symbol>ExitProcess@4</symbol>
+       <symbol>GetModuleFileNameA@12</symbol>
+       <symbol>SetEnvironmentVariableA@8</symbol>
+       <symbol>SetConsoleTextAttribute@8</symbol>
+       <symbol>FlushConsoleInputBuffer@4</symbol>
+       <symbol>WriteFile@20</symbol>
+       <symbol>FormatMessageA@28</symbol>
+       <symbol>LocalFree@4</symbol>
+       <symbol>GetConsoleCP@0</symbol>
+       <symbol>GetStdHandle@4</symbol>
+       <symbol>FreeLibrary@4</symbol>
+       <symbol>SetLastError@4</symbol>
+       <symbol>SetStdHandle@8</symbol>
+       <symbol>DeleteFileA@4</symbol>
+       <symbol>FileTimeToLocalFileTime@8</symbol>
+       <symbol>GetVolumeInformationA@32</symbol>
+       <symbol>RemoveDirectoryA@4</symbol>
+       <symbol>CreateDirectoryA@8</symbol>
+       <symbol>GetLocaleInfoA@16</symbol>
+       <symbol>GlobalMemoryStatus@4</symbol>
+       <symbol>GetEnvironmentStrings@0</symbol>
+       <symbol>FreeEnvironmentStringsA@4</symbol>
+       <symbol>LocalFree</symbol>
+       <symbol>SetLocalTime@4</symbol>
+       <symbol>GetLocalTime@4</symbol>
+       <symbol>SetFileAttributesA@8</symbol>
+       <symbol>SetFileApisToOEM@0</symbol>
+       <symbol>GetConsoleMode@8</symbol>
+       <symbol>SetConsoleCursorInfo@8</symbol>
+       <symbol>ReadFile@20</symbol>
+       <symbol>SetFileTime@16</symbol>
+       <symbol>FileTimeToSystemTime@8</symbol>
+       <symbol>GetDiskFreeSpaceA@20</symbol>
+       <symbol>SetVolumeLabelA@8</symbol>
+       <symbol>SetConsoleTitleA@4</symbol>
+       <symbol>MoveFileExA@12</symbol>
+       <symbol>GetFileTime@16</symbol>
+       <symbol>Sleep@4</symbol>
+       <symbol>MoveFileA@8</symbol>
+       <symbol>CreateSemaphoreA@16</symbol>
+       <symbol>InterlockedIncrement@4</symbol>
+       <symbol>InterlockedDecrement@4</symbol>
+       <symbol>ReleaseSemaphore@12</symbol>
+</component>
index e5bf08c..76bca91 100644 (file)
@@ -4,4 +4,7 @@
 <directory name="queuetest">
        <xi:include href="queuetest/queuetest.rbuild" />
 </directory>
+<directory name="tests">
+       <xi:include href="tests/kernel32.rbuild" />
+</directory>
 </group>
diff --git a/rostests/win32/kernel32/tests/CreateFile.c b/rostests/win32/kernel32/tests/CreateFile.c
new file mode 100644 (file)
index 0000000..392ebd6
--- /dev/null
@@ -0,0 +1,129 @@
+#include <k32.h>
+
+#ifdef __GNUC__
+#include "regtests.h"
+#define NDEBUG
+#include "debug.h"
+
+#define TestFilename L"C:\\File"
+#define TestExpectedFilename L"\\??\\" TestFilename
+#define TestHandle (HANDLE) 1
+
+typedef struct
+{
+  LPCWSTR lpFileName;
+  DWORD dwDesiredAccess;
+  DWORD dwShareMode;
+  LPSECURITY_ATTRIBUTES lpSecurityAttributes;
+  DWORD dwCreationDisposition;
+  DWORD dwFlagsAndAttributes;
+  HANDLE hTemplateFile;
+} CreateFile_PARAMETERS;
+
+typedef struct
+{
+  PWCHAR ObjectName;
+  ACCESS_MASK DesiredAccess;
+  ULONG FileAttributes;
+  ULONG ShareAccess;
+  ULONG CreateDisposition;
+  ULONG CreateOptions;
+  PVOID EaBuffer;
+  ULONG EaLength;
+} NtCreateFile_PARAMETERS;
+
+typedef struct
+{
+  CreateFile_PARAMETERS CreateFileParameters;
+  NtCreateFile_PARAMETERS NtCreateFileParameters;
+} CreateFileTest_Parameters;
+
+static CreateFileTest_Parameters CreateFileTests[] =
+{
+  {
+    CreateFileParameters:
+    {
+      lpFileName: TestFilename,
+      dwDesiredAccess: GENERIC_ALL,
+       dwShareMode: FILE_SHARE_WRITE,
+       lpSecurityAttributes: NULL,
+       dwCreationDisposition: CREATE_ALWAYS,
+       dwFlagsAndAttributes: 0,
+       hTemplateFile: NULL
+    },
+    NtCreateFileParameters:
+    {
+      ObjectName: TestExpectedFilename,
+      DesiredAccess: GENERIC_ALL|SYNCHRONIZE|FILE_READ_ATTRIBUTES,
+      FileAttributes: 0,
+      ShareAccess: FILE_SHARE_WRITE,
+      CreateDisposition: FILE_OVERWRITE_IF,
+      CreateOptions: FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT,
+      NULL,
+      0
+    }
+  }
+};
+
+static CreateFileTest_Parameters *CurrentTest;
+
+static NTSTATUS STDCALL
+MockNtCreateFile(PHANDLE FileHandle,
+  ACCESS_MASK DesiredAccess,
+  POBJECT_ATTRIBUTES ObjectAttributes,
+  PIO_STATUS_BLOCK IoStatusBlock,
+  PLARGE_INTEGER AllocateSize,
+  ULONG FileAttributes,
+  ULONG ShareAccess,
+  ULONG CreateDisposition,
+  ULONG CreateOptions,
+  PVOID EaBuffer,
+  ULONG EaLength)
+{
+  _AssertEqualWideString(CurrentTest->NtCreateFileParameters.ObjectName,
+    ObjectAttributes->ObjectName->Buffer);
+  _AssertEqualValue(CurrentTest->NtCreateFileParameters.DesiredAccess, DesiredAccess);
+  _AssertEqualValue(CurrentTest->NtCreateFileParameters.FileAttributes, FileAttributes);
+  _AssertEqualValue(CurrentTest->NtCreateFileParameters.ShareAccess, ShareAccess);
+  _AssertEqualValue(CurrentTest->NtCreateFileParameters.CreateDisposition, CreateDisposition);
+  _AssertEqualValue(CurrentTest->NtCreateFileParameters.CreateOptions, CreateOptions);
+  *FileHandle = TestHandle;
+  return STATUS_SUCCESS;
+}
+
+static _HOOK NtCreateFileHooks[] =
+{
+  {"NtCreateFile", MockNtCreateFile},
+  {NULL, NULL}
+};
+
+static void TestFile()
+{
+  HANDLE FileHandle;
+  int index;
+
+  _SetHooks(NtCreateFileHooks);
+  for (index = 0; index < sizeof(CreateFileTests) / sizeof(CreateFileTests[0]); index++)
+    {
+      CurrentTest = &CreateFileTests[index];
+      FileHandle = CreateFileW(CurrentTest->CreateFileParameters.lpFileName,
+        CurrentTest->CreateFileParameters.dwDesiredAccess,
+        CurrentTest->CreateFileParameters.dwShareMode,
+        CurrentTest->CreateFileParameters.lpSecurityAttributes,
+        CurrentTest->CreateFileParameters.dwCreationDisposition,
+        CurrentTest->CreateFileParameters.dwFlagsAndAttributes,
+               CurrentTest->CreateFileParameters.hTemplateFile);
+      _AssertEqualValue(NO_ERROR, GetLastError());
+      _AssertEqualValue(TestHandle, FileHandle);
+    }
+  _UnsetAllHooks();
+}
+
+static void RunTest()
+{
+  TestFile();
+}
+
+_Dispatcher(CreatefileTest, "CreateFileW")
+
+#endif
diff --git a/rostests/win32/kernel32/tests/kernel32.rbuild b/rostests/win32/kernel32/tests/kernel32.rbuild
new file mode 100644 (file)
index 0000000..e61be6a
--- /dev/null
@@ -0,0 +1,22 @@
+<module name="kernel32_test" type="test">
+       <include base="rtshared">.</include>
+       <include base="kernel32">.</include>
+       <define name="_DISABLE_TIDENTS" />
+       <define name="_SEH_NO_NATIVE_NLG" />
+       <define name="__USE_W32API" />
+       <define name="_WIN32_WINNT">0x0502</define>
+       <define name="__NO_CTYPE_INLINES" />
+       <define name="WINVER">0x0500</define>
+       <library>rtshared</library>
+       <library>regtests</library>
+       <library>kernel32_base</library>
+       <library>pseh</library>
+       <library>intrlck</library>
+       <library>msvcrt</library>
+       <linkerflag>-lgcc</linkerflag>
+       <linkerflag>-nostartfiles</linkerflag>
+       <linkerflag>-nostdlib</linkerflag>
+       <file>setup.c</file>
+       <file>CreateFile.c</file>
+       <xi:include href="stubs.rbuild" />
+</module>
diff --git a/rostests/win32/kernel32/tests/setup.c b/rostests/win32/kernel32/tests/setup.c
new file mode 100644 (file)
index 0000000..6f154f6
--- /dev/null
@@ -0,0 +1,12 @@
+#include <k32.h>
+#include <regtests.h>
+
+int
+mainCRTStartup(int argc, char *argv[])
+{
+  return WinMain(NULL, NULL, NULL, 0);
+}
+
+_SetupOnce()
+{
+}
diff --git a/rostests/win32/kernel32/tests/stubs.rbuild b/rostests/win32/kernel32/tests/stubs.rbuild
new file mode 100644 (file)
index 0000000..7a98daf
--- /dev/null
@@ -0,0 +1,257 @@
+<component name="ntdll.dll">
+       <symbol>CsrCaptureParameterBuffer@16</symbol>
+       <symbol>CsrClientCallServer@16</symbol>
+       <symbol>CsrClientConnectToServer@0</symbol>
+       <symbol>CsrReleaseParameterBuffer@4</symbol>
+       <symbol>DbgUiContinue@8</symbol>
+       <symbol newname="RtlAllocateHeap">HeapAlloc@12</symbol>
+       <symbol newname="RtlFreeHeap">HeapFree@12</symbol>
+       <symbol>LdrAccessResource@16</symbol>
+       <symbol>LdrDisableThreadCalloutsForDll@4</symbol>
+       <symbol>LdrFindResource_U@16</symbol>
+       <symbol>LdrLoadDll@16</symbol>
+       <symbol>LdrShutdownProcess@0</symbol>
+       <symbol>LdrShutdownThread@0</symbol>
+       <symbol>LdrUnloadDll@4</symbol>
+       <symbol>NtAllocateVirtualMemory@24</symbol>
+       <symbol>NtClose@4</symbol>
+       <symbol>NtCreateDirectoryObject@12</symbol>
+       <symbol>NtCreateEvent@20</symbol>
+       <symbol>NtCreateFile@44</symbol>
+       <symbol>NtCreateKey@28</symbol>
+       <symbol>NtCreateProcess@32</symbol>
+       <symbol>NtCreateSection@28</symbol>
+       <symbol>NtDelayExecution@8</symbol>
+       <symbol>NtDeviceIoControlFile@40</symbol>
+       <symbol>NtDuplicateObject@28</symbol>
+       <symbol>NtFlushBuffersFile@8</symbol>
+       <symbol>NtFlushInstructionCache@12</symbol>
+       <symbol>NtFlushVirtualMemory@16</symbol>
+       <symbol>NtFreeVirtualMemory@16</symbol>
+       <symbol>NtFsControlFile@40</symbol>
+       <symbol>NtGetContextThread@8</symbol>
+       <symbol>NtLockVirtualMemory@16</symbol>
+       <symbol>NtOpenDirectoryObject@12</symbol>
+       <symbol>NtOpenEvent@12</symbol>
+       <symbol>NtOpenFile@24</symbol>
+       <symbol>NtOpenKey@12</symbol>
+       <symbol>NtOpenProcess@16</symbol>
+       <symbol>NtOpenSection@12</symbol>
+       <symbol>NtOpenThread@16</symbol>
+       <symbol>NtProtectVirtualMemory@20</symbol>
+       <symbol>NtPulseEvent@8</symbol>
+       <symbol>NtQueryDefaultLocale@8</symbol>
+       <symbol>NtQueryDefaultUILanguage@4</symbol>
+       <symbol>NtQueryDirectoryFile@44</symbol>
+       <symbol>NtQueryInformationFile@20</symbol>
+       <symbol>NtQueryInformationProcess@20</symbol>
+       <symbol>NtQueryInformationThread@20</symbol>
+       <symbol>NtQueryObject@20</symbol>
+       <symbol>NtQuerySystemInformation@16</symbol>
+       <symbol>NtQuerySystemTime@4</symbol>
+       <symbol>NtQueryValueKey@24</symbol>
+       <symbol>NtQueryVirtualMemory@24</symbol>
+       <symbol>NtQueryVolumeInformationFile@20</symbol>
+       <symbol>NtReadFile@36</symbol>
+       <symbol>NtReadVirtualMemory@20</symbol>
+       <symbol>NtResetEvent@8</symbol>
+       <symbol>NtResumeThread@8</symbol>
+       <symbol>NtSetContextThread@8</symbol>
+       <symbol>NtSetEvent@8</symbol>
+       <symbol>NtSetInformationFile@20</symbol>
+       <symbol>NtSetInformationObject@16</symbol>
+       <symbol>NtSetInformationProcess@16</symbol>
+       <symbol>NtSetInformationThread@16</symbol>
+       <symbol>NtSetSystemInformation@12</symbol>
+       <symbol>NtSetSystemTime@8</symbol>
+       <symbol>NtSignalAndWaitForSingleObject@16</symbol>
+       <symbol>NtSuspendThread@8</symbol>
+       <symbol>NtTerminateThread@8</symbol>
+       <symbol>NtUnlockVirtualMemory@16</symbol>
+       <symbol>NtUnmapViewOfSection@8</symbol>
+       <symbol>NtWaitForMultipleObjects@20</symbol>
+       <symbol>NtWaitForSingleObject@12</symbol>
+       <symbol>NtWriteFile@36</symbol>
+       <symbol>NtWriteVirtualMemory@20</symbol>
+       <symbol>NtYieldExecution@0</symbol>
+       <symbol>RtlAcquirePebLock@0</symbol>
+       <symbol>RtlAnsiStringToUnicodeSize@4</symbol>
+       <symbol>RtlBaseProcessStartRoutine</symbol>
+       <symbol>RtlCompactHeap@8</symbol>
+       <symbol>RtlCopyUnicodeString@8</symbol>
+       <symbol>RtlCreateHeap@24</symbol>
+       <symbol>RtlCreateProcessParameters@40</symbol>
+       <symbol>RtlCreateUnicodeString@8</symbol>
+       <symbol>RtlCreateUnicodeStringFromAsciiz@8</symbol>
+       <symbol>RtlDeleteCriticalSection@4</symbol>
+       <symbol>RtlDestroyHeap@4</symbol>
+       <symbol>RtlDestroyProcessParameters@4</symbol>
+       <symbol>RtlDoesFileExists_U@4</symbol>
+       <symbol>RtlDosPathNameToNtPathName_U@16</symbol>
+       <symbol>RtlDosSearchPath_U@24</symbol>
+       <symbol>RtlEnterCriticalSection@4</symbol>
+       <symbol>RtlExpandEnvironmentStrings_U@16</symbol>
+       <symbol>RtlFreeHeap@12</symbol>
+       <symbol>RtlGetCurrentDirectory_U@8</symbol>
+       <symbol>RtlGetFullPathName_U@16</symbol>
+       <symbol>RtlGetProcessHeaps@8</symbol>
+       <symbol>RtlImageNtHeader@4</symbol>
+       <symbol>RtlInitCodePageTable@8</symbol>
+       <symbol>RtlInitializeCriticalSection@4</symbol>
+       <symbol>RtlInitUnicodeString@8</symbol>
+       <symbol>RtlIntegerToChar@16</symbol>
+       <symbol>RtlIntegerToUnicodeString@12</symbol>
+       <symbol>RtlIsNameLegalDOS8Dot3@12</symbol>
+       <symbol>RtlLeaveCriticalSection@4</symbol>
+       <symbol>RtlLockHeap@4</symbol>
+       <symbol>RtlNtStatusToDosError@4</symbol>
+       <symbol>RtlOemStringToUnicodeSize@4</symbol>
+       <symbol>RtlOemStringToUnicodeString@12</symbol>
+       <symbol>RtlOpenCurrentUser@8</symbol>
+       <symbol>RtlQueryEnvironmentVariable_U@12</symbol>
+       <symbol>RtlRaiseException@4</symbol>
+       <symbol>RtlReAllocateHeap@16</symbol>
+       <symbol>RtlReleasePebLock@0</symbol>
+       <symbol>RtlRosCreateUserThreadVa</symbol>
+       <symbol>RtlRosExitUserThread@4</symbol>
+       <symbol>RtlSetCurrentDirectory_U@4</symbol>
+       <symbol>RtlSetEnvironmentVariable@12</symbol>
+       <symbol>RtlSetTimeZoneInformation@4</symbol>
+       <symbol>RtlTimeFieldsToTime@8</symbol>
+       <symbol>RtlTimeToTimeFields@8</symbol>
+       <symbol>RtlUnicodeStringToAnsiSize@4</symbol>
+       <symbol>RtlUnicodeStringToAnsiString@12</symbol>
+       <symbol>RtlUnicodeStringToInteger@12</symbol>
+       <symbol>RtlUnicodeStringToOemString@12</symbol>
+       <symbol>RtlUnicodeToOemN@20</symbol>
+       <symbol>RtlUnlockHeap@4</symbol>
+       <symbol>DbgPrint</symbol>
+       <symbol>LdrFindResourceDirectory_U@16</symbol>
+       <symbol>LdrGetDllHandle@16</symbol>
+       <symbol>LdrGetProcedureAddress@16</symbol>
+       <symbol>RtlCharToInteger@12</symbol>
+       <symbol>RtlUpcaseUnicodeString@12</symbol>
+       <symbol>RtlCreateTimerQueue@4</symbol>
+       <symbol>ZwAllocateVirtualMemory@24</symbol>
+       <symbol>ZwProtectVirtualMemory@20</symbol>
+       <symbol>ZwWriteVirtualMemory@20</symbol>
+       <symbol>RtlGetVersion@4</symbol>
+       <symbol>RtlVerifyVersionInfo@16</symbol>
+       <symbol>RtlNormalizeProcessParams@4</symbol>
+       <symbol>RtlDestroyEnvironment@4</symbol>
+       <symbol>NtCreateJobObject@12</symbol>
+       <symbol>NtOpenJobObject@12</symbol>
+       <symbol>NtIsProcessInJob@8</symbol>
+       <symbol>NtAssignProcessToJobObject@8</symbol>
+       <symbol>NtQueryInformationJobObject@20</symbol>
+       <symbol>NtSetInformationJobObject@16</symbol>
+       <symbol>NtTerminateJobObject@8</symbol>
+       <symbol>NtTerminateProcess@8</symbol>
+       <symbol>RtlRaiseStatus@4</symbol>
+       <symbol>RtlValidateHeap@12</symbol>
+       <symbol>RtlClearBits@12</symbol>
+       <symbol>RtlAreBitsSet@12</symbol>
+       <symbol>RtlFindClearBitsAndSet@12</symbol>
+       <symbol>NtQueueApcThread@20</symbol>
+       <symbol>NtCreateThread@32</symbol>
+       <symbol>CsrNewThread@0</symbol>
+       <symbol>CsrClientConnectToServer@20</symbol>
+       <symbol>CsrCaptureMessageBuffer@16</symbol>
+       <symbol>CsrAllocateCaptureBuffer@8</symbol>
+       <symbol>CsrFreeCaptureBuffer@4</symbol>
+       <symbol>RtlAllocateHeap@12</symbol>
+       <symbol>RtlDeleteTimerQueueEx@8</symbol>
+       <symbol>RtlDeleteTimerQueue@4</symbol>
+       <symbol>RtlCreateTimer@28</symbol>
+       <symbol>RtlDeleteTimer@12</symbol>
+       <symbol>RtlUpdateTimer@16</symbol>
+       <symbol>RtlIsTextUnicode@12</symbol>
+       <symbol>RtlCompareUnicodeString@12</symbol>
+       <symbol>RtlFindMessage@20</symbol>
+       <symbol>RtlDetermineDosPathNameType_U@4</symbol>
+       <symbol>RtlQueryProcessDebugInformation@12</symbol>
+       <symbol>RtlDestroyQueryDebugBuffer@4</symbol>
+       <symbol>RtlAllocateAndInitializeSid@44</symbol>
+       <symbol>RtlLengthSid@4</symbol>
+       <symbol>RtlCreateAcl@12</symbol>
+       <symbol>RtlAddAccessAllowedAce@16</symbol>
+       <symbol>RtlCreateSecurityDescriptor@8</symbol>
+       <symbol>RtlSetDaclSecurityDescriptor@16</symbol>
+       <symbol>RtlFreeSid@4</symbol>
+       <symbol>RtlFreeAnsiString@4</symbol>
+       <symbol>NtNotifyChangeDirectoryFile@36</symbol>
+       <symbol>NtCreateSymbolicLinkObject@16</symbol>
+       <symbol>RtlEqualUnicodeString@12</symbol>
+       <symbol>NtQueryEaFile@36</symbol>
+       <symbol>NtQueryDirectoryObject@28</symbol>
+       <symbol>NlsMbCodePageTag</symbol>
+       <symbol>NlsMbOemCodePageTag</symbol>
+       <symbol>RtlxUnicodeStringToOemSize@4</symbol>
+       <symbol>RtlMultiByteToUnicodeN@20</symbol>
+       <symbol>NtQueryFullAttributesFile@8</symbol>
+       <symbol>NtQuerySymbolicLinkObject@12</symbol>
+       <symbol>RtlPrefixUnicodeString@12</symbol>
+       <symbol>NtCreateIoCompletion@16</symbol>
+       <symbol>NtRemoveIoCompletion@20</symbol>
+       <symbol>NtSetIoCompletion@20</symbol>
+       <symbol>NtCancelIoFile@8</symbol>
+       <symbol>NtLockFile@40</symbol>
+       <symbol>NtUnlockFile@20</symbol>
+       <symbol>NtCreateMailslotFile@32</symbol>
+       <symbol>NtSetValueKey@24</symbol>
+       <symbol>NtCreateNamedPipeFile@56</symbol>
+       <symbol>NtSetVolumeInformationFile@20</symbol>
+       <symbol>RtlSizeHeap@12</symbol>
+       <symbol>NtQueryEvent@20</symbol>
+       <symbol>NtAddAtom@12</symbol>
+       <symbol>NtDeleteAtom@4</symbol>
+       <symbol>NtQueryPerformanceCounter@8</symbol>
+       <symbol>RtlUnwind@16</symbol>
+       <symbol>RtlInitializeCriticalSectionAndSpinCount@8</symbol>
+       <symbol>NtCreateTimer@16</symbol>
+       <symbol>NtOpenTimer@12</symbol>
+       <symbol>NtCreateMutant@16</symbol>
+       <symbol>NtQueryInstallUILanguage@4</symbol>
+       <symbol>NtClearEvent@4</symbol>
+       <symbol>NtOpenMutant@12</symbol>
+       <symbol>NtReleaseMutant@8</symbol>
+       <symbol>NtCreateSemaphore@20@12</symbol>
+       <symbol>NtOpenSemaphore@12</symbol>
+       <symbol>NtReleaseSemaphore@12</symbol>
+       <symbol>NtMapViewOfSection@40</symbol>
+       <symbol>RtlCreateQueryDebugBuffer@8</symbol>
+       <symbol>RtlInitAnsiString@8</symbol>
+       <symbol>RtlAnsiStringToUnicodeString@12</symbol>
+       <symbol>RtlFreeUnicodeString@4</symbol>
+       <symbol>NtCancelTimer@8</symbol>
+       <symbol>NtSetTimer@28</symbol>
+       <symbol>ZwMapViewOfSection@40</symbol>
+       <symbol>ZwOpenSection@12</symbol>
+       <symbol>ZwQuerySection@20</symbol>
+       <symbol>ZwQuerySystemInformation@16</symbol>
+       <symbol>ZwReadFile@36</symbol>
+       <symbol>ZwTerminateProcess@8</symbol>
+       <symbol>ZwClose@4</symbol>
+       <symbol>DbgUiIssueRemoteBreakin@4</symbol>
+       <symbol>NtOpenSymbolicLinkObject@12</symbol>
+       <symbol>RtlxUnicodeStringToAnsiSize@4</symbol>
+       <symbol>RtlOemToUnicodeN@20</symbol>
+       <symbol>RtlUnicodeToMultiByteN@20</symbol>
+       <symbol>NtFindAtom@12</symbol>
+       <symbol>NtQueryInformationAtom@20</symbol>
+       <symbol>RtlCreateAtomTable@8</symbol>
+       <symbol>RtlAddAtomToAtomTable@12</symbol>
+       <symbol>RtlDeleteAtomFromAtomTable@8</symbol>
+       <symbol>RtlLookupAtomInAtomTable@12</symbol>
+       <symbol>RtlQueryAtomInAtomTable@24</symbol>
+       <symbol>ZwOpenKey@12</symbol>
+       <symbol>ZwQueryValueKey@24</symbol>
+       <symbol>RtlQueryRegistryValues@20</symbol>
+       <symbol>RtlAppendUnicodeToString@8</symbol>
+       <symbol>@RtlUshortByteSwap@4</symbol>
+       <symbol>RtlAppendUnicodeStringToString@8</symbol>
+       <symbol>NtFlushKey@4</symbol>
+       <symbol>NtEnumerateValueKey@24</symbol>
+       <symbol>RtlUpcaseUnicodeChar@4</symbol>
+       <symbol>NtCreateSemaphore@20</symbol>
+</component>
index 04e434a..3e45123 100644 (file)
@@ -1,6 +1,9 @@
 <?xml version="1.0"?>
 <!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
 <group>
+<directory name="cmd">
+       <xi:include href="cmd/cmd_test.rbuild" />
+</directory>
 <directory name="kernel32">
        <xi:include href="kernel32/directory.rbuild" />
 </directory>
@@ -13,4 +16,7 @@
 <directory name="user32">
        <xi:include href="user32/user32.rbuild" />
 </directory>
+<directory name="win32k">
+       <xi:include href="win32k/win32k.rbuild" />
+</directory>
 </group>
diff --git a/rostests/win32/win32k/setup.c b/rostests/win32/win32k/setup.c
new file mode 100644 (file)
index 0000000..507484d
--- /dev/null
@@ -0,0 +1,6 @@
+#include <windows.h>
+#include "regtests.h"
+
+_SetupOnce()
+{
+}
diff --git a/rostests/win32/win32k/stubs.rbuild b/rostests/win32/win32k/stubs.rbuild
new file mode 100644 (file)
index 0000000..3fb70ed
--- /dev/null
@@ -0,0 +1,171 @@
+<component name="ntdll.dll">
+       <symbol>DbgPrint</symbol>
+       <symbol>RtlAssert@16</symbol>
+       <symbol>ZwAllocateVirtualMemory@24</symbol>
+       <symbol>RtlImageDirectoryEntryToData@16</symbol>
+       <symbol>RtlInitAnsiString@8</symbol>
+       <symbol>RtlInitUnicodeString@8</symbol>
+       <symbol>NtClose@4</symbol>
+       <symbol>ZwOpenFile@24</symbol>
+       <symbol>ZwClose@4</symbol>
+       <symbol>RtlNtStatusToDosError@4</symbol>
+       <symbol>NtW32Call@20</symbol>
+       <symbol>ZwOpenKey@12</symbol>
+       <symbol>ZwQueryValueKey@24</symbol>
+       <symbol>RtlUnicodeStringToInteger@12</symbol>
+       <symbol>RtlQueryAtomInAtomTable@24</symbol>
+       <symbol>RtlDeleteAtomFromAtomTable@8</symbol>
+       <symbol>RtlCopyUnicodeString@8</symbol>
+       <symbol>ZwRequestWaitReplyPort@12</symbol>
+       <symbol>ZwDuplicateObject@28</symbol>
+       <symbol>ZwSetSystemInformation@12</symbol>
+       <symbol>RtlLookupAtomInAtomTable@12</symbol>
+       <symbol>RtlAddAtomToAtomTable@12</symbol>
+       <symbol>RtlFreeUnicodeString@4</symbol>
+       <symbol>ZwConnectPort@32</symbol>
+       <symbol>ZwOpenProcess@16</symbol>
+       <symbol>RtlCreateUnicodeString@8</symbol>
+       <symbol>RtlQueryRegistryValues@20</symbol>
+       <symbol>RtlGetVersion@4</symbol>
+       <symbol>NtOpenFile@24</symbol>
+       <symbol>NtReadFile@36</symbol>
+       <symbol>NtWaitForSingleObject@12</symbol>
+       <symbol>NtDeviceIoControlFile@40</symbol>
+       <symbol>NtAlertThread@4</symbol>
+       <symbol>ZwQueryDefaultLocale@8</symbol>
+       <symbol>ZwFreeVirtualMemory@16</symbol>
+       <symbol>RtlFindClearBitsAndSet@12</symbol>
+       <symbol>ZwReadFile@36</symbol>
+       <symbol>RtlAnsiStringToUnicodeString@12</symbol>
+       <symbol>RtlCompareUnicodeString@12</symbol>
+       <symbol>ZwCreateDirectoryObject@12</symbol>
+       <symbol>RtlCreateAtomTable@8</symbol>
+       <symbol>RtlDestroyAtomTable@4</symbol>
+       <symbol>ZwOpenDirectoryObject@12</symbol>
+       <symbol>ZwQueryDirectoryObject@28</symbol>
+       <symbol>RtlAppendUnicodeToString@8</symbol>
+       <symbol>ZwCreateEvent@20</symbol>
+       <symbol>RtlAreBitsSet@12</symbol>
+       <symbol>RtlClearBits@12</symbol>
+       <symbol>RtlInitializeBitMap@12</symbol>
+       <symbol>RtlClearAllBits@4</symbol>
+       <symbol>RtlAppendUnicodeStringToString@8</symbol>
+       <symbol>ZwSetValueKey@24</symbol>
+       <symbol>ZwQueryDirectoryFile@44</symbol>
+       <symbol>RtlUnwind@16</symbol>
+       <symbol>NtQueryInformationFile@20</symbol>
+</component>
+<component name="ntoskrnl.exe">
+       <symbol>ExAllocatePool@8</symbol>
+       <symbol>ExFreePool@4</symbol>
+       <symbol>ExAllocatePoolWithTag@12</symbol>
+       <symbol>IoBuildDeviceIoControlRequest@36</symbol>
+       <symbol>IoBuildSynchronousFsdRequest@28</symbol>
+       <symbol>@IofCallDriver@8</symbol>
+       <symbol>KeWaitForSingleObject@20</symbol>
+       <symbol>@ExAcquireFastMutex@4</symbol>
+       <symbol>PsGetWin32Process@0</symbol>
+       <symbol>@ExReleaseFastMutex@4</symbol>
+       <symbol>@ExTryToAcquireFastMutex@4</symbol>
+       <symbol>KeInitializeEvent@12</symbol>
+       <symbol>ExEventObjectType</symbol>
+       <symbol>ObReferenceObjectByHandle@24</symbol>
+       <symbol>KeSetEvent@12</symbol>
+       <symbol>@ObfDereferenceObject@4</symbol>
+       <symbol>KeRestoreFloatingPointState@4</symbol>
+       <symbol>KeSaveFloatingPointState@4</symbol>
+       <symbol>MmSecureVirtualMemory@12</symbol>
+       <symbol>MmUnsecureVirtualMemory@4</symbol>
+       <symbol>IoGetCurrentProcess@0</symbol>
+       <symbol>KeQueryPerformanceCounter@4</symbol>
+       <symbol>ExInitializeResourceLite@4</symbol>
+       <symbol>ExAcquireResourceExclusiveLite@8</symbol>
+       <symbol>KeGetCurrentThread@0</symbol>
+       <symbol>PsGetCurrentProcessId@0</symbol>
+       <symbol>@InterlockedDecrement@4</symbol>
+       <symbol>@InterlockedExchange@8</symbol>
+       <symbol>KeBugCheck@4</symbol>
+       <symbol>ExDesktopObjectType</symbol>
+       <symbol>PsEstablishWin32Callouts@24</symbol>
+       <symbol>MmUnmapViewInSystemSpace@4</symbol>
+       <symbol>MmCreateSection@32</symbol>
+       <symbol>MmMapViewInSystemSpace@12</symbol>
+       <symbol>MmCopyToCaller@12</symbol>
+       <symbol>PsGetWin32Thread@0</symbol>
+       <symbol>KeDetachProcess@0</symbol>
+       <symbol>ExInitializePagedLookasideList@28</symbol>
+       <symbol>@InterlockedPushEntrySList@8</symbol>
+       <symbol>ExInterlockedInsertTailList@12</symbol>
+       <symbol>KeReleaseSpinLock@8</symbol>
+       <symbol>ObOpenObjectByName@28</symbol>
+       <symbol>ObOpenObjectByPointer@28</symbol>
+       <symbol>KeAcquireSpinLock@8</symbol>
+       <symbol>ExGetPreviousMode@0</symbol>
+       <symbol>PsGetCurrentThreadId@0</symbol>
+       <symbol>@ExReleaseResourceLite@4</symbol>
+       <symbol>ExIsResourceAcquiredExclusiveLite@</symbol>
+       <symbol>@InterlockedIncrement@4</symbol>
+       <symbol>@InterlockedCompareExchange@12</symbol>
+       <symbol>KeAddSystemServiceTable@20</symbol>
+       <symbol>IoFileObjectType</symbol>
+       <symbol>ObReferenceObjectByPointer@16</symbol>
+       <symbol>MmUnmapViewOfSection@8</symbol>
+       <symbol>MmCopyFromCaller@12</symbol>
+       <symbol>KiKernelApcDeliveryCheck@0</symbol>
+       <symbol>ExIsResourceAcquiredExclusiveLite@4</symbol>
+       <symbol>MmMapViewOfSection@40</symbol>
+       <symbol>KeAttachProcess@4</symbol>
+       <symbol>@InterlockedPopEntrySList@4</symbol>
+       <symbol>ExWindowStationObjectType</symbol>
+       <symbol>ObInsertObject@24</symbol>
+       <symbol>KeInitializeSpinLock@4</symbol>
+       <symbol>PsThreadType</symbol>
+       <symbol>PsCreateSystemThread@28</symbol>
+       <symbol>KeQueryTickCount@4</symbol>
+       <symbol>PsLookupThreadByThreadId@8</symbol>
+       <symbol>KeInitializeMutex@8</symbol>
+       <symbol>KeWaitForMutexObject@20</symbol>
+       <symbol>KeReleaseMutex@8</symbol>
+       <symbol>KeDelayExecutionThread@12</symbol>
+       <symbol>PsGetProcessId@4</symbol>
+       <symbol>ObCreateObject@36</symbol>
+       <symbol>KeClearEvent@4</symbol>
+       <symbol>PsLookupProcessByProcessId@8</symbol>
+       <symbol>PsProcessType</symbol>
+       <symbol>KeWaitForMultipleObjects@32</symbol>
+       <symbol>KeQuerySystemTime@4</symbol>
+       <symbol>ObReferenceObjectByName@32</symbol>
+       <symbol>HalQueryDisplayOwnership@0</symbol>
+       <symbol>IoDeviceObjectType</symbol>
+       <symbol>@KfReleaseSpinLock@8</symbol>
+       <symbol>@KfAcquireSpinLock@4</symbol>
+       <symbol>KeEnterCriticalRegion@0</symbol>
+       <symbol>KeLeaveCriticalRegion@0</symbol>
+       <symbol>KeGetCurrentIrql@0</symbol>
+       <symbol>ExFreePoolWithTag@8</symbol>
+       <symbol>PsGetProcessWin32Process@4</symbol>
+       <symbol>ObFindHandleForObject@20</symbol>
+       <symbol>PsSetProcessWin32Process@8</symbol>
+       <symbol>PsGetThreadWin32Thread@4</symbol>
+       <symbol>PsEstablishWin32Callouts@4</symbol>
+       <symbol>PsSetThreadWin32Thread@8</symbol>
+       <symbol>ProbeForRead@12</symbol>
+       <symbol>ProbeForWrite@12</symbol>
+       <symbol>@ExEnterCriticalRegionAndAcquireFastMutexUnsafe@4</symbol>
+       <symbol>@ExReleaseFastMutexUnsafeAndLeaveCriticalRegion@4</symbol>
+</component>
+<component name="freetype.dll">
+       <symbol>FT_Init_FreeType</symbol>
+       <symbol>FT_New_Memory_Face</symbol>
+       <symbol>FT_Done_Face</symbol>
+       <symbol>FT_MulFix</symbol>
+       <symbol>FT_Get_Sfnt_Table</symbol>
+       <symbol>FT_Get_First_Char</symbol>
+       <symbol>FT_Set_Pixel_Sizes</symbol>
+       <symbol>FT_Get_Char_Index</symbol>
+       <symbol>FT_Load_Glyph</symbol>
+       <symbol>FT_Get_Kerning</symbol>
+       <symbol>FT_Render_Glyph</symbol>
+       <symbol>FT_Set_Charmap</symbol>
+       <symbol>FT_Load_Sfnt_Table</symbol>
+</component>
diff --git a/rostests/win32/win32k/tests/eng-mem-1.c b/rostests/win32/win32k/tests/eng-mem-1.c
new file mode 100644 (file)
index 0000000..8aa8aec
--- /dev/null
@@ -0,0 +1,48 @@
+#include <ntddk.h>
+#include <winddi.h>
+
+#include "regtests.h"
+
+static void RunTest()
+{
+#if 0
+  VOID *pmem1, *pmem2;
+  ULONG AllocSize1, AllocSize2;
+  ULONG AllocTag1, AllocTag2;
+  HANDLE Handle1, Handle2;
+
+  /* Allocate memory with EngAllocMem */
+  pmem1 = 0;
+  AllocSize1 = 1024;
+  AllocTag1 = TAG('D','x','y','z');
+  pmem1 = EngAllocMem(FL_ZERO_MEMORY, AllocSize1, AllocTag1);
+  _AssertNotEqualValue(pmem1, NULL);
+
+  /* Allocate memory with EngAllocMem */
+  pmem2 = 0;
+  AllocSize2 = 1024;
+  AllocTag2 = TAG('D','x','y','z');
+  pmem2 = EngAllocUserMem(AllocSize2, AllocTag2);
+  _AssertNotEqualValue(pmem1, NULL);
+
+  /* Lock down memory with EngSecureMem
+  ** Dependant functions in ntoskrnl.exe are currently unimplemented
+  Handle1 = EngSecureMem(pmem1, AllocSize1);
+  _AssertNotEqualValue(pmem1, NULL);
+  Handle2 = EngSecureMem(pmem2, AllocSize2);
+  _AssertNotEqualValue(pmem2, NULL);
+
+  /* Unlock down memory with EngSecureMem
+  ** Dependant functions in ntoskrnl.exe are currently unimplemented
+  EngUnsecureMem(Handle1);
+  EngUnsecureMem(Handle2); */
+
+  /* Free memory with EngFreeMem */
+  EngFreeMem(pmem1);
+
+  /* Free memory with EngFreeUserMem */
+  EngFreeUserMem(pmem2);
+#endif
+}
+
+_Dispatcher(Eng_mem_1Test, "Win32k Engine Memory API")
diff --git a/rostests/win32/win32k/win32k.rbuild b/rostests/win32/win32k/win32k.rbuild
new file mode 100644 (file)
index 0000000..41660f1
--- /dev/null
@@ -0,0 +1,21 @@
+<module name="win32k_test" type="test">
+       <include base="rtshared">.</include>
+       <include base="win32k">.</include>
+       <include base="win32k">include</include>
+       <include base="ntoskrnl">include</include>
+       <include base="freetype">include</include>
+       <define name="UNICODE" />
+       <define name="__USE_W32API" />
+       <define name="_WIN32_WINNT">0x0501</define>
+       <define name="WINVER">0x600</define>
+       <define name="_SEH_NO_NATIVE_NLG" />
+       <define name="_WIN32K_" />
+       <library>rtshared</library>
+       <library>regtests</library>
+       <library>win32k_base</library>
+       <library>pseh</library>
+       <library>freetype</library>
+       <library>ntoskrnl</library>
+       <file>setup.c</file>
+       <xi:include href="stubs.rbuild" />
+</module>