mirror of
https://github.com/reactos/reactos.git
synced 2024-12-29 10:35:28 +00:00
[NTDLL_APITEST]
- Gracefully handle failures in NtMapViewOfSection test. CORE-9189 - Correctly handle unterminated strings in NtQueryKey test. Powered by DPH. svn path=/trunk/; revision=67370
This commit is contained in:
parent
e5533bb915
commit
bccac1a15b
2 changed files with 59 additions and 8 deletions
|
@ -236,7 +236,7 @@ Test_PageFileSection(void)
|
|||
if (!NT_SUCCESS(Status))
|
||||
return;
|
||||
|
||||
ok(BaseAddress == UlongToPtr(0x40000000), "Invalid BaseAddress: %p", BaseAddress);
|
||||
ok(BaseAddress == UlongToPtr(0x40000000), "Invalid BaseAddress: %p\n", BaseAddress);
|
||||
|
||||
BaseAddress = (PVOID)0x40080000;
|
||||
SectionOffset.QuadPart = 0x10000;
|
||||
|
@ -253,7 +253,7 @@ Test_PageFileSection(void)
|
|||
PAGE_READWRITE);
|
||||
ok_ntstatus(Status, STATUS_SUCCESS);
|
||||
|
||||
ok(BaseAddress == (PVOID)0x40080000, "Invalid BaseAddress: %p", BaseAddress);
|
||||
ok(BaseAddress == (PVOID)0x40080000, "Invalid BaseAddress: %p\n", BaseAddress);
|
||||
|
||||
/* Commit a page in the section */
|
||||
BaseAddress = (PVOID)0x40000000;
|
||||
|
@ -401,7 +401,7 @@ Test_PageFileSection(void)
|
|||
_SEH2_END;
|
||||
ok_ntstatus(Status, STATUS_SUCCESS);
|
||||
|
||||
ok(*(PULONG)BaseAddress2 == 2, "Value in memory was wrong");
|
||||
ok(*(PULONG)BaseAddress2 == 2, "Value in memory was wrong\n");
|
||||
|
||||
/* Close the mapping */
|
||||
NtUnmapViewOfSection(NtCurrentProcess(), BaseAddress);
|
||||
|
@ -444,7 +444,7 @@ Test_PageFileSection(void)
|
|||
#else
|
||||
/* WoW64 returns STATUS_INSUFFICIENT_RESOURCES */
|
||||
ok((Status == STATUS_INSUFFICIENT_RESOURCES) || (Status == STATUS_SECTION_TOO_BIG),
|
||||
"got wrong Status: 0x%lx", Status);
|
||||
"got wrong Status: 0x%lx\n", Status);
|
||||
#endif
|
||||
|
||||
/* Try to create a even huger page file backed section, but only reserved */
|
||||
|
@ -488,7 +488,7 @@ Test_PageFileSection(void)
|
|||
#else
|
||||
/* WoW64 returns STATUS_INVALID_PARAMETER_4 */
|
||||
ok((Status == STATUS_INVALID_PARAMETER_4) || (Status == STATUS_INVALID_PARAMETER_3),
|
||||
"got wrong Status: 0x%lx", Status);
|
||||
"got wrong Status: 0x%lx\n", Status);
|
||||
#endif
|
||||
|
||||
/* Pass 0 region size */
|
||||
|
@ -511,7 +511,7 @@ Test_PageFileSection(void)
|
|||
#else
|
||||
/* WoW64 returns STATUS_NO_MEMORY */
|
||||
ok((Status == STATUS_NO_MEMORY) || (Status == STATUS_INVALID_VIEW_SIZE),
|
||||
"got wrong Status: 0x%lx", Status);
|
||||
"got wrong Status: 0x%lx\n", Status);
|
||||
ok(ViewSize == 0, "wrong ViewSize: 0x%Ix\n", ViewSize);
|
||||
#endif
|
||||
|
||||
|
@ -677,6 +677,11 @@ Test_ImageSection(void)
|
|||
FILE_SHARE_READ,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT);
|
||||
ok_ntstatus(Status, STATUS_SUCCESS);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
skip("Failed to open file\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Create a data section with write access */
|
||||
Status = NtCreateSection(&DataSectionHandle,
|
||||
|
@ -687,6 +692,12 @@ Test_ImageSection(void)
|
|||
SEC_COMMIT, // AllocationAttributes
|
||||
FileHandle);
|
||||
ok_ntstatus(Status, STATUS_SUCCESS);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
skip("Failed to create data section\n");
|
||||
NtClose(FileHandle);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Map the data section as flat mapping */
|
||||
DataBase = NULL;
|
||||
|
@ -703,6 +714,13 @@ Test_ImageSection(void)
|
|||
PAGE_READWRITE);
|
||||
ok_ntstatus(Status, STATUS_SUCCESS);
|
||||
//ok(ViewSize == 0x3f95cc48, "ViewSize wrong: 0x%lx\n");
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
skip("Failed to map view of data section\n");
|
||||
NtClose(DataSectionHandle);
|
||||
NtClose(FileHandle);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check the original data */
|
||||
ok(*(ULONG*)DataBase == 0x00905a4d, "Header not ok\n");
|
||||
|
@ -725,6 +743,7 @@ Test_ImageSection(void)
|
|||
SEC_IMAGE, // AllocationAttributes
|
||||
FileHandle);
|
||||
ok_ntstatus(Status, STATUS_INVALID_IMAGE_NOT_MZ);
|
||||
if (NT_SUCCESS(Status)) NtClose(ImageSectionHandle);
|
||||
|
||||
/* Restore the original header */
|
||||
*(ULONG*)DataBase = 0x00905a4d;
|
||||
|
@ -742,6 +761,13 @@ Test_ImageSection(void)
|
|||
SEC_IMAGE, // AllocationAttributes
|
||||
FileHandle);
|
||||
ok_ntstatus(Status, STATUS_SUCCESS);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
skip("Failed to create image section\n");
|
||||
NtClose(DataSectionHandle);
|
||||
NtClose(FileHandle);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Map the image section */
|
||||
ImageBase = NULL;
|
||||
|
@ -761,6 +787,14 @@ Test_ImageSection(void)
|
|||
#else
|
||||
ok_ntstatus(Status, STATUS_IMAGE_MACHINE_TYPE_MISMATCH);
|
||||
#endif
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
skip("Failed to map view of image section\n");
|
||||
NtClose(ImageSectionHandle);
|
||||
NtClose(DataSectionHandle);
|
||||
NtClose(FileHandle);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check the header */
|
||||
ok(*(ULONG*)DataBase == 0x00905a4d, "Header not ok\n");
|
||||
|
@ -813,6 +847,13 @@ Test_ImageSection(void)
|
|||
SEC_IMAGE, // AllocationAttributes
|
||||
FileHandle);
|
||||
ok_ntstatus(Status, STATUS_SUCCESS);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
skip("Failed to create image section\n");
|
||||
NtClose(DataSectionHandle);
|
||||
NtClose(FileHandle);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Map the image section again */
|
||||
ImageBase = NULL;
|
||||
|
@ -832,6 +873,14 @@ Test_ImageSection(void)
|
|||
#else
|
||||
ok_ntstatus(Status, STATUS_IMAGE_MACHINE_TYPE_MISMATCH);
|
||||
#endif
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
skip("Failed to map view of image section\n");
|
||||
NtClose(ImageSectionHandle);
|
||||
NtClose(DataSectionHandle);
|
||||
NtClose(FileHandle);
|
||||
return;
|
||||
}
|
||||
|
||||
// This one doesn't always work, needs investigation
|
||||
/* Check the .data section again */
|
||||
|
|
|
@ -51,8 +51,9 @@ Test_KeyNameInformation(void)
|
|||
ok_size_t(InfoLength, FIELD_OFFSET(KEY_NAME_INFORMATION, Name[HKLM_Name.Length/sizeof(WCHAR)]));
|
||||
ok_size_t(NameInformation->NameLength, HKLM_Name.Length);
|
||||
|
||||
RtlInitUnicodeString(&InfoName, NameInformation->Name);
|
||||
InfoName.Buffer = NameInformation->Name;
|
||||
InfoName.Length = NameInformation->NameLength;
|
||||
InfoName.MaximumLength = NameInformation->NameLength;
|
||||
ok(RtlCompareUnicodeString(&InfoName, &HKLM_Name, TRUE) == 0, "%.*S\n",
|
||||
InfoName.Length, InfoName.Buffer);
|
||||
|
||||
|
@ -82,8 +83,9 @@ Test_KeyNameInformation(void)
|
|||
ok_size_t(InfoLength, FIELD_OFFSET(KEY_NAME_INFORMATION, Name[HKLM_Software_Name.Length/sizeof(WCHAR)]));
|
||||
ok_size_t(NameInformation->NameLength, HKLM_Software_Name.Length);
|
||||
|
||||
RtlInitUnicodeString(&InfoName, NameInformation->Name);
|
||||
InfoName.Buffer = NameInformation->Name;
|
||||
InfoName.Length = NameInformation->NameLength;
|
||||
InfoName.MaximumLength = NameInformation->NameLength;
|
||||
ok(RtlCompareUnicodeString(&InfoName, &HKLM_Software_Name, TRUE) == 0, "%.*S\n",
|
||||
InfoName.Length, InfoName.Buffer);
|
||||
|
||||
|
|
Loading…
Reference in a new issue