Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
b636e4db
Commit
b636e4db
authored
Jul 20, 2006
by
Benjamin Arai
Committed by
Alexandre Julliard
Jul 21, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32: Fix missing tests and heap errors for VarCat conformance.
parent
4026a4c0
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
61 deletions
+37
-61
vartest.c
dlls/oleaut32/tests/vartest.c
+37
-61
No files found.
dlls/oleaut32/tests/vartest.c
View file @
b636e4db
...
...
@@ -5109,6 +5109,7 @@ static void test_VarCat(void)
TCHAR
orig_date_format
[
128
];
VARTYPE
leftvt
,
rightvt
,
resultvt
;
HRESULT
hres
;
HRESULT
expected_error_num
;
/* Set date format for testing */
lcid
=
LOCALE_USER_DEFAULT
;
...
...
@@ -5128,21 +5129,22 @@ static void test_VarCat(void)
for
(
rightvt
=
0
;
rightvt
<=
VT_BSTR_BLOB
;
rightvt
++
)
{
BOOL
bFail
=
FALSE
;
SKIPTESTS
(
rightvt
);
expected_error_num
=
S_OK
;
resultvt
=
VT_EMPTY
;
if
(
leftvt
==
VT_DISPATCH
||
rightvt
==
VT_DISPATCH
||
leftvt
==
VT_UNKNOWN
||
rightvt
==
VT_UNKNOWN
||
leftvt
==
VT_RECORD
||
rightvt
==
VT_RECORD
||
leftvt
==
VT_CLSID
||
rightvt
==
VT_CLSID
||
leftvt
==
VT_BSTR_BLOB
||
rightvt
==
VT_BSTR_BLOB
)
leftvt
==
15
||
rightvt
==
15
/* Undefined type */
)
continue
;
if
(
leftvt
==
VT_ERROR
||
rightvt
==
VT_ERROR
)
resultvt
=
VT_EMPTY
;
else
if
(
leftvt
==
VT_NULL
&&
rightvt
==
VT_NULL
)
if
(
leftvt
==
VT_NULL
&&
rightvt
==
VT_NULL
)
resultvt
=
VT_NULL
;
else
if
(
leftvt
==
VT_VARIANT
&&
(
rightvt
==
VT_ERROR
||
rightvt
==
VT_DATE
||
rightvt
==
VT_DECIMAL
))
expected_error_num
=
DISP_E_TYPEMISMATCH
;
else
if
((
leftvt
==
VT_I2
||
leftvt
==
VT_I4
||
leftvt
==
VT_R4
||
leftvt
==
VT_R8
||
leftvt
==
VT_CY
||
leftvt
==
VT_BOOL
||
...
...
@@ -5164,38 +5166,8 @@ static void test_VarCat(void)
rightvt
==
VT_UINT
||
rightvt
==
VT_EMPTY
||
rightvt
==
VT_NULL
||
rightvt
==
VT_DECIMAL
||
rightvt
==
VT_DATE
))
{
resultvt
=
VT_BSTR
;
}
else
resultvt
=
VT_EMPTY
;
if
(
leftvt
==
VT_ERROR
||
rightvt
==
VT_ERROR
)
{
bFail
=
TRUE
;
}
V_VT
(
&
left
)
=
leftvt
;
V_VT
(
&
right
)
=
rightvt
;
if
(
leftvt
==
VT_BSTR
)
V_BSTR
(
&
left
)
=
SysAllocString
(
sz_empty
);
if
(
rightvt
==
VT_BSTR
)
V_BSTR
(
&
right
)
=
SysAllocString
(
sz_empty
);
if
(
leftvt
==
VT_DATE
)
V_DATE
(
&
left
)
=
0
.
0
;
if
(
rightvt
==
VT_DATE
)
V_DATE
(
&
right
)
=
0
.
0
;
if
(
leftvt
==
VT_DECIMAL
)
VarDecFromR8
(
0
.
0
,
&
V_DECIMAL
(
&
left
));
if
(
rightvt
==
VT_DECIMAL
)
VarDecFromR8
(
0
.
0
,
&
V_DECIMAL
(
&
right
));
hres
=
VarCat
(
&
left
,
&
right
,
&
result
);
if
(
bFail
)
{
/* Determine the error code for the vt combination */
HRESULT
expected_error_num
=
S_OK
;
if
(
rightvt
==
VT_ERROR
&&
leftvt
<=
VT_VOID
)
else
if
(
rightvt
==
VT_ERROR
&&
leftvt
<
VT_VOID
)
expected_error_num
=
DISP_E_TYPEMISMATCH
;
else
if
(
leftvt
==
VT_ERROR
&&
(
rightvt
==
VT_DATE
||
rightvt
==
VT_ERROR
||
rightvt
==
VT_DECIMAL
))
...
...
@@ -5205,22 +5177,6 @@ static void test_VarCat(void)
expected_error_num
=
DISP_E_BADVARTYPE
;
else
if
(
leftvt
==
VT_ERROR
||
rightvt
==
VT_ERROR
)
expected_error_num
=
DISP_E_TYPEMISMATCH
;
ok
(
hres
==
DISP_E_BADVARTYPE
||
hres
==
E_INVALIDARG
||
hres
==
DISP_E_TYPEMISMATCH
,
"VarCat: %d, %d: Expected failure 0x%lX, got 0x%lX
\n
"
,
leftvt
,
rightvt
,
expected_error_num
,
hres
);
}
else
{
ok
(
V_VT
(
&
result
)
==
resultvt
,
"VarCat: %d, %d: expected vt %d, got vt %d
\n
"
,
leftvt
,
rightvt
,
resultvt
,
V_VT
(
&
result
));
if
(
hres
!=
S_OK
)
{
HRESULT
expected_error_num
;
if
(
leftvt
==
VT_VARIANT
&&
rightvt
==
VT_ERROR
)
expected_error_num
=
DISP_E_BADVARTYPE
;
else
if
(
leftvt
==
VT_VARIANT
)
expected_error_num
=
DISP_E_TYPEMISMATCH
;
else
if
(
rightvt
==
VT_VARIANT
&&
(
leftvt
==
VT_EMPTY
||
...
...
@@ -5238,11 +5194,33 @@ static void test_VarCat(void)
else
expected_error_num
=
DISP_E_BADVARTYPE
;
V_VT
(
&
left
)
=
leftvt
;
V_VT
(
&
right
)
=
rightvt
;
if
(
leftvt
==
VT_BSTR
)
V_BSTR
(
&
left
)
=
SysAllocString
(
sz_empty
);
if
(
rightvt
==
VT_BSTR
)
V_BSTR
(
&
right
)
=
SysAllocString
(
sz_empty
);
if
(
leftvt
==
VT_DATE
)
V_DATE
(
&
left
)
=
0
.
0
;
if
(
rightvt
==
VT_DATE
)
V_DATE
(
&
right
)
=
0
.
0
;
if
(
leftvt
==
VT_DECIMAL
)
VarDecFromR8
(
0
.
0
,
&
V_DECIMAL
(
&
left
));
if
(
rightvt
==
VT_DECIMAL
)
VarDecFromR8
(
0
.
0
,
&
V_DECIMAL
(
&
right
));
hres
=
VarCat
(
&
left
,
&
right
,
&
result
);
/* Determine the error code for the vt combination */
ok
(
hres
==
expected_error_num
,
"VarCat: %d, %d: Expected failure 0x%lX, got 0x%lX
\n
"
,
"VarCat: %d, %d returned error, 0x%lX expected 0x%lX.
\n
"
,
leftvt
,
rightvt
,
expected_error_num
,
hres
);
}
}
/* Check types are correct */
ok
(
V_VT
(
&
result
)
==
resultvt
,
"VarCat: %d, %d: expected vt %d, got vt %d
\n
"
,
leftvt
,
rightvt
,
resultvt
,
V_VT
(
&
result
));
VariantClear
(
&
left
);
VariantClear
(
&
right
);
...
...
@@ -5271,10 +5249,9 @@ static void test_VarCat(void)
/* Test if expression is VT_ERROR */
V_VT
(
&
left
)
=
VT_ERROR
;
V_VT
(
&
right
)
=
VT_BSTR
;
V_BSTR
(
&
right
)
=
SysAllocString
(
sz1234
);
hres
=
VarCat
(
&
left
,
&
right
,
&
result
);
todo_wine
{
ok
(
hres
==
DISP_E_TYPEMISMATCH
,
"VarCat should have returned DISP_E_TYPEMISMATCH instead of 0x%08lx
\n
"
,
hres
);
}
ok
(
V_VT
(
&
result
)
==
VT_EMPTY
,
"VarCat: VT_ERROR concat with VT_BSTR should have returned VT_EMPTY
\n
"
);
...
...
@@ -5284,10 +5261,9 @@ static void test_VarCat(void)
V_VT
(
&
left
)
=
VT_BSTR
;
V_VT
(
&
right
)
=
VT_ERROR
;
V_BSTR
(
&
left
)
=
SysAllocString
(
sz1234
);
hres
=
VarCat
(
&
left
,
&
right
,
&
result
);
todo_wine
{
ok
(
hres
==
DISP_E_TYPEMISMATCH
,
"VarCat should have returned DISP_E_TYPEMISMATCH instead of 0x%08lx
\n
"
,
hres
);
}
ok
(
V_VT
(
&
result
)
==
VT_EMPTY
,
"VarCat: VT_BSTR concat with VT_ERROR should have returned VT_EMPTY
\n
"
);
...
...
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