mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 07:46:29 +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)
|
IN BOOLEAN IncludeHidden)
|
||||||
{
|
{
|
||||||
DWORD Error = ERROR_SUCCESS;
|
DWORD Error = ERROR_SUCCESS;
|
||||||
CHAR Buffer[1024];
|
PSTR Buffer = NULL;
|
||||||
DWORD BytesRead;
|
DWORD BufferSize = 1024;
|
||||||
PCSTR TestName = Buffer;
|
DWORD BytesRead = BufferSize;
|
||||||
|
PCSTR TestName;
|
||||||
PCKMT_TEST TestEntry = TestList;
|
PCKMT_TEST TestEntry = TestList;
|
||||||
PCSTR NextTestName;
|
PCSTR NextTestName;
|
||||||
|
|
||||||
puts("Valid test names:");
|
puts("Valid test names:");
|
||||||
|
|
||||||
// get test list from driver
|
// get test list from driver
|
||||||
if (!DeviceIoControl(KmtestHandle, IOCTL_KMTEST_GET_TESTS, NULL, 0, Buffer, sizeof Buffer, &BytesRead, NULL))
|
while (TRUE)
|
||||||
error_goto(Error, cleanup);
|
{
|
||||||
|
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
|
// output test list plus user-mode tests
|
||||||
|
TestName = Buffer;
|
||||||
while (TestEntry->TestName || *TestName)
|
while (TestEntry->TestName || *TestName)
|
||||||
{
|
{
|
||||||
if (!TestEntry->TestName)
|
if (!TestEntry->TestName)
|
||||||
|
@ -167,6 +181,9 @@ ListTests(
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
if (Buffer)
|
||||||
|
HeapFree(GetProcessHeap(), 0, Buffer);
|
||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue