-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Extract some product tests into a separate suites #14818
Conversation
6666351
to
85fe883
Compare
...-tests-launcher/src/main/java/io/trino/tests/product/launcher/suite/suites/SuiteClients.java
Outdated
Show resolved
Hide resolved
85fe883
to
c622af0
Compare
We can see that suite 6 and 7 improved over 20 minutes, getting them down to about 30 minutes. Suite 1 and 2 got improved only slightly, by ~10 minutes, getting them just below an hour. If this gets approved, we can continue splitting more tests out of these suites, but I don't want to add more commits in this PR. |
I wonder why both branches have 24 PT job count. Shouldn't there be more jobs executed on this branch now that new suites have been created? |
This is a coincidence, master runs additional jobs with secrets, like Azure and GCP tests. |
@hashhar PTAL |
c622af0
to
8168180
Compare
What is the affect on wall-time? cc: @findepi regarding the direction (not actual changes) since I know you have opinions on this. |
BTW this change was requested by @electrum |
This might also let us avoid running suite6 and suite7 for PRs with only those plugin changes. |
@findepi PTAL |
...ests-launcher/src/main/java/io/trino/tests/product/launcher/suite/suites/SuiteFunctions.java
Outdated
Show resolved
Hide resolved
{ | ||
return ImmutableList.of( | ||
testOnEnvironment(EnvMultinode.class) | ||
.withGroups("configured_features", "tpch") |
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.
when do i write "configured_features" ?
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.
When you want to ensure that the test environment (EnvMultinode.class
) properly defines all configured features and doesn't have any additional ones (like extra catalogs). If that would happen, if there are tests that rely on those features, they could be skipped in some PRs.
Since we reuse the same environments in multiple suites if some don't run tests from the configured_features
group, nothing terrible would happen, but it's good to keep it in every suite for consistency. I hope that's why you noticed it's missing.
.../src/main/java/io/trino/tests/product/launcher/suite/suites/SuiteStorageFormatsDetailed.java
Outdated
Show resolved
Hide resolved
I like the direction |
8168180
to
0facaf3
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.
LGTM % can we verify we run same number of tests?
In past I've noticed such refactor end up running same test group as part of multiple suites (which is ok but reverse is also possible - some group not being run at all).
We probably write surefire reports for PTs which would include test counts (with fully qualified names as well) so we can disable impact analysis, do a run before this change, another with this and see what we see?
We don't have functions to parse XML in Trino, but I used regexes to extract test class names from test reports stored as GitHub run artifacts: I compared these runs:
with classes as (
select run_id, array_agg(distinct test_class order by test_class) as classes
from artifacts
cross join unnest(regexp_extract_all(from_utf8(contents), 'class name="(.*)"', 1)) as c(test_class)
where run_id in (3461805232, 3457214593) and name like 'test report pt %'
group by run_id
)
select array_join(array_except(
(select classes from classes where run_id = 3461805232),
(select classes from classes where run_id = 3457214593)), U&'\000A') as missing; which gives:
Most of these look like they should be in |
Whoops, I reversed the ids in The tests I'm missing in this branch are:
|
And the ones above require secrets, so it makes sense I'm not running them in my fork. |
False alarm, I had a bug in the connector, it was skipping zip file entries when the size was unknown. I made sure I'm getting all artifacts and reports and tests missing here are:
|
Suite 6 total run time is near 1 hour so split it up
Suite 6 total run time is near 1 hour so split it up
Suite 6 total run time is near 1 hour so split it up
Suite 7 total run time is near 1 hour so split it up
Suite 7 total run time is near 1 hour so split it up
Suite 1 total run time is over 1 hour so split it up
Suite 2 total run time is over 1 hour so split it up
0facaf3
to
ed69894
Compare
Iceberg tests are missing because the job failed. I think I saw it green before, so I rebased and I'm running the CI again. |
I compared it again with https://github.com/trinodb/trino/actions/runs/3470415629 and there are no extra tests and we're missing only ones that require secrets:
|
Description
Suite 6 and 7 total run time is nearly 1 hour so split them up. Check the running times at the end of the product tests step at https://github.com/trinodb/trino/actions/runs/3343271418/jobs/5537463265
Non-technical explanation
n/a
Release notes
(x) This is not user-visible or docs only and no release notes are required.
( ) Release notes are required, please propose a release note for me.
( ) Release notes are required, with the following suggested text: