-
Notifications
You must be signed in to change notification settings - Fork 507
360 lines (356 loc) · 20.2 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
name: test
on:
pull_request:
paths-ignore:
- '.github/ISSUE_TEMPLATE/**'
- 'web/**'
push:
paths-ignore:
- '.github/ISSUE_TEMPLATE/**'
- 'web/**'
branches:
- master
jobs:
check:
runs-on: windows-2022
strategy:
matrix:
include:
- version: stable
host: x86_64-pc-windows-msvc
target: x86_64-pc-windows-msvc
etc:
- version: nightly
host: x86_64-pc-windows-msvc
target: i686-pc-windows-msvc
etc:
- version: nightly
host: x86_64-pc-windows-gnu
target: x86_64-pc-windows-gnu
etc:
- version: stable
host: x86_64-pc-windows-gnu
target: i686-pc-windows-gnu
etc:
- version: stable
host: x86_64-pc-windows-msvc
target: aarch64-pc-windows-msvc
etc: --no-run
- version: nightly
host: x86_64-pc-windows-msvc
target: aarch64-pc-windows-msvc
etc: --no-run
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Update toolchain
run: rustup update --no-self-update ${{ matrix.version }} && rustup default ${{ matrix.version }}-${{ matrix.host }}
- name: Add toolchain target
run: rustup target add ${{ matrix.target }}
- name: Install fmt
run: rustup component add rustfmt
- name: Fix environment
uses: ./.github/actions/fix-environment
- name: Clean
run: cargo clean
- name: Test cppwinrt
run: cargo test -p cppwinrt --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test helpers
run: cargo test -p helpers --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_bits
run: cargo test -p sample_bits --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_com_uri
run: cargo test -p sample_com_uri --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_component_hello_world
run: cargo test -p sample_component_hello_world --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_component_json_validator
run: cargo test -p sample_component_json_validator --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_component_json_validator_client
run: cargo test -p sample_component_json_validator_client --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_component_json_validator_winrt
run: cargo test -p sample_component_json_validator_winrt --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_component_json_validator_winrt_client
run: cargo test -p sample_component_json_validator_winrt_client --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_component_json_validator_winrt_client_cpp
run: cargo test -p sample_component_json_validator_winrt_client_cpp --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_consent
run: cargo test -p sample_consent --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_core_app
run: cargo test -p sample_core_app --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_counter
run: cargo test -p sample_counter --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_counter_sys
run: cargo test -p sample_counter_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_create_window
run: cargo test -p sample_create_window --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_create_window_sys
run: cargo test -p sample_create_window_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_credentials
run: cargo test -p sample_credentials --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_data_protection
run: cargo test -p sample_data_protection --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_dcomp
run: cargo test -p sample_dcomp --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_delay_load
run: cargo test -p sample_delay_load --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_delay_load_sys
run: cargo test -p sample_delay_load_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_device_watcher
run: cargo test -p sample_device_watcher --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_direct2d
run: cargo test -p sample_direct2d --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_direct3d12
run: cargo test -p sample_direct3d12 --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_enum_windows
run: cargo test -p sample_enum_windows --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_enum_windows_sys
run: cargo test -p sample_enum_windows_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_file_dialogs
run: cargo test -p sample_file_dialogs --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_kernel_event
run: cargo test -p sample_kernel_event --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_memory_buffer
run: cargo test -p sample_memory_buffer --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_message_box
run: cargo test -p sample_message_box --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_message_box_sys
run: cargo test -p sample_message_box_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_ocr
run: cargo test -p sample_ocr --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_overlapped
run: cargo test -p sample_overlapped --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_privileges
run: cargo test -p sample_privileges --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_privileges_sys
run: cargo test -p sample_privileges_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_rss
run: cargo test -p sample_rss --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_shell
run: cargo test -p sample_shell --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_simple
run: cargo test -p sample_simple --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_spellchecker
run: cargo test -p sample_spellchecker --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_task_dialog
run: cargo test -p sample_task_dialog --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_task_dialog_sys
run: cargo test -p sample_task_dialog_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_thread_pool_work
run: cargo test -p sample_thread_pool_work --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_thread_pool_work_sys
run: cargo test -p sample_thread_pool_work_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_uiautomation
run: cargo test -p sample_uiautomation --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_wmi
run: cargo test -p sample_wmi --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test sample_xml
run: cargo test -p sample_xml --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_agile
run: cargo test -p test_agile --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_agile_reference
run: cargo test -p test_agile_reference --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_alternate_success_code
run: cargo test -p test_alternate_success_code --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_arch
run: cargo test -p test_arch --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Clean
run: cargo clean
- name: Test test_arch_feature
run: cargo test -p test_arch_feature --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_array
run: cargo test -p test_array --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_async
run: cargo test -p test_async --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_bcrypt
run: cargo test -p test_bcrypt --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_bindgen
run: cargo test -p test_bindgen --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_calling_convention
run: cargo test -p test_calling_convention --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_cfg_generic
run: cargo test -p test_cfg_generic --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_class_hierarchy
run: cargo test -p test_class_hierarchy --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_collections
run: cargo test -p test_collections --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_component
run: cargo test -p test_component --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_component_client
run: cargo test -p test_component_client --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_composable
run: cargo test -p test_composable --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_composable_client
run: cargo test -p test_composable_client --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_const_fields
run: cargo test -p test_const_fields --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_const_params
run: cargo test -p test_const_params --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_const_ptrs
run: cargo test -p test_const_ptrs --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_constructors
run: cargo test -p test_constructors --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_constructors_client
run: cargo test -p test_constructors_client --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_core
run: cargo test -p test_core --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_debug
run: cargo test -p test_debug --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_debugger_visualizer
run: cargo test -p test_debugger_visualizer --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_deprecated
run: cargo test -p test_deprecated --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_dispatch
run: cargo test -p test_dispatch --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_does_not_return
run: cargo test -p test_does_not_return --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_enums
run: cargo test -p test_enums --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_error
run: cargo test -p test_error --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_event
run: cargo test -p test_event --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_extensions
run: cargo test -p test_extensions --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_handles
run: cargo test -p test_handles --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_implement
run: cargo test -p test_implement --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_implement_core
run: cargo test -p test_implement_core --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_interface
run: cargo test -p test_interface --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_interface_core
run: cargo test -p test_interface_core --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_interop
run: cargo test -p test_interop --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_lib
run: cargo test -p test_lib --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_linux
run: cargo test -p test_linux --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_literals
run: cargo test -p test_literals --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_match
run: cargo test -p test_match --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_matrix3x2
run: cargo test -p test_matrix3x2 --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_metadata
run: cargo test -p test_metadata --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_msrv
run: cargo test -p test_msrv --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_no_std
run: cargo test -p test_no_std --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_no_use
run: cargo test -p test_no_use --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_noexcept
run: cargo test -p test_noexcept --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_not_dll
run: cargo test -p test_not_dll --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_query_signature
run: cargo test -p test_query_signature --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_readme
run: cargo test -p test_readme --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_reference_float
run: cargo test -p test_reference_float --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_registry
run: cargo test -p test_registry --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_registry_default
run: cargo test -p test_registry_default --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Clean
run: cargo clean
- name: Test test_reserved
run: cargo test -p test_reserved --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_resources
run: cargo test -p test_resources --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_result
run: cargo test -p test_result --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_return_handle
run: cargo test -p test_return_handle --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_return_struct
run: cargo test -p test_return_struct --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_standalone
run: cargo test -p test_standalone --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_string_param
run: cargo test -p test_string_param --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_strings
run: cargo test -p test_strings --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_structs
run: cargo test -p test_structs --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_sys
run: cargo test -p test_sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_targets
run: cargo test -p test_targets --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_unions
run: cargo test -p test_unions --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_variant
run: cargo test -p test_variant --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_wdk
run: cargo test -p test_wdk --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_weak
run: cargo test -p test_weak --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_weak_ref
run: cargo test -p test_weak_ref --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_win32
run: cargo test -p test_win32 --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_win32_arrays
run: cargo test -p test_win32_arrays --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_window_long
run: cargo test -p test_window_long --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test test_winrt
run: cargo test -p test_winrt --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test tool_bindings
run: cargo test -p tool_bindings --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test tool_gnu
run: cargo test -p tool_gnu --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test tool_license
run: cargo test -p tool_license --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test tool_msvc
run: cargo test -p tool_msvc --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test tool_standalone
run: cargo test -p tool_standalone --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test tool_yml
run: cargo test -p tool_yml --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows
run: cargo test -p windows --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-bindgen
run: cargo test -p windows-bindgen --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-core
run: cargo test -p windows-core --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-implement
run: cargo test -p windows-implement --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-interface
run: cargo test -p windows-interface --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-metadata
run: cargo test -p windows-metadata --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-registry
run: cargo test -p windows-registry --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-result
run: cargo test -p windows-result --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-strings
run: cargo test -p windows-strings --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-sys
run: cargo test -p windows-sys --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-targets
run: cargo test -p windows-targets --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows-version
run: cargo test -p windows-version --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows_aarch64_gnullvm
run: cargo test -p windows_aarch64_gnullvm --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows_aarch64_msvc
run: cargo test -p windows_aarch64_msvc --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows_i686_gnu
run: cargo test -p windows_i686_gnu --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows_i686_gnullvm
run: cargo test -p windows_i686_gnullvm --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows_i686_msvc
run: cargo test -p windows_i686_msvc --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows_x86_64_gnu
run: cargo test -p windows_x86_64_gnu --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows_x86_64_gnullvm
run: cargo test -p windows_x86_64_gnullvm --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Test windows_x86_64_msvc
run: cargo test -p windows_x86_64_msvc --target ${{ matrix.target }} ${{ matrix.etc }}
- name: Check diff
shell: bash
run: |
git add -N .
git diff --exit-code || (echo 'Tests changed code in the repo.'; exit 1)