26
26
if inputs.target_devices contains 'ext_oneapi_hip'
27
27
type : string
28
28
required : False
29
+ tests_selector :
30
+ description : |
31
+ Two possible options: "e2e" and "cts".
32
+ type : string
33
+ default : " e2e"
29
34
30
35
ref :
31
36
type : string
92
97
- ' ext_oneapi_level_zero:gpu'
93
98
- ' ext_oneapi_hip:gpu'
94
99
- ' ext_intel_esimd_emulator:gpu'
100
+ tests_selector :
101
+ type : choice
102
+ options :
103
+ - e2e
104
+ - cts
95
105
96
106
env :
97
107
description : |
98
- Suggested variables: LIT_FILTER, LIT_FILTER_OUT. LIT_OPTS won't work
99
- as we redefine it as part of this workflow.
100
- default : ' {"LIT_FILTER":""}'
108
+ Suggested variables: for E2E tests - LIT_FILTER, LIT_FILTER_OUT.
109
+ LIT_OPTS won't work as we redefine it as part of this workflow.
110
+
111
+ For SYCL CTS - CTS_TEST_ARGS that will be passed as an argument to the
112
+ test_all executable.
113
+
114
+ Format: '{"VAR1":"VAL1","VAR2":"VAL2",...}'
115
+ default : ' {}'
101
116
102
117
install_drivers :
103
118
type : choice
106
121
- true
107
122
108
123
jobs :
109
- lin_e2e_only :
124
+ run :
110
125
name : ${{ inputs.name }}
111
126
runs-on : ${{ fromJSON(inputs.runner) }}
112
127
container :
@@ -126,12 +141,27 @@ jobs:
126
141
devops
127
142
- name : Register cleanup after job is finished
128
143
uses : ./devops/actions/cleanup
129
- - uses : ./devops/actions/cached_checkout
144
+ - name : Checkout E2E tests
145
+ if : inputs.tests_selector == 'e2e'
146
+ uses : ./devops/actions/cached_checkout
130
147
with :
131
148
path : llvm
132
149
ref : ${{ inputs.ref || github.sha }}
133
150
merge_ref : ${{ inputs.merge_ref }}
134
151
cache_path : " /__w/repo_cache/"
152
+ - name : Checkout SYCL CTS tests
153
+ if : inputs.tests_selector == 'cts'
154
+ uses : ./devops/actions/cached_checkout
155
+ with :
156
+ path : khronos_sycl_cts
157
+ repository : ' KhronosGroup/SYCL-CTS'
158
+ ref : ' SYCL-2020'
159
+ default_branch : ' SYCL-2020'
160
+ cache_path : " /__w/repo_cache/"
161
+ - name : SYCL CTS GIT submodules init
162
+ if : inputs.tests_selector == 'cts'
163
+ run : |
164
+ git -C khronos_sycl_cts submodule update --init
135
165
- name : Install drivers
136
166
if : inputs.install_drivers == 'true'
137
167
run : |
@@ -179,25 +209,51 @@ jobs:
179
209
- run : which clang++ sycl-ls
180
210
- run : sycl-ls --verbose
181
211
- run : SYCL_PI_TRACE=-1 sycl-ls
182
- - name : Deduce CMake options
212
+
213
+ - name : Deduce E2E CMake options
214
+ if : inputs.tests_selector == 'e2e'
183
215
id : cmake_opts
184
216
shell : bash
217
+ env :
218
+ CMAKE_EXTRA_ARGS : ${{ inputs.extra_cmake_args }}
185
219
run : |
186
- if [ -n "${{ inputs.extra_cmake_args }} " ]; then
187
- echo 'opts=${{ inputs.extra_cmake_args }} ' >> $GITHUB_OUTPUT
220
+ if [ -n "$CMAKE_EXTRA_ARGS " ]; then
221
+ echo 'opts=$CMAKE_EXTRA_ARGS ' >> $GITHUB_OUTPUT
188
222
else
189
223
if [ "${{ contains(inputs.target_devices, 'ext_oneapi_hip') }}" == "true" ]; then
190
224
echo 'opts=-DHIP_PLATFORM="AMD" -DAMD_ARCH="gfx1031"' >> $GITHUB_OUTPUT
191
225
else
192
226
echo 'opts=' >> $GITHUB_OUTPUT
193
227
fi
194
228
fi
195
- - run : echo ${{ steps.cmake_opts.outputs.opts }}
196
- - name : Configure
229
+ - name : Configure E2E tests
230
+ if : inputs.tests_selector == 'e2e'
197
231
run : |
198
232
cmake -GNinja -B./build-e2e -S./llvm/sycl/test-e2e -DSYCL_TEST_E2E_TARGETS="${{ inputs.target_devices }}" -DCMAKE_CXX_COMPILER="$(which clang++)" -DLLVM_LIT="$PWD/llvm/llvm/utils/lit/lit.py" ${{ steps.cmake_opts.outputs.opts }}
199
233
- name : SYCL End-to-end tests
234
+ if : inputs.tests_selector == 'e2e'
200
235
env :
201
236
LIT_OPTS : -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests
202
237
run : |
203
238
ninja -C build-e2e check-sycl-e2e
239
+
240
+ - name : Build SYCL CTS tests
241
+ if : inputs.tests_selector == 'cts'
242
+ env :
243
+ CMAKE_EXTRA_ARGS : ${{ inputs.extra_cmake_args }}
244
+ run : |
245
+ cmake -GNinja -B./build-cts -S./khronos_sycl_cts -DCMAKE_CXX_COMPILER=$(which clang++) \
246
+ -DSYCL_IMPLEMENTATION=DPCPP \
247
+ -DSYCL_CTS_EXCLUDE_TEST_CATEGORIES="$PWD/devops/cts_exclude_filter" \
248
+ -DSYCL_CTS_ENABLE_OPENCL_INTEROP_TESTS=OFF \
249
+ -DSYCL_CTS_MEASURE_BUILD_TIMES=ON \
250
+ -DDPCPP_INSTALL_DIR="$$(dirname (which clang++))/.." \
251
+ $CMAKE_EXTRA_ARGS
252
+ ninja -C build-cts
253
+ - name : Run SYCL CTS tests
254
+ if : inputs.tests_selector == 'cts'
255
+ env :
256
+ ONEAPI_DEVICE_SELECTOR : ${{ inputs.target_devices }}
257
+ run : |
258
+ ./build-cts/bin/test_all --list-devices
259
+ ./build-cts/bin/test_all $CTS_TEST_ARGS
0 commit comments