-
Notifications
You must be signed in to change notification settings - Fork 798
[CI][E2E] Split gen12 pre-commit testing into build and run stages #16321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 20 commits
ad165c5
d604088
0f6313b
142e661
ba3dd1a
8ec39c3
ca6fdce
99747cc
04676fd
0470bf2
0a7a772
b0dabe2
125285c
ee4a9ce
3047efb
d38dce2
06f0abb
3bb4d20
3e7d549
a49ec58
3951884
cee4ea0
702b54a
2000693
457db63
7cc0042
dabce66
1d12eac
6ee8620
776e5f0
35f8e08
c9eb5de
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,7 +19,7 @@ on: | |
|
|
||
| target_devices: | ||
| type: string | ||
| required: True | ||
| required: False | ||
| extra_cmake_args: | ||
| type: string | ||
| required: False | ||
|
|
@@ -59,6 +59,22 @@ on: | |
| default: '' | ||
| required: False | ||
|
|
||
| e2e_binaries_artifact: | ||
| type: string | ||
| default: '' | ||
| required: False | ||
|
|
||
ayylol marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| e2e_testing_mode: | ||
| type: string | ||
| default: 'full' | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. can we add a
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok, added |
||
| artifact_suffix: | ||
| type: string | ||
| default: 'default' | ||
| retention-days: | ||
| description: 'E2E binaries artifact retention period' | ||
| type: string | ||
| default: 1 | ||
|
|
||
| reset_intel_gpu: | ||
| type: string | ||
| required: False | ||
|
|
@@ -87,6 +103,7 @@ on: | |
| - '["amdgpu"]' | ||
| - '["Linux", "arc"]' | ||
| - '["cts-cpu"]' | ||
| - '["Linux", "build"]' | ||
| image: | ||
| description: | | ||
| Use option ending with ":build" for AMDGPU, ":latest" for the rest. | ||
|
|
@@ -142,6 +159,11 @@ on: | |
| options: | ||
| - false | ||
| - true | ||
| e2e_testing_mode: | ||
| type: choice | ||
| options: | ||
| - "full" | ||
| - "build-only" | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
@@ -270,8 +292,19 @@ jobs: | |
| cat /usr/local/lib/igc/IGCTAG.txt | ||
| fi | ||
|
|
||
| - name: Download E2E Binaries | ||
| if: inputs.e2e_binaries_artifact != '' | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: ${{ inputs.e2e_binaries_artifact }} | ||
| - name: Extract E2E Binaries | ||
| if: inputs.e2e_binaries_artifact != '' | ||
| run: | | ||
| mkdir build-e2e | ||
| tar -I 'zstd' -xf e2e_binaries.tar.zst -C build-e2e | ||
|
|
||
| - name: Deduce E2E CMake options | ||
| if: inputs.tests_selector == 'e2e' | ||
| if: inputs.tests_selector == 'e2e' && inputs.e2e_binaries_artifact == '' | ||
| id: cmake_opts | ||
| shell: bash | ||
| env: | ||
|
|
@@ -281,14 +314,14 @@ jobs: | |
| echo "opts=$CMAKE_EXTRA_ARGS" >> $GITHUB_OUTPUT | ||
| fi | ||
| - name: Configure E2E tests | ||
| if: inputs.tests_selector == 'e2e' | ||
| if: inputs.tests_selector == 'e2e' && inputs.e2e_binaries_artifact == '' | ||
| run: | | ||
| 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 }} | ||
| cmake -GNinja -B./build-e2e -S./llvm/sycl/test-e2e -DCMAKE_CXX_COMPILER="$(which clang++)" -DLLVM_LIT="$PWD/llvm/llvm/utils/lit/lit.py" ${{ steps.cmake_opts.outputs.opts }} | ||
| - name: SYCL End-to-end tests | ||
| shell: bash {0} | ||
| if: inputs.tests_selector == 'e2e' | ||
| env: | ||
| LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests ${{ inputs.extra_lit_opts }} | ||
| LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests --param test-mode=${{ inputs.e2e_testing_mode }} --param sycl_devices=${{ inputs.target_devices }} ${{ inputs.extra_lit_opts }} | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Does it work when
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yep, It's set to |
||
| run: | | ||
| ninja -C build-e2e check-sycl-e2e > e2e.log 2>&1 | ||
| exit_code=$? | ||
|
|
@@ -375,3 +408,13 @@ jobs: | |
| grep 'exit code: [^0]' -r logs >> $GITHUB_STEP_SUMMARY | ||
|
|
||
| exit $ret | ||
| - name: Pack e2e binaries | ||
ayylol marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| if: ${{ always() && !cancelled() && inputs.e2e_testing_mode == 'build-only'}} | ||
| run: tar -I 'zstd -9' -cf e2e_binaries.tar.zst -C ./build-e2e . | ||
| - name: Upload e2e binaries | ||
ayylol marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| if: ${{ always() && !cancelled() && inputs.e2e_testing_mode == 'build-only'}} | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sycl_e2e_bin_${{ inputs.artifact_suffix }} | ||
| path: e2e_binaries.tar.zst | ||
| retention-days: ${{ inputs.retention-days }} | ||
ayylol marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,6 +7,7 @@ | |
| //===---------------------------------------------------------------------===// | ||
|
|
||
| // REQUIRES: opencl-aot, cpu | ||
| // REQUIRES: build-and-run-mode | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is the reason behind this extra requirement? If we have any limitations now as to what we can do in our tests, then they should be documented somewhere.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hey, so the extra requirements in this pr fell into these camps:
Here's a run of the CI before adding the extra requirements: https://github.com/intel/llvm/actions/runs/12262397938 As for the comment about the tests being disabled forever, I am working on #16306 to avoid this. The idea there being that when in Should also point out Andrei's comment on that pr #16306 (comment), Which I think explains the current plan in regards to this extra mark-up.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added the
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @AlexeySachkov Hey, just wanted to check if your concerns with the documentation + accidentally disabling tests were addressed. With the documentation pr #16409, and the use of the fallback option. With the regards to the fallback option for running tests that require |
||
|
|
||
| // RUN: %clangxx -fsycl -fsycl-targets=spir64_x86_64 %S/Inputs/aot.cpp -o %t.out | ||
| // RUN: %{run} %t.out | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,6 @@ | ||
| // End-to-End test for testing device image compression in AOT. | ||
| // REQUIRES: zstd, opencl-aot, cpu | ||
| // REQUIRES: build-and-run-mode | ||
|
|
||
| // RUN: %clangxx -fsycl -fsycl-targets=spir64_x86_64 %O0 --offload-compress --offload-compression-level=3 %S/Inputs/single_kernel.cpp -o %t_compress.out | ||
| // RUN: %{run} %t_compress.out |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,5 @@ | ||
| // REQUIRES: opencl-aot, cpu, linux | ||
| // REQUIRES: build-and-run-mode | ||
|
|
||
| // RUN: %clangxx -DSYCL_FALLBACK_ASSERT=1 -fsycl -fsycl-targets=spir64_x86_64 %S/assert.cpp -o %t.aot.out | ||
| // RUN: env EXPECTED_SIGNAL=SIGABRT SHOULD_CRASH=1 %{run} %t.aot.out 2>&1 | FileCheck %S/assert.cpp --check-prefixes=CHECK-MESSAGE |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,15 +1,15 @@ | ||
|
|
||
| // RUN: %clangxx -fsycl -fsycl-targets=%{sycl_triple} %S/Inputs/trivial.cpp -o %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="macaroni:*" %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR=":" %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="level_zero:." %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="macaroni_level_zero:." %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="level_zero:macaroni_gpu" %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="level_zero:0..0" %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="level_zero:" %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="level_zero:::gpu" %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="level_zero:.1" %{run-unfiltered-devices} %t.out | ||
| // RUN: not env ONEAPI_DEVICE_SELECTOR="" %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="macaroni:*" %{run-unfiltered-devices} %t.out | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. sorry what does
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The workaround for the lit hang that I was experiencing involved calling the I also ran this test using the internal shell + the
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ah ok thanks for the explanation, i thought it was running bash |
||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR=":" %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="level_zero:." %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="macaroni_level_zero:." %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="level_zero:macaroni_gpu" %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="level_zero:0..0" %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="level_zero:" %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="level_zero:::gpu" %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="level_zero:.1" %{run-unfiltered-devices} %t.out | ||
| // RUN: not --crash env ONEAPI_DEVICE_SELECTOR="" %{run-unfiltered-devices} %t.out | ||
|
|
||
| // Calling ONEAPI_DEVICE_SELECTOR with an illegal input should result in an | ||
| // error. | ||
Uh oh!
There was an error while loading. Please reload this page.