-
Notifications
You must be signed in to change notification settings - Fork 291
Support for simulating precompiled artifacts #733
Description
VUnit does a great job of deriving the dependency tree for the compile phase. This relieves the developer of the burden of maintaining a buildsystem.
But there are benefits with allowing a buildsystem to relieve VUnit of that work as well.
For instance,
the build system bazel + surrounding tools, enables artifacts to be built, cached and tested remotely.
The benefit being that if an artifact already exists remotely it won't have to be rebuilt locally.
If rebuilt the (ghdl linking) or update of the lib / library.cfg file is only a small increment and a fast operation.
If a bazel test-rule depends on an artifact that hasn't changed then the test won't need to run, conversely only a tests with a dependency change needs to be tested. This reduces the amount of tests needed to run during e.g. a commit hook or CI pipeline for a pull request.
For this to work VUnit cannot be allowed to know the whole dependency tree. Rather it only needs the
- test-bench file to parse
- the python test configuration file
- the test artifact
In the extension I could write bazel rules for ghdl compilation and vunit tests.
I have prepared a commit and
a draft pull-request which describes the intension, but I'm sure there are more correct ways of handling it.
I'd be happy to contribute and can make the pull request myself if I get feedback on how it should be added.
I'm also perfectly fine with someone else doing it, the code change in my commit is pretty small. (test are missing though, as this is still just at the idea stage)