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
75a91462
Commit
75a91462
authored
Jul 21, 2007
by
Hans Leidekker
Committed by
Alexandre Julliard
Jul 23, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pdh: Add more tests and make them pass.
parent
d95aa67a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
154 additions
and
10 deletions
+154
-10
pdh_main.c
dlls/pdh/pdh_main.c
+6
-4
pdh.c
dlls/pdh/tests/pdh.c
+148
-6
No files found.
dlls/pdh/pdh_main.c
View file @
75a91462
...
...
@@ -253,13 +253,13 @@ PDH_STATUS WINAPI PdhAddCounterW( PDH_HQUERY hquery, LPCWSTR path,
PDH_STATUS
WINAPI
PdhCloseQuery
(
PDH_HQUERY
handle
)
{
struct
query
*
query
=
handle
;
struct
list
*
item
;
struct
list
*
item
,
*
next
;
TRACE
(
"%p
\n
"
,
handle
);
if
(
!
query
||
(
query
->
magic
!=
PDH_MAGIC_QUERY
))
return
PDH_INVALID_HANDLE
;
LIST_FOR_EACH
(
item
,
&
query
->
counters
)
LIST_FOR_EACH
_SAFE
(
item
,
next
,
&
query
->
counters
)
{
struct
counter
*
counter
=
LIST_ENTRY
(
item
,
struct
counter
,
entry
);
...
...
@@ -269,7 +269,9 @@ PDH_STATUS WINAPI PdhCloseQuery( PDH_HQUERY handle )
pdh_free
(
counter
);
}
query
->
magic
=
0
;
pdh_free
(
query
);
return
ERROR_SUCCESS
;
}
...
...
@@ -338,8 +340,8 @@ PDH_STATUS WINAPI PdhGetCounterInfoW( PDH_HCOUNTER handle, BOOLEAN text, LPDWORD
TRACE
(
"%p %d %p %p
\n
"
,
handle
,
text
,
size
,
info
);
if
(
!
size
)
return
PDH_INVALID_ARGUMENT
;
if
(
!
counter
)
return
PDH_INVALID_HANDLE
;
if
(
!
size
)
return
PDH_INVALID_ARGUMENT
;
if
(
*
size
<
sizeof
(
PDH_COUNTER_INFO_W
))
{
...
...
@@ -356,7 +358,7 @@ PDH_STATUS WINAPI PdhGetCounterInfoW( PDH_HCOUNTER handle, BOOLEAN text, LPDWORD
info
->
dwUserData
=
counter
->
user
;
info
->
dwQueryUserData
=
counter
->
queryuser
;
*
size
=
sizeof
(
PDH_COUNTER_INFO_
A
);
*
size
=
sizeof
(
PDH_COUNTER_INFO_
W
);
return
ERROR_SUCCESS
;
}
...
...
dlls/pdh/tests/pdh.c
View file @
75a91462
...
...
@@ -27,7 +27,15 @@
#include "wine/test.h"
static
void
test_open_close_query
(
void
)
static
const
WCHAR
system_uptime
[]
=
{
'\\'
,
'S'
,
'y'
,
's'
,
't'
,
'e'
,
'm'
,
'\\'
,
'S'
,
'y'
,
's'
,
't'
,
'e'
,
'm'
,
' '
,
'U'
,
'p'
,
' '
,
'T'
,
'i'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
system_downtime
[]
=
/* does not exist */
{
'\\'
,
'S'
,
'y'
,
's'
,
't'
,
'e'
,
'm'
,
'\\'
,
'S'
,
'y'
,
's'
,
't'
,
'e'
,
'm'
,
' '
,
'D'
,
'o'
,
'w'
,
'n'
,
' '
,
'T'
,
'i'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
percentage_processor_time
[]
=
{
'\\'
,
'P'
,
'r'
,
'o'
,
'c'
,
'e'
,
's'
,
's'
,
'o'
,
'r'
,
'('
,
'_'
,
'T'
,
'o'
,
't'
,
'a'
,
'l'
,
')'
,
'\\'
,
'%'
,
' '
,
'P'
,
'r'
,
'o'
,
'c'
,
'e'
,
's'
,
's'
,
'o'
,
'r'
,
' '
,
'T'
,
'i'
,
'm'
,
'e'
,
0
};
static
void
test_PdhOpenQueryA
(
void
)
{
PDH_STATUS
ret
;
PDH_HQUERY
query
;
...
...
@@ -46,9 +54,36 @@ static void test_open_close_query( void )
ret
=
PdhCloseQuery
(
query
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCloseQuery
(
query
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
}
static
void
test_PdhOpenQueryW
(
void
)
{
PDH_STATUS
ret
;
PDH_HQUERY
query
;
ret
=
PdhOpenQueryW
(
NULL
,
0
,
NULL
);
ok
(
ret
==
PDH_INVALID_ARGUMENT
,
"PdhOpenQueryW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhOpenQueryW
(
NULL
,
0
,
&
query
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhOpenQueryW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCloseQuery
(
NULL
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCloseQuery
(
&
query
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCloseQuery
(
query
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCloseQuery
(
query
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
}
static
void
test_
add_remove_counter
(
void
)
static
void
test_
PdhAddCounterA
(
void
)
{
PDH_STATUS
ret
;
PDH_HQUERY
query
;
...
...
@@ -95,6 +130,53 @@ static void test_add_remove_counter( void )
ok
(
ret
==
ERROR_SUCCESS
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
}
static
void
test_PdhAddCounterW
(
void
)
{
PDH_STATUS
ret
;
PDH_HQUERY
query
;
PDH_HCOUNTER
counter
;
ret
=
PdhOpenQueryW
(
NULL
,
0
,
&
query
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhOpenQueryW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhAddCounterW
(
NULL
,
percentage_processor_time
,
0
,
NULL
);
ok
(
ret
==
PDH_INVALID_ARGUMENT
,
"PdhAddCounterW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhAddCounterW
(
NULL
,
percentage_processor_time
,
0
,
&
counter
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhAddCounterW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhAddCounterW
(
query
,
NULL
,
0
,
&
counter
);
ok
(
ret
==
PDH_INVALID_ARGUMENT
,
"PdhAddCounterW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhAddCounterW
(
query
,
percentage_processor_time
,
0
,
NULL
);
ok
(
ret
==
PDH_INVALID_ARGUMENT
,
"PdhAddCounterW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhAddCounterW
(
query
,
system_downtime
,
0
,
&
counter
);
ok
(
ret
==
PDH_CSTATUS_NO_COUNTER
,
"PdhAddCounterW failed 0x%08x
\n
"
,
ret
);
ok
(
!
counter
,
"PdhAddCounterW failed %p
\n
"
,
counter
);
ret
=
PdhAddCounterW
(
query
,
percentage_processor_time
,
0
,
&
counter
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhAddCounterW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCollectQueryData
(
NULL
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhCollectQueryData failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCollectQueryData
(
counter
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhCollectQueryData failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCollectQueryData
(
query
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhCollectQueryData failed 0x%08x
\n
"
,
ret
);
ret
=
PdhRemoveCounter
(
NULL
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhRemoveCounter failed 0x%08x
\n
"
,
ret
);
ret
=
PdhRemoveCounter
(
counter
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhRemoveCounter failed 0x%08x
\n
"
,
ret
);
ret
=
PdhCloseQuery
(
query
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
}
static
void
test_PdhGetFormattedCounterValue
(
void
)
{
PDH_STATUS
ret
;
...
...
@@ -242,7 +324,7 @@ static void test_PdhGetCounterTimeBase( void )
ok
(
ret
==
ERROR_SUCCESS
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
}
static
void
test_PdhGetCounterInfo
(
void
)
static
void
test_PdhGetCounterInfo
A
(
void
)
{
PDH_STATUS
ret
;
PDH_HQUERY
query
;
...
...
@@ -296,13 +378,73 @@ static void test_PdhGetCounterInfo( void )
ok
(
ret
==
ERROR_SUCCESS
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
}
static
void
test_PdhGetCounterInfoW
(
void
)
{
PDH_STATUS
ret
;
PDH_HQUERY
query
;
PDH_HCOUNTER
counter
;
PDH_COUNTER_INFO_W
info
;
DWORD
size
;
ret
=
PdhOpenQueryW
(
NULL
,
0
,
&
query
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhOpenQueryW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhAddCounterW
(
query
,
percentage_processor_time
,
0
,
&
counter
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhAddCounterW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhGetCounterInfoW
(
NULL
,
0
,
NULL
,
NULL
);
ok
(
ret
==
PDH_INVALID_HANDLE
,
"PdhGetCounterInfoW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhGetCounterInfoW
(
counter
,
0
,
NULL
,
NULL
);
ok
(
ret
==
PDH_INVALID_ARGUMENT
,
"PdhGetCounterInfoW failed 0x%08x
\n
"
,
ret
);
ret
=
PdhGetCounterInfoW
(
counter
,
0
,
NULL
,
&
info
);
ok
(
ret
==
PDH_INVALID_ARGUMENT
,
"PdhGetCounterInfoW failed 0x%08x
\n
"
,
ret
);
size
=
sizeof
(
info
)
-
1
;
ret
=
PdhGetCounterInfoW
(
counter
,
0
,
&
size
,
NULL
);
ok
(
ret
==
PDH_MORE_DATA
,
"PdhGetCounterInfoW failed 0x%08x
\n
"
,
ret
);
size
=
sizeof
(
info
);
ret
=
PdhGetCounterInfoW
(
counter
,
0
,
&
size
,
&
info
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhGetCounterInfoW failed 0x%08x
\n
"
,
ret
);
ok
(
size
==
sizeof
(
info
),
"PdhGetCounterInfoW failed %d
\n
"
,
size
);
ret
=
PdhGetCounterInfoW
(
counter
,
0
,
&
size
,
&
info
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhGetCounterInfoW failed 0x%08x
\n
"
,
ret
);
ok
(
info
.
lScale
==
0
,
"lScale %d
\n
"
,
info
.
lScale
);
ret
=
PdhSetCounterScaleFactor
(
counter
,
0
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhSetCounterScaleFactor failed 0x%08x
\n
"
,
ret
);
ret
=
PdhGetCounterInfoW
(
counter
,
0
,
&
size
,
&
info
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhGetCounterInfoW failed 0x%08x
\n
"
,
ret
);
ok
(
info
.
lScale
==
0
,
"lScale %d
\n
"
,
info
.
lScale
);
ret
=
PdhSetCounterScaleFactor
(
counter
,
-
5
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhSetCounterScaleFactor failed 0x%08x
\n
"
,
ret
);
ret
=
PdhGetCounterInfoW
(
counter
,
0
,
&
size
,
&
info
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhGetCounterInfoW failed 0x%08x
\n
"
,
ret
);
ok
(
info
.
lScale
==
-
5
,
"lScale %d
\n
"
,
info
.
lScale
);
ret
=
PdhCloseQuery
(
query
);
ok
(
ret
==
ERROR_SUCCESS
,
"PdhCloseQuery failed 0x%08x
\n
"
,
ret
);
}
START_TEST
(
pdh
)
{
test_open_close_query
();
test_add_remove_counter
();
test_PdhOpenQueryA
();
test_PdhOpenQueryW
();
test_PdhAddCounterA
();
test_PdhAddCounterW
();
test_PdhGetFormattedCounterValue
();
test_PdhGetRawCounterValue
();
test_PdhSetCounterScaleFactor
();
test_PdhGetCounterTimeBase
();
test_PdhGetCounterInfo
();
test_PdhGetCounterInfoA
();
test_PdhGetCounterInfoW
();
}
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