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
edee379d
Commit
edee379d
authored
Jun 11, 2013
by
Hans Leidekker
Committed by
Alexandre Julliard
Jun 11, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi/tests: Move some more tests and remove a useless test.
parent
57f5a5b3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
197 additions
and
209 deletions
+197
-209
install.c
dlls/msi/tests/install.c
+0
-193
msi.c
dlls/msi/tests/msi.c
+197
-16
No files found.
dlls/msi/tests/install.c
View file @
edee379d
...
...
@@ -1008,25 +1008,6 @@ static const CHAR fo_install_exec_seq_dat[] = "Action\tCondition\tSequence\n"
"PublishProduct
\t\t
5200
\n
"
"InstallFinalize
\t\t
6000
\n
"
;
static
const
CHAR
cl_custom_action_dat
[]
=
"Action
\t
Type
\t
Source
\t
Target
\t
ISComments
\n
"
"s72
\t
i2
\t
S64
\t
S0
\t
S255
\n
"
"CustomAction
\t
Action
\n
"
"TestCommandlineProp
\t
19
\t\t
Test1
\t\n
"
;
static
const
CHAR
cl_install_exec_seq_dat
[]
=
"Action
\t
Condition
\t
Sequence
\n
"
"s72
\t
S255
\t
I2
\n
"
"InstallExecuteSequence
\t
Action
\n
"
"LaunchConditions
\t\t
100
\n
"
"ValidateProductID
\t\t
700
\n
"
"CostInitialize
\t\t
800
\n
"
"FileCost
\t\t
900
\n
"
"CostFinalize
\t\t
1000
\n
"
"TestCommandlineProp
\t
P=
\"
one
\"\t
1100
\n
"
"InstallInitialize
\t\t
1500
\n
"
"ProcessComponents
\t\t
1600
\n
"
"InstallValidate
\t\t
1400
\n
"
"InstallFinalize
\t\t
5000
\n
"
;
static
const
CHAR
uc_file_dat
[]
=
"File
\t
Component_
\t
FileName
\t
FileSize
\t
Version
\t
Language
\t
Attributes
\t
Sequence
\n
"
"s72
\t
s72
\t
l255
\t
i4
\t
S72
\t
S20
\t
I2
\t
i2
\n
"
"File
\t
File
\n
"
...
...
@@ -1782,19 +1763,6 @@ static const msi_table pv_tables[] =
ADD_TABLE
(
property
)
};
static
const
msi_table
cl_tables
[]
=
{
ADD_TABLE
(
component
),
ADD_TABLE
(
directory
),
ADD_TABLE
(
feature
),
ADD_TABLE
(
feature_comp
),
ADD_TABLE
(
file
),
ADD_TABLE
(
cl_custom_action
),
ADD_TABLE
(
cl_install_exec_seq
),
ADD_TABLE
(
media
),
ADD_TABLE
(
property
)
};
static
const
msi_table
uc_tables
[]
=
{
ADD_TABLE
(
directory
),
...
...
@@ -5538,166 +5506,6 @@ error:
RemoveDirectory
(
"msitest"
);
}
static
void
test_command_line_parsing
(
void
)
{
UINT
r
;
const
char
*
cmd
;
if
(
is_process_limited
())
{
skip
(
"process is limited
\n
"
);
return
;
}
create_test_files
();
create_database
(
msifile
,
cl_tables
,
sizeof
(
cl_tables
)
/
sizeof
(
msi_table
));
MsiSetInternalUI
(
INSTALLUILEVEL_NONE
,
NULL
);
cmd
=
" "
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"="
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"=="
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"=one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P="
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
" P="
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P= "
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P= one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
todo_wine
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
one
\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
todo_wine
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
one
\"\"
two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
one
\"\"
two
\"
Q=three"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
Q=
\"
two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"
Q=
\"
two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one=two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"Q=
\"\"
P=
\"
one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
one
\"\"\"
Q=
\"
two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"\"
two
\"\"\"
Q=
\"
three
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
one
\"\"
two
\"
Q=
\"
three
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
DeleteFile
(
msifile
);
delete_test_files
();
}
static
void
test_upgrade_code
(
void
)
{
UINT
r
;
...
...
@@ -5916,7 +5724,6 @@ START_TEST(install)
test_feature_override
();
test_icon_table
();
test_package_validation
();
test_command_line_parsing
();
test_upgrade_code
();
test_mixed_package
();
test_volume_props
();
...
...
dlls/msi/tests/msi.c
View file @
edee379d
...
...
@@ -834,6 +834,27 @@ static const char ci2_file_dat[] =
"File
\t
File
\n
"
"augustus
\t
augustus
\t
augustus
\t
500
\t\t\t
8192
\t
1"
;
static
const
char
cl_custom_action_dat
[]
=
"Action
\t
Type
\t
Source
\t
Target
\t
ISComments
\n
"
"s72
\t
i2
\t
S64
\t
S0
\t
S255
\n
"
"CustomAction
\t
Action
\n
"
"TestCommandlineProp
\t
19
\t\t
Test1
\t\n
"
;
static
const
char
cl_install_exec_seq_dat
[]
=
"Action
\t
Condition
\t
Sequence
\n
"
"s72
\t
S255
\t
I2
\n
"
"InstallExecuteSequence
\t
Action
\n
"
"LaunchConditions
\t\t
100
\n
"
"ValidateProductID
\t\t
700
\n
"
"CostInitialize
\t\t
800
\n
"
"FileCost
\t\t
900
\n
"
"CostFinalize
\t\t
1000
\n
"
"TestCommandlineProp
\t
P=
\"
one
\"\t
1100
\n
"
"InstallInitialize
\t\t
1500
\n
"
"ProcessComponents
\t\t
1600
\n
"
"InstallValidate
\t\t
1400
\n
"
"InstallFinalize
\t\t
5000
\n
"
;
typedef
struct
_msi_table
{
const
CHAR
*
filename
;
...
...
@@ -956,6 +977,19 @@ static const msi_table ci2_tables[] =
ADD_TABLE
(
property
),
};
static
const
msi_table
cl_tables
[]
=
{
ADD_TABLE
(
component
),
ADD_TABLE
(
directory
),
ADD_TABLE
(
feature
),
ADD_TABLE
(
feature_comp
),
ADD_TABLE
(
file
),
ADD_TABLE
(
cl_custom_action
),
ADD_TABLE
(
cl_install_exec_seq
),
ADD_TABLE
(
media
),
ADD_TABLE
(
property
)
};
static
void
write_file
(
const
CHAR
*
filename
,
const
char
*
data
,
int
data_size
)
{
DWORD
size
;
...
...
@@ -8721,6 +8755,8 @@ static void test_MsiOpenProduct(void)
UINT
r
;
REGSAM
access
=
KEY_ALL_ACCESS
;
MsiSetInternalUI
(
INSTALLUILEVEL_NONE
,
NULL
);
GetCurrentDirectoryA
(
MAX_PATH
,
path
);
lstrcatA
(
path
,
"
\\
"
);
...
...
@@ -8998,21 +9034,6 @@ static void test_MsiOpenProduct(void)
(
const
BYTE
*
)
"winetest.msi"
,
13
);
ok
(
res
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
res
);
/* LocalPackage has just the package name */
hprod
=
0xdeadbeef
;
r
=
MsiOpenProductA
(
prodcode
,
&
hprod
);
if
(
r
==
ERROR_INSTALL_PACKAGE_REJECTED
)
{
skip
(
"Not enough rights to perform tests
\n
"
);
goto
error
;
}
ok
(
r
==
ERROR_INSTALL_PACKAGE_OPEN_FAILED
||
r
==
ERROR_SUCCESS
,
"Expected ERROR_INSTALL_PACKAGE_OPEN_FAILED or ERROR_SUCCESS, got %d
\n
"
,
r
);
if
(
r
==
ERROR_SUCCESS
)
MsiCloseHandle
(
hprod
);
else
ok
(
hprod
==
0xdeadbeef
,
"Expected hprod to be unchanged
\n
"
);
lstrcpyA
(
val
,
path
);
lstrcatA
(
val
,
"
\\
winetest.msi"
);
res
=
RegSetValueExA
(
props
,
"LocalPackage"
,
0
,
REG_SZ
,
...
...
@@ -9028,7 +9049,6 @@ static void test_MsiOpenProduct(void)
"Expected ERROR_UNKNOWN_PRODUCT, got %d
\n
"
,
r
);
ok
(
hprod
==
0xdeadbeef
,
"Expected hprod to be unchanged
\n
"
);
error:
RegDeleteValueA
(
props
,
"LocalPackage"
);
delete_key
(
props
,
""
,
access
&
KEY_WOW64_64KEY
);
RegCloseKey
(
props
);
...
...
@@ -14001,6 +14021,166 @@ error:
RemoveDirectory
(
"msitest"
);
}
static
void
test_command_line_parsing
(
void
)
{
UINT
r
;
const
char
*
cmd
;
if
(
is_process_limited
())
{
skip
(
"process is limited
\n
"
);
return
;
}
create_test_files
();
create_database
(
msifile
,
cl_tables
,
sizeof
(
cl_tables
)
/
sizeof
(
msi_table
));
MsiSetInternalUI
(
INSTALLUILEVEL_NONE
,
NULL
);
cmd
=
" "
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"="
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"=="
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"=one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P="
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
" P="
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P= "
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P= one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
todo_wine
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
one
\"\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
todo_wine
ok
(
r
==
ERROR_INVALID_COMMAND_LINE
,
"Expected ERROR_INVALID_COMMAND_LINE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
one
\"\"
two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
one
\"\"
two
\"
Q=three"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"
Q=
\"
two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"
Q=
\"
two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one=two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"Q=
\"\"
P=
\"
one
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_INSTALL_FAILURE
,
"Expected ERROR_INSTALL_FAILURE, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
one
\"\"\"
Q=
\"
two
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"
one
\"\"
two
\"\"\"
Q=
\"
three
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
cmd
=
"P=
\"\"\"
one
\"\"
two
\"
Q=
\"
three
\"
"
;
r
=
MsiInstallProductA
(
msifile
,
cmd
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
DeleteFile
(
msifile
);
delete_test_files
();
}
START_TEST
(
msi
)
{
DWORD
len
;
...
...
@@ -14062,6 +14242,7 @@ START_TEST(msi)
test_setpropertyfolder
();
test_sourcedir_props
();
test_concurrentinstall
();
test_command_line_parsing
();
SetCurrentDirectoryA
(
prev_path
);
}
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