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','=','\"','0','1','.','2','.','3','.','4','\"',',',
33 't','y','p','e','=','\"','w','i','n','3','2','\"',',',
34 'p','r','o','c','e','s','s','o','r','A','r','c','h','i','t','e','c','t','u','r','e','=',
35 '\"','x','8','6','\"',',','p','u','b','l','i','c','K','e','y','T','o','k','e','n','=',
36 '\"','1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','\"',0};
37 static const WCHAR wine3W[] =
38 {'w','i','n','e',',','v','e','r','s','i','o','n','=','\"','1','.','2','.','3','.','4','\"',0};
39 static const WCHAR wine4W[] =
40 {'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','2','.','3','.','4',0};
41 static const WCHAR wine5W[] =
42 {'w','i','n','e',',',' ','v','e','r','s','i','o','n','=','\"','1','.','2','.','3','.','4','\"',0};
43 static const WCHAR wine6W[] =
44 {'w','i','n','e',',','v','e','r','s','i','o','n',' ','=','\"','1','.','2','.','3','.','4','\"',0};
45 static const WCHAR wine7W[] =
46 {'w','i','n','e',',','v','e','r','s','i','o','n','=',' ','\"','1','.','2','.','3','.','4','\"',0};
47 static const WCHAR wine8W[] =
48 {'w','i','n','e',' ',',','v','e','r','s','i','o','n','=','\"','1','.','2','.','3','.','4','\"',0};
49 static const WCHAR wine9W[] =
50 {'w','i','n','e',',','v','e','r','s','i','o','n',0};
51 static const WCHAR wine10W[] =
52 {'w','i','n','e',',','t','y','p','e','=','\"','\"',0};
53 static const WCHAR wine11W[] =
54 {'w','i','n','e',',','t','y','p','e','=','\"','w','i','n','3','2',0};
56 static void test_CreateAssemblyNameObject( void )
58 static const WCHAR emptyW[] = {0};
62 hr = CreateAssemblyNameObject( NULL, wine1W, CANOF_PARSE_DISPLAY_NAME, NULL );
63 ok(hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr);
65 name = (IAssemblyName *)0xdeadbeef;
66 hr = CreateAssemblyNameObject( &name, NULL, CANOF_PARSE_DISPLAY_NAME, NULL );
67 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
68 ok( !name, "expected NULL got %p\n", name );
70 name = (IAssemblyName *)0xdeadbeef;
71 hr = CreateAssemblyNameObject( &name, emptyW, CANOF_PARSE_DISPLAY_NAME, NULL );
72 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
73 ok( !name, "expected NULL got %p\n", name );
75 name = (IAssemblyName *)0xdeadbeef;
76 hr = CreateAssemblyNameObject( &name, NULL, CANOF_SET_DEFAULT_VALUES, NULL );
77 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
78 ok( !name, "expected NULL got %p\n", name );
80 name = (IAssemblyName *)0xdeadbeef;
81 hr = CreateAssemblyNameObject( &name, emptyW, CANOF_SET_DEFAULT_VALUES, NULL );
82 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
83 ok( !name, "expected NULL got %p\n", name );
86 hr = CreateAssemblyNameObject( &name, wine1W, CANOF_PARSE_DISPLAY_NAME, NULL );
87 ok( hr == S_OK, "expected S_OK got %08x\n", hr );
88 ok( name != NULL, "expected non-NULL name\n" );
89 IAssemblyName_Release( name );
91 hr = CreateAssemblyNameObject( NULL, wine1W, CANOF_SET_DEFAULT_VALUES, NULL );
92 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
94 name = (IAssemblyName *)0xdeadbeef;
95 hr = CreateAssemblyNameObject( &name, NULL, CANOF_SET_DEFAULT_VALUES, NULL );
96 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
97 ok( !name, "expected NULL got %p\n", name );
99 name = (IAssemblyName *)0xdeadbeef;
100 hr = CreateAssemblyNameObject( &name, emptyW, CANOF_SET_DEFAULT_VALUES, NULL );
101 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
102 ok( !name, "expected NULL got %p\n", name );
104 name = (IAssemblyName *)0xdeadbeef;
105 hr = CreateAssemblyNameObject( &name, NULL, CANOF_SET_DEFAULT_VALUES, NULL );
106 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
107 ok( !name, "expected NULL got %p\n", name );
109 name = (IAssemblyName *)0xdeadbeef;
110 hr = CreateAssemblyNameObject( &name, emptyW, CANOF_SET_DEFAULT_VALUES, NULL );
111 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
112 ok( !name, "expected NULL got %p\n", name );
114 name = (IAssemblyName *)0xdeadbeef;
115 hr = CreateAssemblyNameObject( &name, wine1W, CANOF_SET_DEFAULT_VALUES, NULL );
116 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
117 ok( !name, "expected NULL got %p\n", name );
119 hr = CreateAssemblyNameObject( NULL, wine1W, 0, NULL );
120 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
122 name = (IAssemblyName *)0xdeadbeef;
123 hr = CreateAssemblyNameObject( &name, NULL, 0, NULL );
124 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
125 ok( !name, "expected NULL got %p\n", name );
127 name = (IAssemblyName *)0xdeadbeef;
128 hr = CreateAssemblyNameObject( &name, emptyW, 0, NULL );
129 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
130 ok( !name, "expected NULL got %p\n", name );
132 name = (IAssemblyName *)0xdeadbeef;
133 hr = CreateAssemblyNameObject( &name, NULL, 0, NULL );
134 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
135 ok( !name, "expected NULL got %p\n", name );
137 name = (IAssemblyName *)0xdeadbeef;
138 hr = CreateAssemblyNameObject( &name, emptyW, 0, NULL );
139 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
140 ok( !name, "expected NULL got %p\n", name );
142 name = (IAssemblyName *)0xdeadbeef;
143 hr = CreateAssemblyNameObject( &name, wine1W, 0, NULL );
144 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
146 hr = CreateAssemblyNameObject( NULL, wine1W, CANOF_SET_DEFAULT_VALUES|CANOF_PARSE_DISPLAY_NAME, NULL );
147 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
149 name = (IAssemblyName *)0xdeadbeef;
150 hr = CreateAssemblyNameObject( &name, NULL, CANOF_SET_DEFAULT_VALUES|CANOF_PARSE_DISPLAY_NAME, NULL );
151 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
152 ok( !name, "expected NULL got %p\n", name );
154 name = (IAssemblyName *)0xdeadbeef;
155 hr = CreateAssemblyNameObject( &name, emptyW, CANOF_SET_DEFAULT_VALUES|CANOF_PARSE_DISPLAY_NAME, NULL );
156 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
157 ok( !name, "expected NULL got %p\n", name );
159 name = (IAssemblyName *)0xdeadbeef;
160 hr = CreateAssemblyNameObject( &name, NULL, CANOF_SET_DEFAULT_VALUES|CANOF_PARSE_DISPLAY_NAME, NULL );
161 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
162 ok( !name, "expected NULL got %p\n", name );
164 name = (IAssemblyName *)0xdeadbeef;
165 hr = CreateAssemblyNameObject( &name, emptyW, CANOF_SET_DEFAULT_VALUES|CANOF_PARSE_DISPLAY_NAME, NULL );
166 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
167 ok( !name, "expected NULL got %p\n", name );
169 name = (IAssemblyName *)0xdeadbeef;
170 hr = CreateAssemblyNameObject( &name, wine1W, CANOF_SET_DEFAULT_VALUES|CANOF_PARSE_DISPLAY_NAME, NULL );
171 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
172 ok( !name, "expected NULL got %p\n", name );
175 hr = CreateAssemblyNameObject( &name, wine3W, CANOF_PARSE_DISPLAY_NAME, NULL );
176 ok( hr == S_OK, "expected S_OK got %08x\n", hr );
177 ok( name != NULL, "expected non-NULL name\n" );
178 IAssemblyName_Release( name );
180 name = (IAssemblyName *)0xdeadbeef;
181 hr = CreateAssemblyNameObject( &name, wine4W, CANOF_PARSE_DISPLAY_NAME, NULL );
182 ok( hr == E_INVALIDARG, "expected E_INVALIDARG 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 == HRESULT_FROM_WIN32( ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME ),
194 "expected ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME got %08x\n", hr );
195 ok( !name, "expected NULL got %p\n", name );
197 name = (IAssemblyName *)0xdeadbeef;
198 hr = CreateAssemblyNameObject( &name, wine7W, CANOF_PARSE_DISPLAY_NAME, NULL );
199 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
200 ok( !name, "expected NULL got %p\n", name );
203 hr = CreateAssemblyNameObject( &name, wine8W, CANOF_PARSE_DISPLAY_NAME, NULL );
204 ok( hr == S_OK, "expected S_OK got %08x\n", hr );
205 ok( name != NULL, "expected non-NULL name\n" );
206 IAssemblyName_Release( name );
208 name = (IAssemblyName *)0xdeadbeef;
209 hr = CreateAssemblyNameObject( &name, wine9W, CANOF_PARSE_DISPLAY_NAME, NULL );
210 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
211 ok( !name, "expected NULL got %p\n", name );
214 hr = CreateAssemblyNameObject( &name, wine10W, CANOF_PARSE_DISPLAY_NAME, NULL );
215 ok( hr == S_OK, "expected S_OK got %08x\n", hr );
216 ok( name != NULL, "expected non-NULL name\n" );
217 IAssemblyName_Release( name );
219 name = (IAssemblyName *)0xdeadbeef;
220 hr = CreateAssemblyNameObject( &name, wine11W, CANOF_PARSE_DISPLAY_NAME, NULL );
221 ok( hr == E_INVALIDARG, "expected E_INVALIDARG got %08x\n", hr );
222 ok( !name, "expected NULL got %p\n", name );
227 test_CreateAssemblyNameObject();