--- /dev/null
+<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>
--- /dev/null
+/*
+ * 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()
+{
+}
--- /dev/null
+<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>
<directory name="queuetest">
<xi:include href="queuetest/queuetest.rbuild" />
</directory>
+<directory name="tests">
+ <xi:include href="tests/kernel32.rbuild" />
+</directory>
</group>
--- /dev/null
+#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
--- /dev/null
+<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>
--- /dev/null
+#include <k32.h>
+#include <regtests.h>
+
+int
+mainCRTStartup(int argc, char *argv[])
+{
+ return WinMain(NULL, NULL, NULL, 0);
+}
+
+_SetupOnce()
+{
+}
--- /dev/null
+<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>
<?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>
<directory name="user32">
<xi:include href="user32/user32.rbuild" />
</directory>
+<directory name="win32k">
+ <xi:include href="win32k/win32k.rbuild" />
+</directory>
</group>
--- /dev/null
+#include <windows.h>
+#include "regtests.h"
+
+_SetupOnce()
+{
+}
--- /dev/null
+<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>
--- /dev/null
+#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")
--- /dev/null
+<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>