VRT unit testing#65
Open
JOOpdenhoevel wants to merge 18 commits intoXilinx:devfrom
Open
Conversation
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
…or GitHub Action workflows Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Author
|
I've looked at the |
|
Could you add a cmake flag for whether the tests should be built or not? Can default to on, but should be disabled in |
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Signed-off-by: Jan-Oliver Opdenhövel <Jan-Oliver.Opdenhovel@amd.com>
Author
|
Done. I had already included this for libslash and VRTD in #68, but here it was still missing. |
quetric
reviewed
Apr 28, 2026
Collaborator
There was a problem hiding this comment.
Why is AVED added as submodule here? I thought we already carried AVED as submodule for firmware/shell builds
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces the testing infrastructure for VRT, using GTest as the unit testing framework and gcov/lcov for coverage reporting.
The test suite already covers large portions of the code base, around 62% of lines and functions each. This is especially made possible by a small ZeroMQ server written in Python that is inserted into a custom VBIN container as the
vpp_emuorvpp_simexecutable. This way, you can in theory test all aspects regarding emulation and simulation in a GitHub Actions workflow, without access to Vivado or a dependency on the linker. However, the functionality of this small server is still relatively simple, which is one of the reasons why not everything is tested yet.The other reason is that I had to disable the two test cases that actually try to "run" and await a kernel because Claude Code has used the broken
Device::getKernelmethod to fetch the kernel objects. This method is broken since it fetches the kernel objects directly from the internal storage of theDeviceclass, where the kernels miss a valid Platform and ZMQ server handle. The quick and easy fix would be set these fields just like inKernel::Kernel, but I think that the actual, underlying issue is that the device object is storing invalid kernel objects, which should not be the case. However, fixing this is a separate contribution. I'm therefore disabling these test cases for now and will come back to this issue with a separate PR; This is an issue that should definitely be fixed IMO.