-
Notifications
You must be signed in to change notification settings - Fork 736
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
[SYCL] Move SYCL header E2E checker test to compile-time #15835
Conversation
Signed-off-by: Sarnie, Nick <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@aelovikov-intel fyi
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I put it in e2e because
- We have "standalone" e2e mode when it's separate cmake
- We might be skipping check-sycl for e2e-only changes
- I think it makes sense that the issue in test-e2e is reported in check-sycl-e2e
I see a few problems:
If we update CI to not re-run build when there are E2E only changes, that would fix the problem in 3) about waiting for build but then the users still has to wait for E2E allocation + full E2E run to see the problem. We could also move this test back to E2E if we ever do get CI that does this I guess. It's true that this would require check-sycl to be run when changing E2E tests, but once we get our good build machines back we can make check-sycl a separate task as part of the e2e-changes-only logic and it will absolutely finish before any E2E tests, and should take about a minute or two. To be fair this test isn't a big deal and I doubt people fight with it often, so if you feel strongly I'll close this. |
Going to push a change to address Andrei's concerns in a bit Edit: Hitting some weird problems, working on it. |
// RUN: -A 1 --include=*.c --include=*.cpp --no-group-separator | \ | ||
// RUN: grep -v "XFAIL:" | \ | ||
// RUN: grep -Pv "XFAIL-TRACKER:\s+(?:https://github.com/[\w\d-]+/[\w\d-]+/issues/[\d]+)|(?:[\w]+-[\d]+)" > %t | \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it took me like 4 hours to find why this test was randomly failing, it's because we write to%t
on disk and then immediately cat it after a pipe, seems sometimes we get a partially written/empty file. i don't know enough about bash to say specifically what part is async/buffered/whatever, but we can easily do something cleaner that works consistently
no need to pipe here, just use separate commands
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for fixing that!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We used pipes before we added the output to the file, so yes we should have updated this when adding an output to the file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, this one was really insane to debug, i had to make the test infinite loop and connect to one of the CI machines so i could manually run the commands, i couldnt repro locally, probably because local system was too fast writing to disc?
@aelovikov-intel Hopefully the latest commit addresses your feedback |
Yes it does, thanks! Can you update the description to summarize the change too please? |
Done! |
We have all the info at compile time, no need to waste resources to run this on a device.
Also add an extra step in the Linux build CI to run these tests specifically if we don't run check-sycl, as sometimes we don't run it if there are not changes to SYCL.
We require all tests checking anything about E2E files be in
sycl/test/e2e_test_requirements
. Anything in there will get run at compile time.Also fix a bug I exposed in the XFAIL checker test.