Skip to content

Support for simulating precompiled artifacts #733

@solsjo

Description

@solsjo

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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions