diff --git a/.github/workflows/sycl-windows-precommit.yml b/.github/workflows/sycl-windows-precommit.yml index 8cd6f8b394f44..25dbc74ece376 100644 --- a/.github/workflows/sycl-windows-precommit.yml +++ b/.github/workflows/sycl-windows-precommit.yml @@ -50,9 +50,25 @@ jobs: with: changes: ${{ needs.detect_changes.outputs.filters }} - e2e: + build-e2e: needs: build # Continue if build was successful. + if: | + always() + && !cancelled() + && needs.build.outputs.build_conclusion == 'success' + uses: ./.github/workflows/sycl-windows-run-tests.yml + with: + name: Build Windows E2E tests + runner: '["Windows", "build-e2e"]' + sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} + e2e_testing_mode: build-only + extra_lit_opts: --param sycl_build_targets="spir" + e2e_binaries_artifact: sycl_windows_e2ebin + + run_prebuilt_e2e_tests: + needs: [build, build-e2e] + # Continue if build was successful. if: | always() && !cancelled() @@ -63,6 +79,25 @@ jobs: include: - name: Intel GEN12 Graphics with Level Zero runner: '["Windows","gen12"]' + uses: ./.github/workflows/sycl-windows-run-tests.yml + with: + name: ${{ matrix.name }} + runner: ${{ matrix.runner }} + sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} + e2e_testing_mode: run-only + e2e_binaries_artifact: sycl_windows_e2ebin + + run_full_e2e_tests: + needs: build + # Continue if build was successful. + if: | + always() + && !cancelled() + && needs.build.outputs.build_conclusion == 'success' + strategy: + fail-fast: false + matrix: + include: - name: Intel Battlemage Graphics with Level Zero runner: '["Windows","bmg"]' uses: ./.github/workflows/sycl-windows-run-tests.yml @@ -70,3 +105,4 @@ jobs: name: ${{ matrix.name }} runner: ${{ matrix.runner }} sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} + e2e_testing_mode: full diff --git a/.github/workflows/sycl-windows-run-tests.yml b/.github/workflows/sycl-windows-run-tests.yml index dadf77eb2773b..54bd0bec41b6f 100644 --- a/.github/workflows/sycl-windows-run-tests.yml +++ b/.github/workflows/sycl-windows-run-tests.yml @@ -63,6 +63,15 @@ on: required: false default: "cl" + e2e_testing_mode: + type: string + default: "full" + + e2e_binaries_artifact: + type: string + default: '' + required: False + cts_testing_mode: description: | Testing mode to run SYCL-CTS in, can be either `full`, `build-only` @@ -143,17 +152,36 @@ jobs: sycl-ls - run: | sycl-ls --verbose + + - name: Download E2E Binaries + if: ${{ inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'run-only' }} + uses: actions/download-artifact@v4 + with: + name: ${{ inputs.e2e_binaries_artifact }} + - name: Extract E2E Binaries + if: ${{ inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'run-only' }} + shell: bash + run: | + mkdir build-e2e + tar -xf e2e_bin.tar.gz -C build-e2e + - name: Configure E2E with Level Zero target if: inputs.tests_selector == 'e2e' shell: cmd run: | mkdir build-e2e cmake -GNinja -B build-e2e -S.\llvm\sycl\test-e2e -DSYCL_TEST_E2E_TARGETS="level_zero:gpu" -DCMAKE_CXX_COMPILER="clang++" -DLEVEL_ZERO_LIBS_DIR="D:\\github\\level-zero_win-sdk\\lib" -DLEVEL_ZERO_INCLUDE="D:\\github\\level-zero_win-sdk\\include" -DLLVM_LIT="..\\llvm\\llvm\\utils\\lit\\lit.py" + + - name: Keep track of files after configuring E2E step + if: ${{ always() && inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'build-only' }} + shell: bash + run: ls build-e2e > e2econf_files.txt + - name: Run End-to-End tests if: inputs.tests_selector == 'e2e' shell: bash {0} env: - LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests --param print_features=True ${{ inputs.extra_lit_opts }} + LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests --param print_features=True --param test-mode=${{ inputs.e2e_testing_mode }} ${{ inputs.extra_lit_opts }} run: | # Run E2E tests. if [[ ${{inputs.compiler}} == 'icx' ]]; then @@ -169,6 +197,30 @@ jobs: fi exit $exit_code + # Github CI doesn't support containers on Windows, so we cannot guarantee + # that paths are the same between building and running systems. To avoid + # CMake issues related to absolute paths we reconfigure the build-e2e + # folder on the run system. + - name: Remove E2E configuration files + if: ${{ always() && inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'build-only' }} + shell: bash + run: | + for FILE in $(cat e2econf_files.txt); do rm -r build-e2e/$FILE; done + rm e2econf_files.txt + + - name: Pack E2E test binaries + if: ${{ always() && inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'build-only' }} + shell: bash + run: | + tar -czf e2e_bin.tar.gz -C build-e2e . + - name: Upload E2E test binaries + if: ${{ always() && inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'build-only' }} + uses: actions/upload-artifact@v4 + with: + name: ${{ inputs.e2e_binaries_artifact }} + path: e2e_bin.tar.gz + retention-days: 3 + - name: Run SYCL CTS Tests if: inputs.tests_selector == 'cts' uses: ./devops/actions/run-tests/windows/cts diff --git a/sycl/test-e2e/AOT/cpu.cpp b/sycl/test-e2e/AOT/cpu.cpp index 4d1a24f649e30..513e69b6b2962 100644 --- a/sycl/test-e2e/AOT/cpu.cpp +++ b/sycl/test-e2e/AOT/cpu.cpp @@ -6,7 +6,7 @@ // //===---------------------------------------------------------------------===// -// REQUIRES: opencl-aot, cpu +// REQUIRES: opencl-aot, cpu, opencl-cpu-rt // CPU AOT targets host isa, so we compile on the run system instead. // RUN: %{run-aux} %clangxx -fsycl -fsycl-targets=spir64_x86_64 %S/Inputs/aot.cpp -o %t.out diff --git a/sycl/test-e2e/AOT/multiple-devices.cpp b/sycl/test-e2e/AOT/multiple-devices.cpp index 8e3ff7a68056f..4d10b430ca712 100644 --- a/sycl/test-e2e/AOT/multiple-devices.cpp +++ b/sycl/test-e2e/AOT/multiple-devices.cpp @@ -6,7 +6,7 @@ // //===----------------------------------------------------------------------===// -// REQUIRES: opencl-aot, ocloc, cpu, gpu, target-spir +// REQUIRES: opencl-aot, ocloc, cpu, gpu, target-spir, opencl-cpu-rt // Produce a fat object for all targets (generic SPIR-V, CPU, GPU) // RUN: %clangxx -fsycl -fsycl-targets=spir64,spir64_x86_64,spir64_gen %S/Inputs/aot.cpp -c -o %t.o diff --git a/sycl/test-e2e/AOT/reqd-sg-size.cpp b/sycl/test-e2e/AOT/reqd-sg-size.cpp index 6f7e425648b26..2c2e79ce2c73a 100644 --- a/sycl/test-e2e/AOT/reqd-sg-size.cpp +++ b/sycl/test-e2e/AOT/reqd-sg-size.cpp @@ -1,7 +1,7 @@ // This test ensures that a program that has a kernel // using various required sub-group sizes can be compiled AOT. -// REQUIRES: ocloc, opencl-aot, any-device-is-cpu +// REQUIRES: ocloc, opencl-aot, any-device-is-cpu, opencl-cpu-rt // RUN: %clangxx -fsycl -fsycl-targets=intel_gpu_tgllp -o %t.tgllp.out %s // RUN: %clangxx -fsycl -fsycl-targets=spir64_x86_64 -o %t.x86.out %s diff --git a/sycl/test-e2e/Adapters/cuda_queue_priority.cpp b/sycl/test-e2e/Adapters/cuda_queue_priority.cpp index 031dc252c578f..754b1ab4d5331 100644 --- a/sycl/test-e2e/Adapters/cuda_queue_priority.cpp +++ b/sycl/test-e2e/Adapters/cuda_queue_priority.cpp @@ -1,4 +1,4 @@ -// REQUIRES: gpu, cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit // RUN: %{build} %cuda_options -o %t.out // RUN: %{run} %t.out // diff --git a/sycl/test-e2e/Adapters/sycl-targets-order.cpp b/sycl/test-e2e/Adapters/sycl-targets-order.cpp index 1690e1f247daa..af6074e2bc4e8 100644 --- a/sycl/test-e2e/Adapters/sycl-targets-order.cpp +++ b/sycl/test-e2e/Adapters/sycl-targets-order.cpp @@ -5,7 +5,7 @@ // RUN: %{run-unfiltered-devices} env ONEAPI_DEVICE_SELECTOR="opencl:*" %t-nvptx64-spir64.out // RUN: %{run-unfiltered-devices} env ONEAPI_DEVICE_SELECTOR="cuda:*" %t-nvptx64-spir64.out -// REQUIRES: opencl, target-spir, any-triple-is-nvidia +// REQUIRES: opencl, target-spir, any-target-is-nvidia //==------- sycl-targets-order.cpp - SYCL -fsycl-targets order test --------==// // diff --git a/sycl/test-e2e/Basic/interop/make_kernel_subdevice_l0.cpp b/sycl/test-e2e/Basic/interop/make_kernel_subdevice_l0.cpp index 2e733843a58af..20a56f894dbcf 100644 --- a/sycl/test-e2e/Basic/interop/make_kernel_subdevice_l0.cpp +++ b/sycl/test-e2e/Basic/interop/make_kernel_subdevice_l0.cpp @@ -1,5 +1,5 @@ -// REQUIRES: level_zero, opencl, level_zero_dev_kit -// RUN: %{build} %level_zero_options -lOpenCL -o %t.ze.out +// REQUIRES: level_zero, opencl, level_zero_dev_kit, opencl_icd +// RUN: %{build} %level_zero_options %opencl_lib -o %t.ze.out // RUN: %{run-unfiltered-devices} env ONEAPI_DEVICE_SELECTOR="level_zero:*" %t.ze.out #include diff --git a/sycl/test-e2e/DeviceImageBackendContent/CUDA_interop_test.cpp b/sycl/test-e2e/DeviceImageBackendContent/CUDA_interop_test.cpp index 6225bb11cf141..3ecf862130665 100644 --- a/sycl/test-e2e/DeviceImageBackendContent/CUDA_interop_test.cpp +++ b/sycl/test-e2e/DeviceImageBackendContent/CUDA_interop_test.cpp @@ -1,6 +1,6 @@ // RUN: %{build} %cuda_options -o %t.out // RUN: %{run} %t.out -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit #include #include diff --git a/sycl/test-e2e/E2EExpr.py b/sycl/test-e2e/E2EExpr.py index 3a7a915b64932..db929d3f08a7a 100644 --- a/sycl/test-e2e/E2EExpr.py +++ b/sycl/test-e2e/E2EExpr.py @@ -14,6 +14,7 @@ class E2EExpr(BooleanExpression): "any-target-is-nvidia", "any-target-is-amd", "any-target-is-native_cpu", + "opencl-cpu-rt", "spirv-backend", "linux", "system-linux", diff --git a/sycl/test-e2e/EnqueueNativeCommand/custom-command-cuda.cpp b/sycl/test-e2e/EnqueueNativeCommand/custom-command-cuda.cpp index 7afbaf7cc14ed..686b44bde7013 100644 --- a/sycl/test-e2e/EnqueueNativeCommand/custom-command-cuda.cpp +++ b/sycl/test-e2e/EnqueueNativeCommand/custom-command-cuda.cpp @@ -1,6 +1,6 @@ // RUN: %{build} -Wno-error=deprecated-declarations -o %t.out %cuda_options // RUN: %{run} %t.out -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit #include diff --git a/sycl/test-e2e/EnqueueNativeCommand/custom-command-multiple-dev-cuda.cpp b/sycl/test-e2e/EnqueueNativeCommand/custom-command-multiple-dev-cuda.cpp index 325eb0a6d8238..deaf767415939 100644 --- a/sycl/test-e2e/EnqueueNativeCommand/custom-command-multiple-dev-cuda.cpp +++ b/sycl/test-e2e/EnqueueNativeCommand/custom-command-multiple-dev-cuda.cpp @@ -1,4 +1,4 @@ -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit // UNSUPPORTED: cuda // UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/16951 // RUN: %{build} -o %t.out %cuda_options diff --git a/sycl/test-e2e/Graph/NativeCommand/cuda_explicit_usm.cpp b/sycl/test-e2e/Graph/NativeCommand/cuda_explicit_usm.cpp index b9117d9acf8ce..e93e0a80fb7f3 100644 --- a/sycl/test-e2e/Graph/NativeCommand/cuda_explicit_usm.cpp +++ b/sycl/test-e2e/Graph/NativeCommand/cuda_explicit_usm.cpp @@ -2,7 +2,7 @@ // RUN: %{run} %t.out // RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %cuda_options %} // RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %} -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit #include #include diff --git a/sycl/test-e2e/Graph/NativeCommand/cuda_multiple_native_commands.cpp b/sycl/test-e2e/Graph/NativeCommand/cuda_multiple_native_commands.cpp index cac2d78008770..7706b45c98578 100644 --- a/sycl/test-e2e/Graph/NativeCommand/cuda_multiple_native_commands.cpp +++ b/sycl/test-e2e/Graph/NativeCommand/cuda_multiple_native_commands.cpp @@ -2,7 +2,7 @@ // RUN: %{run} %t.out // RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %cuda_options %} // RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %} -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit // REQUIRES: aspect-usm_shared_allocations // Test that when a host-task splits a graph into multiple backend UR diff --git a/sycl/test-e2e/Graph/NativeCommand/cuda_record_buffer.cpp b/sycl/test-e2e/Graph/NativeCommand/cuda_record_buffer.cpp index 30777016dc3bb..5243f41a447c8 100644 --- a/sycl/test-e2e/Graph/NativeCommand/cuda_record_buffer.cpp +++ b/sycl/test-e2e/Graph/NativeCommand/cuda_record_buffer.cpp @@ -2,7 +2,7 @@ // RUN: %{run} %t.out // RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %cuda_options %} // RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %} -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit #include #include diff --git a/sycl/test-e2e/Graph/NativeCommand/cuda_record_usm.cpp b/sycl/test-e2e/Graph/NativeCommand/cuda_record_usm.cpp index 441b7fb6867ea..c51635e05c676 100644 --- a/sycl/test-e2e/Graph/NativeCommand/cuda_record_usm.cpp +++ b/sycl/test-e2e/Graph/NativeCommand/cuda_record_usm.cpp @@ -2,7 +2,7 @@ // RUN: %{run} %t.out // RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %cuda_options %} // RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %} -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit #include #include diff --git a/sycl/test-e2e/Graph/NativeCommand/opencl_buffer.cpp b/sycl/test-e2e/Graph/NativeCommand/opencl_buffer.cpp index c4c22dab5e2a2..96e1a25a1082c 100644 --- a/sycl/test-e2e/Graph/NativeCommand/opencl_buffer.cpp +++ b/sycl/test-e2e/Graph/NativeCommand/opencl_buffer.cpp @@ -2,7 +2,7 @@ // RUN: %{run} %t.out // RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %threads_lib %opencl_lib %} // RUN: %if preview-breaking-changes-supported %{ %{run} %t2.out %} -// REQUIRES: opencl +// REQUIRES: opencl, opencl_icd #include #include diff --git a/sycl/test-e2e/HostInteropTask/interop-task-cuda-buffer-migrate.cpp b/sycl/test-e2e/HostInteropTask/interop-task-cuda-buffer-migrate.cpp index 92578b84043cd..297ed6fffe966 100644 --- a/sycl/test-e2e/HostInteropTask/interop-task-cuda-buffer-migrate.cpp +++ b/sycl/test-e2e/HostInteropTask/interop-task-cuda-buffer-migrate.cpp @@ -1,4 +1,4 @@ -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit // // RUN: %{build} -o %t.out %cuda_options // RUN: %{run} %t.out diff --git a/sycl/test-e2e/HostInteropTask/interop-task-cuda.cpp b/sycl/test-e2e/HostInteropTask/interop-task-cuda.cpp index 055160e8bb624..adde6ed4d8d03 100644 --- a/sycl/test-e2e/HostInteropTask/interop-task-cuda.cpp +++ b/sycl/test-e2e/HostInteropTask/interop-task-cuda.cpp @@ -1,6 +1,6 @@ // RUN: %{build} -o %t.out %cuda_options // RUN: %{run} %t.out -// REQUIRES: cuda, cuda_dev_kit +// REQUIRES: target-nvidia, cuda_dev_kit #include #include diff --git a/sycl/test-e2e/NewOffloadDriver/cpu.cpp b/sycl/test-e2e/NewOffloadDriver/cpu.cpp index 4e61ff88ad87d..9928392280729 100644 --- a/sycl/test-e2e/NewOffloadDriver/cpu.cpp +++ b/sycl/test-e2e/NewOffloadDriver/cpu.cpp @@ -6,7 +6,7 @@ // //===---------------------------------------------------------------------===// -// REQUIRES: opencl-aot, cpu +// REQUIRES: opencl-aot, cpu, opencl-cpu-rt // CPU AOT targets host isa, so we compile on the run system instead. // Test with `--offload-new-driver` diff --git a/sycl/test-e2e/OptionalKernelFeatures/is_compatible/is_compatible_several_targets.cpp b/sycl/test-e2e/OptionalKernelFeatures/is_compatible/is_compatible_several_targets.cpp index a3617244b4ad7..51cfe332d1234 100644 --- a/sycl/test-e2e/OptionalKernelFeatures/is_compatible/is_compatible_several_targets.cpp +++ b/sycl/test-e2e/OptionalKernelFeatures/is_compatible/is_compatible_several_targets.cpp @@ -1,8 +1,4 @@ -// REQUIRES: opencl-aot, ocloc - -// UNSUPPORTED: windows -// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/17515 -// There is no CPU device on win yet, so opencl-aot fails to compile the kernel. +// REQUIRES: opencl-aot, ocloc, opencl-cpu-rt // RUN: %{run-aux} %clangxx -fsycl -fsycl-targets=spir64_x86_64,spir64_gen -Xsycl-target-backend=spir64_gen %gpu_aot_target_opts %S/Inputs/is_compatible_with_env.cpp -o %t.out diff --git a/sycl/test-e2e/OptionalKernelFeatures/is_compatible/is_compatible_spir64_x86_64.cpp b/sycl/test-e2e/OptionalKernelFeatures/is_compatible/is_compatible_spir64_x86_64.cpp index 6739fcb11585a..4dd674977dda6 100644 --- a/sycl/test-e2e/OptionalKernelFeatures/is_compatible/is_compatible_spir64_x86_64.cpp +++ b/sycl/test-e2e/OptionalKernelFeatures/is_compatible/is_compatible_spir64_x86_64.cpp @@ -1,4 +1,4 @@ -// REQUIRES: opencl-aot, any-device-is-cpu +// REQUIRES: opencl-aot, opencl-cpu-rt // RUN: %{run-aux} %clangxx -fsycl -fsycl-targets=spir64_x86_64 %S/Inputs/is_compatible_with_env.cpp -o %t.out diff --git a/sycl/test-e2e/ProgramManager/uneven_kernel_split.cpp b/sycl/test-e2e/ProgramManager/uneven_kernel_split.cpp index 89045a9d81e2d..82cf772ca0c9e 100644 --- a/sycl/test-e2e/ProgramManager/uneven_kernel_split.cpp +++ b/sycl/test-e2e/ProgramManager/uneven_kernel_split.cpp @@ -1,4 +1,4 @@ -// REQUIRES: any-device-is-cpu, gpu, opencl-aot, ocloc, target-spir +// REQUIRES: any-device-is-cpu, gpu, opencl-aot, ocloc, target-spir, opencl-cpu-rt // UNSUPPORTED: linux // UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/17305 diff --git a/sycl/test-e2e/Regression/reduction_resource_leak_dw.cpp b/sycl/test-e2e/Regression/reduction_resource_leak_dw.cpp index 1223890200021..b904baf169966 100644 --- a/sycl/test-e2e/Regression/reduction_resource_leak_dw.cpp +++ b/sycl/test-e2e/Regression/reduction_resource_leak_dw.cpp @@ -1,5 +1,5 @@ // REQUIRES: level_zero, level_zero_dev_kit -// XFAIL: windows +// XFAIL: windows && run-mode // XFAIL-TRACKER: https://github.com/intel/llvm/issues/16418 // // RUN: %{build} %level_zero_options -o %t.out diff --git a/sycl/test-e2e/SpecConstants/2020/non_native/multiple-targets.cpp b/sycl/test-e2e/SpecConstants/2020/non_native/multiple-targets.cpp index b04a8330e09c7..5f98e9136dbbf 100644 --- a/sycl/test-e2e/SpecConstants/2020/non_native/multiple-targets.cpp +++ b/sycl/test-e2e/SpecConstants/2020/non_native/multiple-targets.cpp @@ -1,4 +1,4 @@ -// REQUIRES: opencl-aot, cpu, target-spir +// REQUIRES: opencl-aot, cpu, target-spir, opencl-cpu-rt // RUN: %clangxx -fsycl -fsycl-targets=spir64,spir64_x86_64 %S/Inputs/common.cpp -o %t_spv_cpu.out // RUN: %{run} %t_spv_cpu.out diff --git a/sycl/test-e2e/lit.cfg.py b/sycl/test-e2e/lit.cfg.py index 222ae37208b59..7554220a01255 100644 --- a/sycl/test-e2e/lit.cfg.py +++ b/sycl/test-e2e/lit.cfg.py @@ -620,13 +620,17 @@ def open_check_file(file_name): if "amdgcn" in sp[1]: config.sycl_build_targets.add("target-amd") +cmd = "{} {}".format(config.run_launcher, sycl_ls) if config.run_launcher else sycl_ls +sycl_ls_output = subprocess.check_output(cmd, text=True, shell=True) + +# In contrast to `cpu` feature this is a compile-time feature, which is needed +# to check if we can build cpu AOT tests. +if "opencl:cpu" in sycl_ls_output: + config.available_features.add("opencl-cpu-rt") + if len(config.sycl_devices) == 1 and config.sycl_devices[0] == "all": devices = set() - cmd = ( - "{} {}".format(config.run_launcher, sycl_ls) if config.run_launcher else sycl_ls - ) - sp = subprocess.check_output(cmd, text=True, shell=True) - for line in sp.splitlines(): + for line in sycl_ls_output.splitlines(): if not line.startswith("["): continue (backend, device) = line[1:].split("]")[0].split(":") diff --git a/sycl/test-e2e/syclcompat/kernel/kernel_win.cpp b/sycl/test-e2e/syclcompat/kernel/kernel_win.cpp index 53ce174a8b7c0..c62b3e53f4a2e 100644 --- a/sycl/test-e2e/syclcompat/kernel/kernel_win.cpp +++ b/sycl/test-e2e/syclcompat/kernel/kernel_win.cpp @@ -2,6 +2,9 @@ // DEFINE: %{sharedflag} = %if cl_options %{/clang:-shared%} %else %{-shared%} -// RUN: %clangxx %{sharedflag} -fsycl %{sycl_target_opts} %S\Inputs\kernel_module.cpp -o %t.dll -// RUN: %clangxx -DTEST_SHARED_LIB='"%/t.dll"' -fsycl %{sycl_target_opts} %S\Inputs\kernel_function.cpp -o %t.out +// This test is sensitive to the absolute path of the dll file produced, so we +// run the test completely on the run system to avoid issues. + +// RUN: %{run-aux} %clangxx %{sharedflag} -fsycl %{sycl_target_opts} %S\Inputs\kernel_module.cpp -o %t.dll +// RUN: %{run-aux} %clangxx -DTEST_SHARED_LIB='"%/t.dll"' -fsycl %{sycl_target_opts} %S\Inputs\kernel_function.cpp -o %t.out // RUN: %{run} %t.out