Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
ff9ce43c
Commit
ff9ce43c
authored
Jul 17, 2020
by
Zebediah Figura
Committed by
Alexandre Julliard
Jul 20, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll/tests: Make info.c less verbose by default.
Signed-off-by:
Zebediah Figura
<
z.figura12@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
17785690
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
177 deletions
+53
-177
info.c
dlls/ntdll/tests/info.c
+53
-177
No files found.
dlls/ntdll/tests/info.c
View file @
ff9ce43c
...
...
@@ -116,40 +116,34 @@ static void test_query_basic(void)
*/
/* Use a nonexistent info class */
trace
(
"Check nonexistent info class
\n
"
);
status
=
pNtQuerySystemInformation
(
-
1
,
NULL
,
0
,
NULL
);
ok
(
status
==
STATUS_INVALID_INFO_CLASS
||
status
==
STATUS_NOT_IMPLEMENTED
/* vista */
,
"Expected STATUS_INVALID_INFO_CLASS or STATUS_NOT_IMPLEMENTED, got %08x
\n
"
,
status
);
/* Use an existing class but with a zero-length buffer */
trace
(
"Check zero-length buffer
\n
"
);
status
=
pNtQuerySystemInformation
(
SystemBasicInformation
,
NULL
,
0
,
NULL
);
ok
(
status
==
STATUS_INFO_LENGTH_MISMATCH
,
"Expected STATUS_INFO_LENGTH_MISMATCH, got %08x
\n
"
,
status
);
/* Use an existing class, correct length but no SystemInformation buffer */
trace
(
"Check no SystemInformation buffer
\n
"
);
status
=
pNtQuerySystemInformation
(
SystemBasicInformation
,
NULL
,
sizeof
(
sbi
),
NULL
);
ok
(
status
==
STATUS_ACCESS_VIOLATION
||
status
==
STATUS_INVALID_PARAMETER
/* vista */
,
"Expected STATUS_ACCESS_VIOLATION or STATUS_INVALID_PARAMETER, got %08x
\n
"
,
status
);
/* Use an existing class, correct length, a pointer to a buffer but no ReturnLength pointer */
trace
(
"Check no ReturnLength pointer
\n
"
);
status
=
pNtQuerySystemInformation
(
SystemBasicInformation
,
&
sbi
,
sizeof
(
sbi
),
NULL
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
/* Check a too large buffer size */
trace
(
"Check a too large buffer size
\n
"
);
status
=
pNtQuerySystemInformation
(
SystemBasicInformation
,
&
sbi
,
sizeof
(
sbi
)
*
2
,
&
ReturnLength
);
ok
(
status
==
STATUS_INFO_LENGTH_MISMATCH
,
"Expected STATUS_INFO_LENGTH_MISMATCH, got %08x
\n
"
,
status
);
/* Finally some correct calls */
trace
(
"Check with correct parameters
\n
"
);
status
=
pNtQuerySystemInformation
(
SystemBasicInformation
,
&
sbi
,
sizeof
(
sbi
),
&
ReturnLength
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
ok
(
sizeof
(
sbi
)
==
ReturnLength
,
"Inconsistent length %d
\n
"
,
ReturnLength
);
/* Check if we have some return values */
trace
(
"Number of Processors : %d
\n
"
,
sbi
.
NumberOfProcessors
);
if
(
winetest_debug
>
1
)
trace
(
"Number of Processors : %d
\n
"
,
sbi
.
NumberOfProcessors
);
ok
(
sbi
.
NumberOfProcessors
>
0
,
"Expected more than 0 processors, got %d
\n
"
,
sbi
.
NumberOfProcessors
);
memset
(
&
sbi2
,
0
,
sizeof
(
sbi2
));
...
...
@@ -196,7 +190,7 @@ static void test_query_cpu(void)
ok
(
sizeof
(
sci
)
==
ReturnLength
,
"Inconsistent length %d
\n
"
,
ReturnLength
);
/* Check if we have some return values */
trace
(
"Processor FeatureSet : %08x
\n
"
,
sci
.
FeatureSet
);
if
(
winetest_debug
>
1
)
trace
(
"Processor FeatureSet : %08x
\n
"
,
sci
.
FeatureSet
);
ok
(
sci
.
FeatureSet
!=
0
,
"Expected some features for this processor, got %08x
\n
"
,
sci
.
FeatureSet
);
}
...
...
@@ -270,7 +264,7 @@ static void test_query_timeofday(void)
ok
(
sizeof
(
sti
)
==
ReturnLength
,
"Inconsistent length %d
\n
"
,
ReturnLength
);
/* Check if we have some return values */
trace
(
"uCurrentTimeZoneId : (%d)
\n
"
,
sti
.
uCurrentTimeZoneId
);
if
(
winetest_debug
>
1
)
trace
(
"uCurrentTimeZoneId : (%d)
\n
"
,
sti
.
uCurrentTimeZoneId
);
}
static
void
test_query_process
(
void
)
...
...
@@ -355,8 +349,7 @@ static void test_query_process(void)
spi
=
(
SYSTEM_PROCESS_INFORMATION_PRIVATE
*
)((
char
*
)
spi
+
spi
->
NextEntryOffset
);
}
trace
(
"Total number of running processes : %d
\n
"
,
i
);
trace
(
"Total number of running threads : %d
\n
"
,
k
);
if
(
winetest_debug
>
1
)
trace
(
"%u processes, %u threads
\n
"
,
i
,
k
);
if
(
one_before_last_pid
==
0
)
one_before_last_pid
=
last_pid
;
...
...
@@ -844,6 +837,12 @@ static void test_query_logicalprocex(void)
ex
=
(
void
*
)(((
char
*
)
infoex
)
+
i
);
ok
(
ex
->
Size
,
"%u: got size 0
\n
"
,
i
);
if
(
winetest_debug
<=
1
)
{
i
+=
ex
->
Size
;
continue
;
}
trace
(
"infoex[%u].Size: %u
\n
"
,
i
,
ex
->
Size
);
switch
(
ex
->
Relationship
)
{
...
...
@@ -1033,18 +1032,21 @@ static void test_query_battery(void)
}
ok
(
status
==
STATUS_SUCCESS
,
"expected success
\n
"
);
trace
(
"Battery state:
\n
"
);
trace
(
"AcOnLine : %u
\n
"
,
bs
.
AcOnLine
);
trace
(
"BatteryPresent : %u
\n
"
,
bs
.
BatteryPresent
);
trace
(
"Charging : %u
\n
"
,
bs
.
Charging
);
trace
(
"Discharging : %u
\n
"
,
bs
.
Discharging
);
trace
(
"Tag : %u
\n
"
,
bs
.
Tag
);
trace
(
"MaxCapacity : %u
\n
"
,
bs
.
MaxCapacity
);
trace
(
"RemainingCapacity : %u
\n
"
,
bs
.
RemainingCapacity
);
trace
(
"Rate : %d
\n
"
,
(
LONG
)
bs
.
Rate
);
trace
(
"EstimatedTime : %u
\n
"
,
bs
.
EstimatedTime
);
trace
(
"DefaultAlert1 : %u
\n
"
,
bs
.
DefaultAlert1
);
trace
(
"DefaultAlert2 : %u
\n
"
,
bs
.
DefaultAlert2
);
if
(
winetest_debug
>
1
)
{
trace
(
"Battery state:
\n
"
);
trace
(
"AcOnLine : %u
\n
"
,
bs
.
AcOnLine
);
trace
(
"BatteryPresent : %u
\n
"
,
bs
.
BatteryPresent
);
trace
(
"Charging : %u
\n
"
,
bs
.
Charging
);
trace
(
"Discharging : %u
\n
"
,
bs
.
Discharging
);
trace
(
"Tag : %u
\n
"
,
bs
.
Tag
);
trace
(
"MaxCapacity : %u
\n
"
,
bs
.
MaxCapacity
);
trace
(
"RemainingCapacity : %u
\n
"
,
bs
.
RemainingCapacity
);
trace
(
"Rate : %d
\n
"
,
(
LONG
)
bs
.
Rate
);
trace
(
"EstimatedTime : %u
\n
"
,
bs
.
EstimatedTime
);
trace
(
"DefaultAlert1 : %u
\n
"
,
bs
.
DefaultAlert1
);
trace
(
"DefaultAlert2 : %u
\n
"
,
bs
.
DefaultAlert2
);
}
ok
(
bs
.
MaxCapacity
>=
bs
.
RemainingCapacity
,
"expected MaxCapacity %u to be greater than or equal to RemainingCapacity %u
\n
"
,
...
...
@@ -1172,7 +1174,6 @@ static void test_query_process_wow64(void)
pbi
[
0
]
=
pbi
[
1
]
=
dummy
;
status
=
pNtQueryInformationProcess
(
GetCurrentProcess
(),
ProcessWow64Information
,
pbi
,
sizeof
(
ULONG_PTR
),
NULL
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
trace
(
"Platform is_wow64 %d, ProcessInformation of ProcessWow64Information %lx
\n
"
,
is_wow64
,
pbi
[
0
]);
ok
(
is_wow64
==
(
pbi
[
0
]
!=
0
),
"is_wow64 %x, pbi[0] %lx
\n
"
,
is_wow64
,
pbi
[
0
]);
ok
(
pbi
[
0
]
!=
dummy
,
"pbi[0] %lx
\n
"
,
pbi
[
0
]);
ok
(
pbi
[
1
]
==
dummy
,
"pbi[1] changed to %lx
\n
"
,
pbi
[
1
]);
...
...
@@ -1231,52 +1232,35 @@ static void test_query_process_basic(void)
* every information class
*/
/* Use a nonexistent info class */
trace
(
"Check nonexistent info class
\n
"
);
status
=
pNtQueryInformationProcess
(
NULL
,
-
1
,
NULL
,
0
,
NULL
);
ok
(
status
==
STATUS_INVALID_INFO_CLASS
||
status
==
STATUS_NOT_IMPLEMENTED
/* vista */
,
"Expected STATUS_INVALID_INFO_CLASS or STATUS_NOT_IMPLEMENTED, got %08x
\n
"
,
status
);
/* Do not give a handle and buffer */
trace
(
"Check NULL handle and buffer and zero-length buffersize
\n
"
);
status
=
pNtQueryInformationProcess
(
NULL
,
ProcessBasicInformation
,
NULL
,
0
,
NULL
);
ok
(
status
==
STATUS_INFO_LENGTH_MISMATCH
,
"Expected STATUS_INFO_LENGTH_MISMATCH, got %08x
\n
"
,
status
);
/* Use a correct info class and buffer size, but still no handle and buffer */
trace
(
"Check NULL handle and buffer
\n
"
);
status
=
pNtQueryInformationProcess
(
NULL
,
ProcessBasicInformation
,
NULL
,
sizeof
(
pbi
),
NULL
);
ok
(
status
==
STATUS_ACCESS_VIOLATION
||
status
==
STATUS_INVALID_HANDLE
,
"Expected STATUS_ACCESS_VIOLATION or STATUS_INVALID_HANDLE(W2K3), got %08x
\n
"
,
status
);
/* Use a correct info class and buffer size, but still no handle */
trace
(
"Check NULL handle
\n
"
);
status
=
pNtQueryInformationProcess
(
NULL
,
ProcessBasicInformation
,
&
pbi
,
sizeof
(
pbi
),
NULL
);
ok
(
status
==
STATUS_INVALID_HANDLE
,
"Expected STATUS_INVALID_HANDLE, got %08x
\n
"
,
status
);
/* Use a greater buffer size */
trace
(
"Check NULL handle and too large buffersize
\n
"
);
status
=
pNtQueryInformationProcess
(
NULL
,
ProcessBasicInformation
,
&
pbi
,
sizeof
(
pbi
)
*
2
,
NULL
);
ok
(
status
==
STATUS_INFO_LENGTH_MISMATCH
,
"Expected STATUS_INFO_LENGTH_MISMATCH, got %08x
\n
"
,
status
);
/* Use no ReturnLength */
trace
(
"Check NULL ReturnLength
\n
"
);
status
=
pNtQueryInformationProcess
(
GetCurrentProcess
(),
ProcessBasicInformation
,
&
pbi
,
sizeof
(
pbi
),
NULL
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
/* Finally some correct calls */
trace
(
"Check with correct parameters
\n
"
);
status
=
pNtQueryInformationProcess
(
GetCurrentProcess
(),
ProcessBasicInformation
,
&
pbi
,
sizeof
(
pbi
),
&
ReturnLength
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
ok
(
sizeof
(
pbi
)
==
ReturnLength
,
"Inconsistent length %d
\n
"
,
ReturnLength
);
/* Everything is correct except a too large buffersize */
trace
(
"Too large buffersize
\n
"
);
status
=
pNtQueryInformationProcess
(
GetCurrentProcess
(),
ProcessBasicInformation
,
&
pbi
,
sizeof
(
pbi
)
*
2
,
&
ReturnLength
);
ok
(
status
==
STATUS_INFO_LENGTH_MISMATCH
,
"Expected STATUS_INFO_LENGTH_MISMATCH, got %08x
\n
"
,
status
);
ok
(
sizeof
(
pbi
)
==
ReturnLength
,
"Inconsistent length %d
\n
"
,
ReturnLength
);
/* Check if we have some return values */
trace
(
"ProcessID : %lx
\n
"
,
pbi
.
UniqueProcessId
);
if
(
winetest_debug
>
1
)
trace
(
"ProcessID : %lx
\n
"
,
pbi
.
UniqueProcessId
);
ok
(
pbi
.
UniqueProcessId
>
0
,
"Expected a ProcessID > 0, got 0
\n
"
);
}
...
...
@@ -1325,7 +1309,8 @@ static void test_query_process_vm(void)
todo_wine
ok
(
ReturnLength
==
sizeof
(
VM_COUNTERS
),
"wrong size %d
\n
"
,
ReturnLength
);
/* Check if we have some return values */
dump_vm_counters
(
"VM counters for GetCurrentProcess"
,
&
pvi
);
if
(
winetest_debug
>
1
)
dump_vm_counters
(
"VM counters for GetCurrentProcess"
,
&
pvi
);
ok
(
pvi
.
WorkingSetSize
>
0
,
"Expected a WorkingSetSize > 0
\n
"
);
ok
(
pvi
.
PagefileUsage
>
0
,
"Expected a PagefileUsage > 0
\n
"
);
...
...
@@ -1346,7 +1331,8 @@ static void test_query_process_vm(void)
ok
(
pvi
.
PrivateUsage
==
pvi
.
PagefileUsage
,
"wrong value %lu/%lu
\n
"
,
pvi
.
PrivateUsage
,
pvi
.
PagefileUsage
);
/* Check if we have some return values */
dump_vm_counters
(
"VM counters for GetCurrentProcessId"
,
&
pvi
);
if
(
winetest_debug
>
1
)
dump_vm_counters
(
"VM counters for GetCurrentProcessId"
,
&
pvi
);
ok
(
pvi
.
WorkingSetSize
>
0
,
"Expected a WorkingSetSize > 0
\n
"
);
ok
(
pvi
.
PagefileUsage
>
0
,
"Expected a PagefileUsage > 0
\n
"
);
...
...
@@ -1424,7 +1410,7 @@ static void test_query_process_io(void)
ok
(
sizeof
(
pii
)
==
ReturnLength
,
"Inconsistent length %d
\n
"
,
ReturnLength
);
/* Check if we have some return values */
trace
(
"OtherOperationCount : 0x%s
\n
"
,
wine_dbgstr_longlong
(
pii
.
OtherOperationCount
));
if
(
winetest_debug
>
1
)
trace
(
"OtherOperationCount : 0x%s
\n
"
,
wine_dbgstr_longlong
(
pii
.
OtherOperationCount
));
todo_wine
{
ok
(
pii
.
OtherOperationCount
>
0
,
"Expected an OtherOperationCount > 0
\n
"
);
...
...
@@ -1452,9 +1438,8 @@ static void test_query_process_times(void)
process
=
OpenProcess
(
PROCESS_QUERY_INFORMATION
,
FALSE
,
one_before_last_pid
);
if
(
!
process
)
{
trace
(
"Could not open process with ID : %d, error : %u. Going to use current one.
\n
"
,
one_before_last_pid
,
GetLastError
());
if
(
winetest_debug
>
1
)
trace
(
"Could not open process with ID : %d, error : %u. Going to use current one.
\n
"
,
one_before_last_pid
,
GetLastError
());
process
=
GetCurrentProcess
();
trace
(
"ProcessTimes for current process
\n
"
);
}
else
trace
(
"ProcessTimes for process with ID : %d
\n
"
,
one_before_last_pid
);
...
...
@@ -1466,19 +1451,19 @@ static void test_query_process_times(void)
FileTimeToSystemTime
((
const
FILETIME
*
)
&
spti
.
CreateTime
,
&
UTC
);
SystemTimeToTzSpecificLocalTime
(
NULL
,
&
UTC
,
&
Local
);
trace
(
"CreateTime : %02d/%02d/%04d %02d:%02d:%02d
\n
"
,
Local
.
wMonth
,
Local
.
wDay
,
Local
.
wYear
,
if
(
winetest_debug
>
1
)
trace
(
"CreateTime : %02d/%02d/%04d %02d:%02d:%02d
\n
"
,
Local
.
wMonth
,
Local
.
wDay
,
Local
.
wYear
,
Local
.
wHour
,
Local
.
wMinute
,
Local
.
wSecond
);
FileTimeToSystemTime
((
const
FILETIME
*
)
&
spti
.
ExitTime
,
&
UTC
);
SystemTimeToTzSpecificLocalTime
(
NULL
,
&
UTC
,
&
Local
);
trace
(
"ExitTime : %02d/%02d/%04d %02d:%02d:%02d
\n
"
,
Local
.
wMonth
,
Local
.
wDay
,
Local
.
wYear
,
if
(
winetest_debug
>
1
)
trace
(
"ExitTime : %02d/%02d/%04d %02d:%02d:%02d
\n
"
,
Local
.
wMonth
,
Local
.
wDay
,
Local
.
wYear
,
Local
.
wHour
,
Local
.
wMinute
,
Local
.
wSecond
);
FileTimeToSystemTime
((
const
FILETIME
*
)
&
spti
.
KernelTime
,
&
Local
);
trace
(
"KernelTime : %02d:%02d:%02d.%03d
\n
"
,
Local
.
wHour
,
Local
.
wMinute
,
Local
.
wSecond
,
Local
.
wMilliseconds
);
if
(
winetest_debug
>
1
)
trace
(
"KernelTime : %02d:%02d:%02d.%03d
\n
"
,
Local
.
wHour
,
Local
.
wMinute
,
Local
.
wSecond
,
Local
.
wMilliseconds
);
FileTimeToSystemTime
((
const
FILETIME
*
)
&
spti
.
UserTime
,
&
Local
);
trace
(
"UserTime : %02d:%02d:%02d.%03d
\n
"
,
Local
.
wHour
,
Local
.
wMinute
,
Local
.
wSecond
,
Local
.
wMilliseconds
);
if
(
winetest_debug
>
1
)
trace
(
"UserTime : %02d:%02d:%02d.%03d
\n
"
,
Local
.
wHour
,
Local
.
wMinute
,
Local
.
wSecond
,
Local
.
wMilliseconds
);
status
=
pNtQueryInformationProcess
(
GetCurrentProcess
(),
ProcessTimes
,
&
spti
,
sizeof
(
spti
)
*
2
,
&
ReturnLength
);
ok
(
status
==
STATUS_INFO_LENGTH_MISMATCH
,
"Expected STATUS_INFO_LENGTH_MISMATCH, got %08x
\n
"
,
status
);
...
...
@@ -1616,10 +1601,9 @@ static void test_query_process_handlecount(void)
{
trace
(
"Could not open process with ID : %d, error : %u. Going to use current one.
\n
"
,
one_before_last_pid
,
GetLastError
());
process
=
GetCurrentProcess
();
trace
(
"ProcessHandleCount for current process
\n
"
);
}
else
trace
(
"ProcessHandleCount for process with ID : %d
\n
"
,
one_before_last_pid
);
if
(
winetest_debug
>
1
)
trace
(
"ProcessHandleCount for process with ID : %d
\n
"
,
one_before_last_pid
);
status
=
pNtQueryInformationProcess
(
process
,
ProcessHandleCount
,
&
handlecount
,
sizeof
(
handlecount
),
&
ReturnLength
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
...
...
@@ -1632,7 +1616,7 @@ static void test_query_process_handlecount(void)
ok
(
sizeof
(
handlecount
)
==
ReturnLength
,
"Inconsistent length %d
\n
"
,
ReturnLength
);
/* Check if we have some return values */
trace
(
"HandleCount : %d
\n
"
,
handlecount
);
if
(
winetest_debug
>
1
)
trace
(
"HandleCount : %d
\n
"
,
handlecount
);
todo_wine
{
ok
(
handlecount
>
0
,
"Expected some handles, got 0
\n
"
);
...
...
@@ -2031,7 +2015,7 @@ static void test_mapprotection(void)
return
;
}
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
trace
(
"Process execute flags %08x
\n
"
,
oldflags
);
if
(
winetest_debug
>
1
)
trace
(
"Process execute flags %08x
\n
"
,
oldflags
);
if
(
!
(
oldflags
&
MEM_EXECUTE_OPTION_ENABLE
))
{
...
...
@@ -2080,9 +2064,9 @@ static void test_mapprotection(void)
#else
ok
(
0
,
"Add a return opcode for your architecture or expect a crash in this test
\n
"
);
#endif
trace
(
"trying to execute code in the readwrite only mapped anon file...
\n
"
);
if
(
winetest_debug
>
1
)
trace
(
"trying to execute code in the readwrite only mapped anon file...
\n
"
);
f
=
addr
;
f
();
trace
(
"...done.
\n
"
);
if
(
winetest_debug
>
1
)
trace
(
"...done.
\n
"
);
status
=
pNtQueryVirtualMemory
(
GetCurrentProcess
(),
addr
,
MemoryBasicInformation
,
&
info
,
sizeof
(
info
),
&
retlen
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
...
...
@@ -2110,7 +2094,6 @@ static void test_queryvirtualmemory(void)
void
*
user_shared_data
=
(
void
*
)
0x7ffe0000
;
module
=
GetModuleHandleA
(
"ntdll.dll"
);
trace
(
"Check flags of the PE header of NTDLL.DLL at %p
\n
"
,
module
);
status
=
pNtQueryVirtualMemory
(
NtCurrentProcess
(),
module
,
MemoryBasicInformation
,
&
mbi
,
sizeof
(
MEMORY_BASIC_INFORMATION
),
&
readcount
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
ok
(
readcount
==
sizeof
(
MEMORY_BASIC_INFORMATION
),
"Expected to read %d bytes, got %ld
\n
"
,(
int
)
sizeof
(
MEMORY_BASIC_INFORMATION
),
readcount
);
...
...
@@ -2120,7 +2103,6 @@ static void test_queryvirtualmemory(void)
ok
(
mbi
.
Protect
==
PAGE_READONLY
,
"mbi.Protect is 0x%x, expected 0x%x
\n
"
,
mbi
.
Protect
,
PAGE_READONLY
);
ok
(
mbi
.
Type
==
MEM_IMAGE
,
"mbi.Type is 0x%x, expected 0x%x
\n
"
,
mbi
.
Type
,
MEM_IMAGE
);
trace
(
"Check flags of a function entry in NTDLL.DLL at %p
\n
"
,
pNtQueryVirtualMemory
);
module
=
GetModuleHandleA
(
"ntdll.dll"
);
status
=
pNtQueryVirtualMemory
(
NtCurrentProcess
(),
pNtQueryVirtualMemory
,
MemoryBasicInformation
,
&
mbi
,
sizeof
(
MEMORY_BASIC_INFORMATION
),
&
readcount
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
...
...
@@ -2130,7 +2112,6 @@ static void test_queryvirtualmemory(void)
ok
(
mbi
.
State
==
MEM_COMMIT
,
"mbi.State is 0x%x, expected 0x%x
\n
"
,
mbi
.
State
,
MEM_COMMIT
);
ok
(
mbi
.
Protect
==
PAGE_EXECUTE_READ
,
"mbi.Protect is 0x%x, expected 0x%x
\n
"
,
mbi
.
Protect
,
PAGE_EXECUTE_READ
);
trace
(
"Check flags of heap at %p
\n
"
,
GetProcessHeap
());
status
=
pNtQueryVirtualMemory
(
NtCurrentProcess
(),
GetProcessHeap
(),
MemoryBasicInformation
,
&
mbi
,
sizeof
(
MEMORY_BASIC_INFORMATION
),
&
readcount
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
ok
(
readcount
==
sizeof
(
MEMORY_BASIC_INFORMATION
),
"Expected to read %d bytes, got %ld
\n
"
,(
int
)
sizeof
(
MEMORY_BASIC_INFORMATION
),
readcount
);
...
...
@@ -2140,7 +2121,6 @@ static void test_queryvirtualmemory(void)
ok
(
mbi
.
Protect
==
PAGE_READWRITE
||
mbi
.
Protect
==
PAGE_EXECUTE_READWRITE
,
"mbi.Protect is 0x%x
\n
"
,
mbi
.
Protect
);
trace
(
"Check flags of stack at %p
\n
"
,
stackbuf
);
status
=
pNtQueryVirtualMemory
(
NtCurrentProcess
(),
stackbuf
,
MemoryBasicInformation
,
&
mbi
,
sizeof
(
MEMORY_BASIC_INFORMATION
),
&
readcount
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
ok
(
readcount
==
sizeof
(
MEMORY_BASIC_INFORMATION
),
"Expected to read %d bytes, got %ld
\n
"
,(
int
)
sizeof
(
MEMORY_BASIC_INFORMATION
),
readcount
);
...
...
@@ -2148,7 +2128,6 @@ static void test_queryvirtualmemory(void)
ok
(
mbi
.
State
==
MEM_COMMIT
,
"mbi.State is 0x%x, expected 0x%x
\n
"
,
mbi
.
State
,
MEM_COMMIT
);
ok
(
mbi
.
Protect
==
PAGE_READWRITE
,
"mbi.Protect is 0x%x, expected 0x%x
\n
"
,
mbi
.
Protect
,
PAGE_READWRITE
);
trace
(
"Check flags of read-only data at %p
\n
"
,
teststring
);
module
=
GetModuleHandleA
(
NULL
);
status
=
pNtQueryVirtualMemory
(
NtCurrentProcess
(),
teststring
,
MemoryBasicInformation
,
&
mbi
,
sizeof
(
MEMORY_BASIC_INFORMATION
),
&
readcount
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
...
...
@@ -2158,7 +2137,6 @@ static void test_queryvirtualmemory(void)
ok
(
mbi
.
State
==
MEM_COMMIT
,
"mbi.State is 0x%x, expected 0x%X
\n
"
,
mbi
.
State
,
MEM_COMMIT
);
ok
(
mbi
.
Protect
==
PAGE_READONLY
,
"mbi.Protect is 0x%x, expected 0x%X
\n
"
,
mbi
.
Protect
,
PAGE_READONLY
);
trace
(
"Check flags of read-write data at %p
\n
"
,
datatestbuf
);
status
=
pNtQueryVirtualMemory
(
NtCurrentProcess
(),
datatestbuf
,
MemoryBasicInformation
,
&
mbi
,
sizeof
(
MEMORY_BASIC_INFORMATION
),
&
readcount
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
ok
(
readcount
==
sizeof
(
MEMORY_BASIC_INFORMATION
),
"Expected to read %d bytes, got %ld
\n
"
,(
int
)
sizeof
(
MEMORY_BASIC_INFORMATION
),
readcount
);
...
...
@@ -2168,7 +2146,6 @@ static void test_queryvirtualmemory(void)
ok
(
mbi
.
Protect
==
PAGE_READWRITE
||
mbi
.
Protect
==
PAGE_WRITECOPY
,
"mbi.Protect is 0x%x
\n
"
,
mbi
.
Protect
);
trace
(
"Check flags of read-write uninitialized data (.bss) at %p
\n
"
,
rwtestbuf
);
status
=
pNtQueryVirtualMemory
(
NtCurrentProcess
(),
rwtestbuf
,
MemoryBasicInformation
,
&
mbi
,
sizeof
(
MEMORY_BASIC_INFORMATION
),
&
readcount
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
ok
(
readcount
==
sizeof
(
MEMORY_BASIC_INFORMATION
),
"Expected to read %d bytes, got %ld
\n
"
,(
int
)
sizeof
(
MEMORY_BASIC_INFORMATION
),
readcount
);
...
...
@@ -2181,7 +2158,6 @@ static void test_queryvirtualmemory(void)
}
else
skip
(
"bss is outside of module
\n
"
);
/* this can happen on Mac OS */
trace
(
"Check flags of user shared data at %p
\n
"
,
user_shared_data
);
status
=
pNtQueryVirtualMemory
(
NtCurrentProcess
(),
user_shared_data
,
MemoryBasicInformation
,
&
mbi
,
sizeof
(
MEMORY_BASIC_INFORMATION
),
&
readcount
);
ok
(
status
==
STATUS_SUCCESS
,
"Expected STATUS_SUCCESS, got %08x
\n
"
,
status
);
ok
(
readcount
==
sizeof
(
MEMORY_BASIC_INFORMATION
),
"Expected to read %d bytes, got %ld
\n
"
,(
int
)
sizeof
(
MEMORY_BASIC_INFORMATION
),
readcount
);
...
...
@@ -2395,7 +2371,7 @@ static void test_NtGetCurrentProcessorNumber(void)
GetSystemInfo
(
&
si
);
current_cpu
=
pNtGetCurrentProcessorNumber
();
trace
(
"dwNumberOfProcessors: %d, current processor: %d
\n
"
,
si
.
dwNumberOfProcessors
,
current_cpu
);
if
(
winetest_debug
>
1
)
trace
(
"dwNumberOfProcessors: %d, current processor: %d
\n
"
,
si
.
dwNumberOfProcessors
,
current_cpu
);
status
=
pNtQueryInformationProcess
(
GetCurrentProcess
(),
ProcessBasicInformation
,
&
pbi
,
sizeof
(
pbi
),
NULL
);
old_process_mask
=
pbi
.
AffinityMask
;
...
...
@@ -2609,153 +2585,53 @@ START_TEST(info)
if
(
argc
>=
3
)
return
;
/* Child */
/* NtQuerySystemInformation */
/* 0x0 SystemBasicInformation */
trace
(
"Starting test_query_basic()
\n
"
);
test_query_basic
();
/* 0x1 SystemCpuInformation */
trace
(
"Starting test_query_cpu()
\n
"
);
test_query_cpu
();
/* 0x2 SystemPerformanceInformation */
trace
(
"Starting test_query_performance()
\n
"
);
test_query_performance
();
/* 0x3 SystemTimeOfDayInformation */
trace
(
"Starting test_query_timeofday()
\n
"
);
test_query_timeofday
();
/* 0x5 SystemProcessInformation */
trace
(
"Starting test_query_process()
\n
"
);
test_query_process
();
/* 0x8 SystemProcessorPerformanceInformation */
trace
(
"Starting test_query_procperf()
\n
"
);
test_query_procperf
();
/* 0xb SystemModuleInformation */
trace
(
"Starting test_query_module()
\n
"
);
test_query_module
();
/* 0x10 SystemHandleInformation */
trace
(
"Starting test_query_handle()
\n
"
);
test_query_handle
();
/* 0x15 SystemCacheInformation */
trace
(
"Starting test_query_cache()
\n
"
);
test_query_cache
();
/* 0x17 SystemInterruptInformation */
trace
(
"Starting test_query_interrupt()
\n
"
);
test_query_interrupt
();
/* 0x1c SystemTimeAdjustmentInformation */
trace
(
"Starting test_time_adjustment()
\n
"
);
test_time_adjustment
();
/* 0x23 SystemKernelDebuggerInformation */
trace
(
"Starting test_query_kerndebug()
\n
"
);
test_query_kerndebug
();
/* 0x25 SystemRegistryQuotaInformation */
trace
(
"Starting test_query_regquota()
\n
"
);
test_query_regquota
();
/* 0x49 SystemLogicalProcessorInformation */
trace
(
"Starting test_query_logicalproc()
\n
"
);
test_query_logicalproc
();
test_query_logicalprocex
();
test_query_firmware
();
test_query_data_alignment
();
/* NtPowerInformation */
/* 0x5 SystemBatteryState */
trace
(
"Starting test_query_battery()
\n
"
);
test_query_battery
();
/* 0xb ProcessorInformation */
trace
(
"Starting test_query_processor_power_info()
\n
"
);
test_query_processor_power_info
();
/* NtQueryInformationProcess */
/* 0x0 ProcessBasicInformation */
trace
(
"Starting test_query_process_basic()
\n
"
);
test_query_process_basic
();
/* 0x2 ProcessIoCounters */
trace
(
"Starting test_query_process_io()
\n
"
);
test_query_process_io
();
/* 0x3 ProcessVmCounters */
trace
(
"Starting test_query_process_vm()
\n
"
);
test_query_process_vm
();
/* 0x4 ProcessTimes */
trace
(
"Starting test_query_process_times()
\n
"
);
test_query_process_times
();
/* 0x7 ProcessDebugPort */
trace
(
"Starting test_process_debug_port()
\n
"
);
test_query_process_debug_port
(
argc
,
argv
);
/* 0x12 ProcessPriorityClass */
trace
(
"Starting test_query_process_priority()
\n
"
);
test_query_process_priority
();
/* 0x14 ProcessHandleCount */
trace
(
"Starting test_query_process_handlecount()
\n
"
);
test_query_process_handlecount
();
/* 0x1A ProcessWow64Information */
trace
(
"Starting test_query_process_wow64()
\n
"
);
test_query_process_wow64
();
/* 0x1B ProcessImageFileName */
trace
(
"Starting test_query_process_image_file_name()
\n
"
);
test_query_process_image_file_name
();
/* 0x1E ProcessDebugObjectHandle */
trace
(
"Starting test_query_process_debug_object_handle()
\n
"
);
test_query_process_debug_object_handle
(
argc
,
argv
);
/* 0x1F ProcessDebugFlags */
trace
(
"Starting test_process_debug_flags()
\n
"
);
test_query_process_debug_flags
(
argc
,
argv
);
/* 0x25 ProcessImageInformation */
trace
(
"Starting test_process_image_info()
\n
"
);
test_query_process_image_info
();
/* 0x4C SystemFirmwareTableInformation */
trace
(
"Starting test_query_firmware()
\n
"
);
test_query_firmware
();
/* belongs to its own file */
trace
(
"Starting test_readvirtualmemory()
\n
"
);
test_readvirtualmemory
();
trace
(
"Starting test_queryvirtualmemory()
\n
"
);
test_queryvirtualmemory
();
trace
(
"Starting test_mapprotection()
\n
"
);
test_mapprotection
();
trace
(
"Starting test_affinity()
\n
"
);
test_affinity
();
trace
(
"Starting test_HideFromDebugger()
\n
"
);
/* NtQueryInformationThread */
test_thread_info
();
test_HideFromDebugger
();
trace
(
"Starting test_NtGetCurrentProcessorNumber()
\n
"
);
test_NtGetCurrentProcessorNumber
();
trace
(
"Starting test_thread_start_address()
\n
"
);
test_thread_start_address
();
test_thread_lookup
();
trace
(
"Starting test_query_data_alignment()
\n
"
);
test_query_data_alignment
();
test_affinity
();
test_thread_lookup
();
test_thread_info
();
/* belongs to its own file */
test_readvirtualmemory
();
test_queryvirtualmemory
();
test_NtGetCurrentProcessorNumber
();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment