mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 16:16:42 +00:00
[KMTESTS] Allocate buffer for the test list dynamically
Fixes broken test list output.
Addendum to 7c3a119d6d
. CORE-20078
This commit is contained in:
parent
fbd676f4c9
commit
21d02b8266
1 changed files with 22 additions and 5 deletions
|
@ -112,19 +112,33 @@ ListTests(
|
|||
IN BOOLEAN IncludeHidden)
|
||||
{
|
||||
DWORD Error = ERROR_SUCCESS;
|
||||
CHAR Buffer[1024];
|
||||
DWORD BytesRead;
|
||||
PCSTR TestName = Buffer;
|
||||
PSTR Buffer = NULL;
|
||||
DWORD BufferSize = 1024;
|
||||
DWORD BytesRead = BufferSize;
|
||||
PCSTR TestName;
|
||||
PCKMT_TEST TestEntry = TestList;
|
||||
PCSTR NextTestName;
|
||||
|
||||
puts("Valid test names:");
|
||||
|
||||
// get test list from driver
|
||||
if (!DeviceIoControl(KmtestHandle, IOCTL_KMTEST_GET_TESTS, NULL, 0, Buffer, sizeof Buffer, &BytesRead, NULL))
|
||||
error_goto(Error, cleanup);
|
||||
while (TRUE)
|
||||
{
|
||||
Buffer = HeapAlloc(GetProcessHeap(), 0, BufferSize);
|
||||
if (!Buffer)
|
||||
error_goto(Error, cleanup);
|
||||
|
||||
if (!DeviceIoControl(KmtestHandle, IOCTL_KMTEST_GET_TESTS, NULL, 0, Buffer, BufferSize, &BytesRead, NULL))
|
||||
error_goto(Error, cleanup);
|
||||
if (BytesRead < BufferSize)
|
||||
break;
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, Buffer);
|
||||
BufferSize *= 2;
|
||||
}
|
||||
|
||||
// output test list plus user-mode tests
|
||||
TestName = Buffer;
|
||||
while (TestEntry->TestName || *TestName)
|
||||
{
|
||||
if (!TestEntry->TestName)
|
||||
|
@ -167,6 +181,9 @@ ListTests(
|
|||
}
|
||||
|
||||
cleanup:
|
||||
if (Buffer)
|
||||
HeapFree(GetProcessHeap(), 0, Buffer);
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue