-
Notifications
You must be signed in to change notification settings - Fork 44
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
[test-triton.sh] Add an option to unskip all pytest.skip() calls #1345
Conversation
4ce54b4
to
34f7043
Compare
When |
f73cbf0
to
5e3cefc
Compare
Done, thanks~ |
5e3cefc
to
047648c
Compare
854e7b6
to
4a09d71
Compare
4a09d71
to
b70b553
Compare
Note that with https://github.com/intel/intel-xpu-backend-for-triton/actions/runs/9584339696/job/26427723595
vs https://github.com/intel/intel-xpu-backend-for-triton/actions/runs/9583508901/job/26424953218
In both modes, it must be the same total number of tests. |
When TEST_UNSKIP mode, deselect file is not enabled, so cases in the deselect file actually are counted twice! Take
However in TEST_UNSKIP mode, 12 cases in deselect file were executed failed, they are also counted as skipped. That is why, we got failed: 12, skipped: 12. I've checked the log, 12 cases appeared in both log & deselect file. The same goes I have not checked the This is a bug from pass_rate.py, I think. |
This is not a bug,
We will merge this PR when the total number of tests will be the same in both modes, and the number of passed tests in |
That's reasonable. Working on it. |
ddccfdf
to
f7b54b6
Compare
After digging in, found that, it is not calculation error, but an execution error. In unskip mode, language cases were not fully executed! you will find log:
It stopped at 91% While in default mode:
It stopped at 100% |
fddb48f
to
9d2120d
Compare
In un-skip mode, Actually there are two option to ensure test fully being executed:
Please have a look, @pbchekin @vlad-penkin , I prefer option#2, how do you think? |
bd0247c
to
bea172a
Compare
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.
The run didn't finish for LTS, please take a look. Also there are several comments for the code.
scripts/pre-run.sh
Outdated
> "$TESTED_CASES" | ||
> "$TMP_LOG" | ||
|
||
while true; do |
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 don't like the idea to restart pytest after test crash, pytest-xdist
automatically handles this, see https://pytest-xdist.readthedocs.io/en/stable/crash.html. The pre-run.sh
script basically runs all core tests, then you run them again in the workflow, that is a waste of time and compute resources. Potentially you just need to set --max-worker-restart
to a bigger number and do everything in one pass.
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.
--max-worker-restart
works, core-dump cases are classified as FAILED.
-
unskip mode:
language: passed: 10351, failed: 344, skipped: 1, xfailed: 521, total: 11217, fixme: 0, pass rate (w/o xfailed): 96.77%
line_info: passed: 5, failed: 0, skipped: 0, xfailed: 0, total: 5, fixme: 0, pass rate (w/o xfailed): 100.0%
regression: passed: 16, failed: 0, skipped: 0, xfailed: 8, total: 24, fixme: 0, pass rate (w/o xfailed): 100.0%
runtime: passed: 39, failed: 0, skipped: 0, xfailed: 8, total: 47, fixme: 0, pass rate (w/o xfailed): 100.0%
subprocess: passed: 22, failed: 12, skipped: 0, xfailed: 0, total: 34, fixme: 0, pass rate (w/o xfailed): 64.71%
all: passed: 10433, failed: 356, skipped: 1, xfailed: 537, total: 11327, fixme: 0, pass rate (w/o xfailed): 96.69% -
default mode:
language: passed: 10349, failed: 0, skipped: 347, xfailed: 521, total: 11217, fixme: 0, pass rate (w/o xfailed): 96.76%
line_info: passed: 5, failed: 0, skipped: 0, xfailed: 0, total: 5, fixme: 0, pass rate (w/o xfailed): 100.0%
regression: passed: 16, failed: 0, skipped: 0, xfailed: 8, total: 24, fixme: 0, pass rate (w/o xfailed): 100.0%
runtime: passed: 39, failed: 0, skipped: 0, xfailed: 8, total: 47, fixme: 0, pass rate (w/o xfailed): 100.0%
subprocess: passed: 22, failed: 0, skipped: 12, xfailed: 0, total: 34, fixme: 0, pass rate (w/o xfailed): 64.71%
all: passed: 10431, failed: 0, skipped: 359, xfailed: 537, total: 11327, fixme: 0, pass rate (w/o xfailed): 96.67%
Let's see the CI.
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.
There is still 1 case missing from CI, I set -n8 --max-worker-restart=300
, It stopped at 99%. 😅
In fact the above configure does not always reach 100% from local.
So I change it to 500.
Because the job running on runner triton-fox125-1 has exceeded the maximum execution time of 360 minutes. LTS run got canceled by CI . |
e8bc8f0
to
289d432
Compare
289d432
to
7fbf8f4
Compare
I am not making a trivial change, such as fixing a typo in a comment.
I have written a PR description following these
rules.
I have run
pre-commit run --from-ref origin/main --to-ref HEAD
.Select one of the following.
/test
forlit
tests/unittest
for C++ tests/python/test
for end-to-end testsdoes not change any triton code
.Select one of the following.
lit
tests.lit
tests I have added follow these best practices,including the "tests should be minimal" section. (Usually running Python code
and using the instructions it generates is not minimal.)
Functionality
Fix #987
Usage
./scripts/test-triton.sh
default run./scripts/test-triton.sh --unskip --ignore-errrors
replace allpytest.skip
withpass
PR also support unskip test on CI, you can manually trigger test from CI, and set
enable_unskip
astrue
(false
as default).If CI test is triggered from
pull_request
orpush
,TEST_UNSKIP
is alwaysfalse
.Result
Take
test_dot
as an example:Results are expected.