2 * Copyright 2012 Hans Leidekker for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
27 #include "wine/test.h"
29 static const WCHAR wine1W
[] =
31 static const WCHAR wine2W
[] =
32 {'w','i','n','e',',','v','e','r','s','i','o','n','=','\"','1','.','2','.','3','.','4','\"',0};
33 static const WCHAR wine3W
[] =
34 {'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','2','.','3','.','4',0};
35 static const WCHAR wine4W
[] =
36 {'w','i','n','e',',',' ','v','e','r','s','i','o','n','=','\"','1','.','2','.','3','.','4','\"',0};
37 static const WCHAR wine5W
[] =
38 {'w','i','n','e',',','v','e','r','s','i','o','n',' ','=','\"','1','.','2','.','3','.','4','\"',0};
39 static const WCHAR wine6W
[] =
40 {'w','i','n','e',',','v','e','r','s','i','o','n','=',' ','\"','1','.','2','.','3','.','4','\"',0};
41 static const WCHAR wine7W
[] =
42 {'w','i','n','e',' ',',','v','e','r','s','i','o','n','=','\"','1','.','2','.','3','.','4','\"',0};
43 static const WCHAR wine8W
[] =
44 {'w','i','n','e',',','v','e','r','s','i','o','n',0};
45 static const WCHAR wine9W
[] =
46 {'w','i','n','e',',','t','y','p','e','=','\"','\"',0};
47 static const WCHAR wine10W
[] =
48 {'w','i','n','e',',','t','y','p','e','=','\"','w','i','n','3','2',0};
50 static void test_CreateAssemblyNameObject( void )
52 static const WCHAR emptyW
[] = {0};
56 hr
= CreateAssemblyNameObject( NULL
, wine1W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
57 ok(hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
59 name
= (IAssemblyName
*)0xdeadbeef;
60 hr
= CreateAssemblyNameObject( &name
, NULL
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
61 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
62 ok( !name
, "expected NULL got %p\n", name
);
64 name
= (IAssemblyName
*)0xdeadbeef;
65 hr
= CreateAssemblyNameObject( &name
, emptyW
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
66 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
67 ok( !name
, "expected NULL got %p\n", name
);
69 name
= (IAssemblyName
*)0xdeadbeef;
70 hr
= CreateAssemblyNameObject( &name
, NULL
, CANOF_SET_DEFAULT_VALUES
, NULL
);
71 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
72 ok( !name
, "expected NULL got %p\n", name
);
74 name
= (IAssemblyName
*)0xdeadbeef;
75 hr
= CreateAssemblyNameObject( &name
, emptyW
, CANOF_SET_DEFAULT_VALUES
, NULL
);
76 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
77 ok( !name
, "expected NULL got %p\n", name
);
80 hr
= CreateAssemblyNameObject( &name
, wine1W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
81 ok( hr
== S_OK
, "expected S_OK got %08x\n", hr
);
82 ok( name
!= NULL
, "expected non-NULL name\n" );
83 IAssemblyName_Release( name
);
85 hr
= CreateAssemblyNameObject( NULL
, wine1W
, CANOF_SET_DEFAULT_VALUES
, NULL
);
86 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
88 name
= (IAssemblyName
*)0xdeadbeef;
89 hr
= CreateAssemblyNameObject( &name
, NULL
, CANOF_SET_DEFAULT_VALUES
, NULL
);
90 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
91 ok( !name
, "expected NULL got %p\n", name
);
93 name
= (IAssemblyName
*)0xdeadbeef;
94 hr
= CreateAssemblyNameObject( &name
, emptyW
, CANOF_SET_DEFAULT_VALUES
, NULL
);
95 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
96 ok( !name
, "expected NULL got %p\n", name
);
98 name
= (IAssemblyName
*)0xdeadbeef;
99 hr
= CreateAssemblyNameObject( &name
, NULL
, CANOF_SET_DEFAULT_VALUES
, NULL
);
100 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
101 ok( !name
, "expected NULL got %p\n", name
);
103 name
= (IAssemblyName
*)0xdeadbeef;
104 hr
= CreateAssemblyNameObject( &name
, emptyW
, CANOF_SET_DEFAULT_VALUES
, NULL
);
105 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
106 ok( !name
, "expected NULL got %p\n", name
);
108 name
= (IAssemblyName
*)0xdeadbeef;
109 hr
= CreateAssemblyNameObject( &name
, wine1W
, CANOF_SET_DEFAULT_VALUES
, NULL
);
110 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
111 ok( !name
, "expected NULL got %p\n", name
);
113 hr
= CreateAssemblyNameObject( NULL
, wine1W
, 0, NULL
);
114 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
116 name
= (IAssemblyName
*)0xdeadbeef;
117 hr
= CreateAssemblyNameObject( &name
, NULL
, 0, NULL
);
118 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
119 ok( !name
, "expected NULL got %p\n", name
);
121 name
= (IAssemblyName
*)0xdeadbeef;
122 hr
= CreateAssemblyNameObject( &name
, emptyW
, 0, NULL
);
123 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
124 ok( !name
, "expected NULL got %p\n", name
);
126 name
= (IAssemblyName
*)0xdeadbeef;
127 hr
= CreateAssemblyNameObject( &name
, NULL
, 0, NULL
);
128 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
129 ok( !name
, "expected NULL got %p\n", name
);
131 name
= (IAssemblyName
*)0xdeadbeef;
132 hr
= CreateAssemblyNameObject( &name
, emptyW
, 0, NULL
);
133 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
134 ok( !name
, "expected NULL got %p\n", name
);
136 name
= (IAssemblyName
*)0xdeadbeef;
137 hr
= CreateAssemblyNameObject( &name
, wine1W
, 0, NULL
);
138 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
140 hr
= CreateAssemblyNameObject( NULL
, wine1W
, CANOF_SET_DEFAULT_VALUES
|CANOF_PARSE_DISPLAY_NAME
, NULL
);
141 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
143 name
= (IAssemblyName
*)0xdeadbeef;
144 hr
= CreateAssemblyNameObject( &name
, NULL
, CANOF_SET_DEFAULT_VALUES
|CANOF_PARSE_DISPLAY_NAME
, NULL
);
145 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
146 ok( !name
, "expected NULL got %p\n", name
);
148 name
= (IAssemblyName
*)0xdeadbeef;
149 hr
= CreateAssemblyNameObject( &name
, emptyW
, CANOF_SET_DEFAULT_VALUES
|CANOF_PARSE_DISPLAY_NAME
, NULL
);
150 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
151 ok( !name
, "expected NULL got %p\n", name
);
153 name
= (IAssemblyName
*)0xdeadbeef;
154 hr
= CreateAssemblyNameObject( &name
, NULL
, CANOF_SET_DEFAULT_VALUES
|CANOF_PARSE_DISPLAY_NAME
, NULL
);
155 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
156 ok( !name
, "expected NULL got %p\n", name
);
158 name
= (IAssemblyName
*)0xdeadbeef;
159 hr
= CreateAssemblyNameObject( &name
, emptyW
, CANOF_SET_DEFAULT_VALUES
|CANOF_PARSE_DISPLAY_NAME
, NULL
);
160 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
161 ok( !name
, "expected NULL got %p\n", name
);
163 name
= (IAssemblyName
*)0xdeadbeef;
164 hr
= CreateAssemblyNameObject( &name
, wine1W
, CANOF_SET_DEFAULT_VALUES
|CANOF_PARSE_DISPLAY_NAME
, NULL
);
165 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
166 ok( !name
, "expected NULL got %p\n", name
);
169 hr
= CreateAssemblyNameObject( &name
, wine2W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
170 ok( hr
== S_OK
, "expected S_OK got %08x\n", hr
);
171 ok( name
!= NULL
, "expected non-NULL name\n" );
172 IAssemblyName_Release( name
);
174 name
= (IAssemblyName
*)0xdeadbeef;
175 hr
= CreateAssemblyNameObject( &name
, wine3W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
176 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
177 ok( !name
, "expected NULL got %p\n", name
);
179 name
= (IAssemblyName
*)0xdeadbeef;
180 hr
= CreateAssemblyNameObject( &name
, wine4W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
181 ok( hr
== HRESULT_FROM_WIN32( ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME
),
182 "expected ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME got %08x\n", hr
);
183 ok( !name
, "expected NULL got %p\n", name
);
185 name
= (IAssemblyName
*)0xdeadbeef;
186 hr
= CreateAssemblyNameObject( &name
, wine5W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
187 ok( hr
== HRESULT_FROM_WIN32( ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME
),
188 "expected ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME got %08x\n", hr
);
189 ok( !name
, "expected NULL got %p\n", name
);
191 name
= (IAssemblyName
*)0xdeadbeef;
192 hr
= CreateAssemblyNameObject( &name
, wine6W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
193 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
194 ok( !name
, "expected NULL got %p\n", name
);
197 hr
= CreateAssemblyNameObject( &name
, wine7W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
198 ok( hr
== S_OK
, "expected S_OK got %08x\n", hr
);
199 ok( name
!= NULL
, "expected non-NULL name\n" );
200 IAssemblyName_Release( name
);
202 name
= (IAssemblyName
*)0xdeadbeef;
203 hr
= CreateAssemblyNameObject( &name
, wine8W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
204 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
205 ok( !name
, "expected NULL got %p\n", name
);
208 hr
= CreateAssemblyNameObject( &name
, wine9W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
209 ok( hr
== S_OK
, "expected S_OK got %08x\n", hr
);
210 ok( name
!= NULL
, "expected non-NULL name\n" );
211 IAssemblyName_Release( name
);
213 name
= (IAssemblyName
*)0xdeadbeef;
214 hr
= CreateAssemblyNameObject( &name
, wine10W
, CANOF_PARSE_DISPLAY_NAME
, NULL
);
215 ok( hr
== E_INVALIDARG
, "expected E_INVALIDARG got %08x\n", hr
);
216 ok( !name
, "expected NULL got %p\n", name
);
221 test_CreateAssemblyNameObject();