Running regression tests against one backend. #1938
Replies: 4 comments 11 replies
-
If it's truly agnostic I wonder if running it against a backend which is randomly chosen per test is a good idea. That should give a good compromise between testing regressions on different backends while not spending a (hopefully) unnecessary time in CI. It also means we can avoid the trap of testing all our regressions on (for instance) VHDL and not noticing as quickly if regressions get into Verilog. Another point to consider is what if the same failure is caused by different defects in different HDLs special code paths. In that case there's an argument for wanting to run the regression test on all backends because there are multiple disjoint fixes to check for regression... Maybe a solution would be to have test target as something like data TestTarget = Any [Hdl] | All [Hdl] where |
Beta Was this translation helpful? Give feedback.
-
Good point |
Beta Was this translation helpful? Give feedback.
-
Some other point related to tests and HDLs: |
Beta Was this translation helpful? Give feedback.
-
I'm very supportive of trying to cut down on CI times. I'm hesitant to support selectively running tests though, as it seems to work around the real problem: 95% of the testsuite's time is spent on spinning up Clash / the GHC API. Furthermore, I'm worried that this will lead to friction both for us and new users; flaky CI is no fun. Given that almost no time is spent in normalization / netlist generation, but in parsing/typechecking/loading interface files I'd propose exploring three routes:
|
Beta Was this translation helpful? Give feedback.
-
In https://github.com/clash-lang/clash-compiler/pull/1936/files#diff-53bdb3d095d1977ff127ea7945cf60f53f260192d6f821cf5feb2c86c65e4b4bR43-R50 we added a regression test against all three backends, which I should note is something that we've been doing by default, even though the original bug was backend-agnostic.
To save on CI time, I wonder whether we should just run these backend-agnostic regression tests against a single backend. This is something I already did in e.g. https://github.com/clash-lang/clash-compiler/pull/1925/files#diff-9270575e760574273e144931e9ae5e7f544cc12deb4ebc44c17dc93d348f9f30R535
Thoughts?
Beta Was this translation helpful? Give feedback.
All reactions