D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 18235 - Group logically similar tests into the same module in the D2 testsuite
Summary: Group logically similar tests into the same module in the D2 testsuite
Status: NEW
Alias: None
Product: D
Classification: Unclassified
Component: dmd (show other issues)
Version: D2
Hardware: All All
: P4 enhancement
Assignee: No Owner
URL:
Keywords: bootcamp, TestSuite, trivial
Depends on:
Blocks:
 
Reported: 2018-01-14 11:59 UTC by Iain Buclaw
Modified: 2024-12-13 18:56 UTC (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Iain Buclaw 2018-01-14 11:59:39 UTC
Each new file added to the testsuite may as well be adding 5 seconds onto the overall runtime.  Logical groupings could be done to improve the overall CI speed.

For example, all fail_compilation tests that check coverage of error messages in `dmd/dinterpret.d` could be put into a single module `fail_compilation/fail_dinterpret.d`
Comment 1 Seb 2018-04-05 03:55:30 UTC
Not saying anything about the logical grouping, but this is a bit exaggerated imho:

> Each new file added to the testsuite may as well be adding 5 seconds onto the overall runtime.  

_All_ 1283 fail_compilation tests compile in ~11s on my machine.
The 774 compilable tests are slightly slower with ~25s ... and you don't want to know how long runnable takes :/
(of course the numbers are taken with full parallelism on an i7 4th Gen)

Anyhow, if someone wants to make the testsuite faster, the runnable tests are the real bad boys and should be focussed on first.
Comment 2 moonlightsentinel 2021-05-20 18:15:50 UTC
Grouping test files doesn't achieve much in regard to the general test execution time. The real time sink are the permutations for DMD's optimizer/inliner (compare `./run.d` with `./run.d quick`)
Comment 3 Eddy Schauman-Haigh 2022-01-12 17:25:14 UTC
Hi! I'm looking to contribute to D and have experience as an SDET so this issue looks perfect. However, from the comments and age of the issue, it's not clear if this is still required. Is it a genuine open issue?
Comment 4 Dennis 2022-01-12 18:20:13 UTC
(In reply to Eddy Schauman-Haigh from comment #3)
> However, from the comments and age of the issue, it's
> not clear if this is still required. Is it a genuine open issue?

Yes, it's still an open issue, the test suite has only grown since. Contributions are appreciated! You can find the test suite here:

https://github.com/dlang/dmd/tree/master/test
Comment 5 Eddy Schauman-Haigh 2022-01-12 18:36:24 UTC
(In reply to Dennis from comment #4)
> (In reply to Eddy Schauman-Haigh from comment #3)
> > However, from the comments and age of the issue, it's
> > not clear if this is still required. Is it a genuine open issue?
> 
> Yes, it's still an open issue, the test suite has only grown since.
> Contributions are appreciated! You can find the test suite here:
> 
> https://github.com/dlang/dmd/tree/master/test

Great! In which case I'll start having a look at this issue. Thanks for the swift reply Dennis!
Comment 6 Iain Buclaw 2022-01-13 09:57:54 UTC
Just be sure to benchmark, benchmark, and benchmark some more!

Things that have changed since the original raising of this include:

- Running the most expensive tests first had reduced the time it took to complete by about a minute when using parallelism.
- Fail compilation tests no longer run with all permutations.
- Neither do compilable tests.
Comment 7 dlangBugzillaToGithub 2024-12-13 18:56:08 UTC
THIS ISSUE HAS BEEN MOVED TO GITHUB

https://github.com/dlang/dmd/issues/17832

DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB