@@ -280,7 +280,50 @@ command:
280
280
281
281
# ## Test DPC++ toolchain
282
282
283
- # ### Run regression tests
283
+ There are 3 types of tests which are used for DPC++ toolchain validation:
284
+ * DPC++ in-source LIT tests including [check-llvm](../../llvm/test),
285
+ [check-clang](../../clang/test), [check-llvm-spirv](../../llvm-spirv/test) and
286
+ [check-sycl](../../sycl/test) targets stored in this repository. These tests
287
+ should be not have hardware or external software dependencies (e.g OpenCL,
288
+ Level Zero, CUDA runtimes). All test which do not follow this approach should
289
+ be moved to DPC++ end-to-end tests.
290
+
291
+ * DPC++ end-to-end (E2E) tests which are extension to
292
+ [LLVM\* test suite](https://github.com/intel/llvm-test-suite/tree/intel/SYCL).
293
+ These tests cover full DPC++ stack including all dependencies (e.g. OpenCL,
294
+ Level Zero, CUDA runtimes).
295
+
296
+ * SYCL-CTS are official [Khronos\* SYCL\* conformance tests](https://github.com/KhronosGroup/SYCL-CTS).
297
+ They verify SYCL 1.2.1 specification compatibility. All implementation details
298
+ or extensions are out of scope for the tests.
299
+
300
+ # ### Contribution to DPC++ tests
301
+ Every product change should be accompanied with corresponding test modification
302
+ (adding new test(s), extending or modifying existing test(s)).
303
+
304
+ The test location is selected depending on test nature:
305
+
306
+ - A test which depends only on tools and libraries produced during build of
307
+ the repository can be put to in-source LIT. Also the tests for a feature under
308
+ active development requiring atomic change for tests and product can be put to
309
+ [sycl/test/on-device](../../sycl/test/on-device) temporarily. It is developer
310
+ responsibility to move the tests to DPC++ E2E test suite once feature is
311
+ stabilized.
312
+
313
+ - A test which requires full stack including backend runtimes (e.g. OpenCL,
314
+ Level Zero or CUDA) should be put to DPC++ E2E test suite following
315
+ [CONTRIBUTING](https://github.com/intel/llvm-test-suite/blob/intel/CONTRIBUTING.md).
316
+
317
+ - If SYCL specification has changed (SYCL CTS tests conflict with recent
318
+ version of SYCL specification) or change is required in the way the tests are
319
+ built with DPC++ compiler (defined in
320
+ [FindIntel_SYCL](https://github.com/KhronosGroup/SYCL-CTS/blob/SYCL-1.2.1/master/cmake/FindIntel_SYCL.cmake))
321
+ pull request should be created under
322
+ [KhronosGroup/SYCL-CTS](https://github.com/KhronosGroup/SYCL-CTS) with required
323
+ patch.
324
+
325
+
326
+ # ### Run in-source LIT tests
284
327
285
328
To verify that built DPC++ toolchain is working correctly, run:
286
329
@@ -302,6 +345,11 @@ skipped.
302
345
If CUDA support has been built, it is tested only if there are CUDA devices
303
346
available.
304
347
348
+ # ### Run DPC++ E2E test suite
349
+
350
+ Follow instructions from the link below to build and run tests:
351
+ [README](https://github.com/intel/llvm-test-suite/tree/intel/SYCL#execution)
352
+
305
353
# ### Run Khronos\* SYCL\* conformance test suite (optional)
306
354
307
355
Khronos\* SYCL\* conformance test suite (CTS) is intended to validate
0 commit comments