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
e7304066
Commit
e7304066
authored
Sep 09, 2009
by
Nikolay Sivov
Committed by
Alexandre Julliard
Sep 10, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
comctl32/dpa: Split tests to several functions to avoid undesired dependencies.
parent
7517135f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
190 additions
and
88 deletions
+190
-88
dpa.c
dlls/comctl32/tests/dpa.c
+190
-88
No files found.
dlls/comctl32/tests/dpa.c
View file @
e7304066
...
...
@@ -201,7 +201,6 @@ static void test_dpa(void)
INT
ret
,
i
;
PVOID
p
;
DWORD
dw
,
dw2
,
dw3
;
HRESULT
hRes
;
BOOL
rc
;
GetSystemInfo
(
&
si
);
...
...
@@ -336,49 +335,6 @@ static void test_dpa(void)
ok
(
j
!=
i
,
"i=%d
\n
"
,
i
);
}
if
(
pDPA_Merge
)
{
/* Delete all even entries from dpa */
p
=
pDPA_DeletePtr
(
dpa
,
1
);
p
=
pDPA_DeletePtr
(
dpa
,
2
);
p
=
pDPA_DeletePtr
(
dpa
,
3
);
rc
=
CheckDPA
(
dpa
,
0x135
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
/* Delete all odd entries from dpa2 */
pDPA_Merge
(
dpa2
,
dpa
,
DPAM_DELETE
,
CB_CmpLT
,
CB_MergeDeleteOddSrc
,
0xdeadbeef
);
todo_wine
{
rc
=
CheckDPA
(
dpa2
,
0x246
,
&
dw2
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw2
);
}
/* Merge dpa3 into dpa2 and dpa */
pDPA_Merge
(
dpa
,
dpa3
,
DPAM_INSERT
|
DPAM_NOSORT
,
CB_CmpLT
,
CB_MergeInsertSrc
,
0xdeadbeef
);
pDPA_Merge
(
dpa2
,
dpa3
,
DPAM_INSERT
|
DPAM_NOSORT
,
CB_CmpLT
,
CB_MergeInsertSrc
,
0xdeadbeef
);
rc
=
CheckDPA
(
dpa
,
0x123456
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
rc
=
CheckDPA
(
dpa2
,
0x123456
,
&
dw2
);
ok
(
rc
||
broken
(
!
rc
),
/* win98 */
"dw2=0x%x
\n
"
,
dw2
);
rc
=
CheckDPA
(
dpa3
,
0x123456
,
&
dw3
);
ok
(
rc
,
"dw3=0x%x
\n
"
,
dw3
);
}
if
(
pDPA_EnumCallback
)
{
nEnum
=
0
;
pDPA_EnumCallback
(
dpa2
,
CB_EnumFirstThree
,
dpa2
);
rc
=
CheckDPA
(
dpa2
,
0x777456
,
&
dw2
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw2
);
ok
(
nEnum
==
3
,
"nEnum=%d
\n
"
,
nEnum
);
}
/* Setting item with huge index should work */
ok
(
pDPA_SetPtr
(
dpa2
,
0x12345
,
(
PVOID
)
0xdeadbeef
),
"
\n
"
);
ret
=
pDPA_GetPtrIndex
(
dpa2
,
(
PVOID
)
0xdeadbeef
);
...
...
@@ -388,61 +344,200 @@ static void test_dpa(void)
rc
=
CheckDPA
(
dpa2
,
0
,
&
dw2
);
ok
(
rc
,
"dw2=0x%x
\n
"
,
dw2
);
pDPA_Destroy
(
dpa2
);
pDPA_Destroy
(
dpa3
);
}
static
void
test_DPA_Merge
(
void
)
{
HDPA
dpa
,
dpa2
,
dpa3
;
INT
ret
,
i
;
DWORD
dw
;
BOOL
rc
;
if
(
!
pDPA_Merge
)
{
win_skip
(
"DPA_Merge() not available
\n
"
);
return
;
}
dpa
=
pDPA_Create
(
0
);
dpa2
=
pDPA_Create
(
0
);
dpa3
=
pDPA_Create
(
0
);
ret
=
pDPA_InsertPtr
(
dpa
,
0
,
(
PVOID
)
1
);
ok
(
ret
==
0
,
"ret=%d
\n
"
,
ret
);
ret
=
pDPA_InsertPtr
(
dpa
,
1
,
(
PVOID
)
3
);
ok
(
ret
==
1
,
"ret=%d
\n
"
,
ret
);
ret
=
pDPA_InsertPtr
(
dpa
,
2
,
(
PVOID
)
5
);
ok
(
ret
==
2
,
"ret=%d
\n
"
,
ret
);
rc
=
CheckDPA
(
dpa
,
0x135
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
for
(
i
=
0
;
i
<
6
;
i
++
)
{
ret
=
pDPA_InsertPtr
(
dpa2
,
i
,
(
PVOID
)(
6
-
i
));
ok
(
ret
==
i
,
"ret=%d
\n
"
,
ret
);
ret
=
pDPA_InsertPtr
(
dpa3
,
i
,
(
PVOID
)(
i
+
1
));
ok
(
ret
==
i
,
"ret=%d
\n
"
,
ret
);
}
rc
=
CheckDPA
(
dpa2
,
0x654321
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
rc
=
CheckDPA
(
dpa3
,
0x123456
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
/* Delete all odd entries from dpa2 */
pDPA_Merge
(
dpa2
,
dpa
,
DPAM_DELETE
,
CB_CmpLT
,
CB_MergeDeleteOddSrc
,
0xdeadbeef
);
todo_wine
{
rc
=
CheckDPA
(
dpa2
,
0x246
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
}
/* Merge dpa3 into dpa2 and dpa */
pDPA_Merge
(
dpa
,
dpa3
,
DPAM_INSERT
|
DPAM_NOSORT
,
CB_CmpLT
,
CB_MergeInsertSrc
,
0xdeadbeef
);
pDPA_Merge
(
dpa2
,
dpa3
,
DPAM_INSERT
|
DPAM_NOSORT
,
CB_CmpLT
,
CB_MergeInsertSrc
,
0xdeadbeef
);
rc
=
CheckDPA
(
dpa
,
0x123456
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
rc
=
CheckDPA
(
dpa2
,
0x123456
,
&
dw
);
ok
(
rc
||
broken
(
!
rc
),
/* win98 */
"dw=0x%x
\n
"
,
dw
);
rc
=
CheckDPA
(
dpa3
,
0x123456
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
pDPA_Destroy
(
dpa
);
pDPA_Destroy
(
dpa2
);
pDPA_Destroy
(
dpa3
);
}
static
void
test_DPA_EnumCallback
(
void
)
{
HDPA
dpa
;
BOOL
rc
;
DWORD
dw
;
INT
i
,
ret
;
if
(
!
pDPA_EnumCallback
)
{
win_skip
(
"DPA_EnumCallback() not available
\n
"
);
return
;
}
dpa
=
pDPA_Create
(
0
);
for
(
i
=
0
;
i
<
6
;
i
++
)
{
ret
=
pDPA_InsertPtr
(
dpa
,
i
,
(
PVOID
)(
i
+
1
));
ok
(
ret
==
i
,
"ret=%d
\n
"
,
ret
);
}
rc
=
CheckDPA
(
dpa
,
0x123456
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
nEnum
=
0
;
/* test callback sets first 3 items to 7 */
pDPA_EnumCallback
(
dpa
,
CB_EnumFirstThree
,
dpa
);
rc
=
CheckDPA
(
dpa
,
0x777456
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
ok
(
nEnum
==
3
,
"nEnum=%d
\n
"
,
nEnum
);
pDPA_Destroy
(
dpa
);
}
static
void
test_DPA_DestroyCallback
(
void
)
{
HDPA
dpa
;
INT
i
,
ret
;
if
(
!
pDPA_DestroyCallback
)
{
win_skip
(
"DPA_DestroyCallback() not available
\n
"
);
return
;
}
dpa
=
pDPA_Create
(
0
);
if
(
pDPA_DestroyCallback
)
for
(
i
=
0
;
i
<
3
;
i
++
)
{
nEnum
=
0
;
pDPA_DestroyCallback
(
dpa3
,
CB_EnumFirstThree
,
dpa3
);
ok
(
nEnum
==
3
,
"nEnum=%d
\n
"
,
nEnum
);
ret
=
pDPA_InsertPtr
(
dpa
,
i
,
(
PVOID
)(
i
+
1
));
ok
(
ret
==
i
,
"ret=%d
\n
"
,
ret
);
}
else
pDPA_Destroy
(
dpa3
);
nEnum
=
0
;
pDPA_DestroyCallback
(
dpa
,
CB_EnumFirstThree
,
dpa
);
ok
(
nEnum
==
3
,
"nEnum=%d
\n
"
,
nEnum
);
}
static
void
test_dpa_stream
(
void
)
{
HDPA
dpa
;
HRESULT
hRes
;
INT
ret
,
i
;
BOOL
rc
;
static
const
WCHAR
szStg
[]
=
{
'S'
,
't'
,
'g'
,
0
};
IStorage
*
pStg
=
NULL
;
IStream
*
pStm
=
NULL
;
LARGE_INTEGER
liZero
;
DWORD
dwMode
,
dw
;
if
(
!
pDPA_SaveStream
)
goto
skip_stream_tests
;
{
win_skip
(
"DPA_SaveStream() not available. Skipping stream tests.
\n
"
);
return
;
}
hRes
=
CoInitialize
(
NULL
);
if
(
hRes
=
=
S_OK
)
if
(
hRes
!
=
S_OK
)
{
static
const
WCHAR
szStg
[]
=
{
'S'
,
't'
,
'g'
,
0
};
IStorage
*
pStg
=
NULL
;
IStream
*
pStm
=
NULL
;
LARGE_INTEGER
liZero
;
DWORD
dwMode
;
liZero
.
QuadPart
=
0
;
dwMode
=
STGM_DIRECT
|
STGM_CREATE
|
STGM_READWRITE
|
STGM_SHARE_EXCLUSIVE
;
hRes
=
StgCreateDocfile
(
NULL
,
dwMode
|
STGM_DELETEONRELEASE
,
0
,
&
pStg
);
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
ok
(
0
,
"hResult: %d
\n
"
,
hRes
);
return
;
}
hRes
=
IStorage_CreateStream
(
pStg
,
szStg
,
dwMode
,
0
,
0
,
&
pStm
);
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
dpa
=
pDPA_Create
(
0
);
hRes
=
pDPA_SaveStream
(
dpa
,
CB_Save
,
pStm
,
0xdeadbeef
);
todo_wine
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
pDPA_Destroy
(
dpa
);
hRes
=
IStream_Seek
(
pStm
,
liZero
,
STREAM_SEEK_SET
,
NULL
);
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
hRes
=
pDPA_LoadStream
(
&
dpa
,
CB_Load
,
pStm
,
0xdeadbeef
);
todo_wine
{
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
rc
=
CheckDPA
(
dpa
,
0x123456
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
}
for
(
i
=
0
;
i
<
6
;
i
++
)
{
ret
=
pDPA_InsertPtr
(
dpa
,
i
,
(
PVOID
)(
i
+
1
));
ok
(
ret
==
i
,
"ret=%d
\n
"
,
ret
);
}
ret
=
IStream_Release
(
pStm
);
ok
(
!
ret
,
"ret=%d
\n
"
,
ret
);
ret
=
IStorage_Release
(
pStg
);
ok
(
!
ret
,
"ret=%d
\n
"
,
ret
);
dwMode
=
STGM_DIRECT
|
STGM_CREATE
|
STGM_READWRITE
|
STGM_SHARE_EXCLUSIVE
;
hRes
=
StgCreateDocfile
(
NULL
,
dwMode
|
STGM_DELETEONRELEASE
,
0
,
&
pStg
);
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
CoUninitialize
();
}
else
ok
(
0
,
"hResult: %d
\n
"
,
hRes
);
hRes
=
IStorage_CreateStream
(
pStg
,
szStg
,
dwMode
,
0
,
0
,
&
pStm
);
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
skip_stream_tests:
hRes
=
pDPA_SaveStream
(
dpa
,
CB_Save
,
pStm
,
0xdeadbeef
);
todo_wine
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
pDPA_Destroy
(
dpa
);
liZero
.
QuadPart
=
0
;
hRes
=
IStream_Seek
(
pStm
,
liZero
,
STREAM_SEEK_SET
,
NULL
);
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
hRes
=
pDPA_LoadStream
(
&
dpa
,
CB_Load
,
pStm
,
0xdeadbeef
);
todo_wine
{
ok
(
hRes
==
S_OK
,
"hRes=0x%x
\n
"
,
hRes
);
rc
=
CheckDPA
(
dpa
,
0x123456
,
&
dw
);
ok
(
rc
,
"dw=0x%x
\n
"
,
dw
);
}
pDPA_Destroy
(
dpa
);
ret
=
IStream_Release
(
pStm
);
ok
(
!
ret
,
"ret=%d
\n
"
,
ret
);
ret
=
IStorage_Release
(
pStg
);
ok
(
!
ret
,
"ret=%d
\n
"
,
ret
);
CoUninitialize
();
}
START_TEST
(
dpa
)
...
...
@@ -451,8 +546,15 @@ START_TEST(dpa)
hcomctl32
=
GetModuleHandleA
(
"comctl32.dll"
);
if
(
InitFunctionPtrs
(
hcomctl32
))
test_dpa
();
else
if
(
!
InitFunctionPtrs
(
hcomctl32
))
{
win_skip
(
"Needed functions are not available
\n
"
);
return
;
}
test_dpa
();
test_DPA_Merge
();
test_DPA_EnumCallback
();
test_DPA_DestroyCallback
();
test_dpa_stream
();
}
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