-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added ghdl/vunit:* images for CI environments #11
Comments
Would you mind providing an image with lcov, gcov and VUnit? Then I can try it out these days |
Sorry btw. for the long time of silence! |
The images mentioned above do already have all those tools.
It's absolutely ok! |
Thanks a lot! I've re-built as described and it works, besides that
Do you want to install it in the base image or should I in my custom image? I think it'd make sense to have it per default as it's the coverage tool that is "supported" by GitLab more or less OOTB |
FYI the information that gcovr was installed was lost when I created the minimal example... in the original GHDL issue. Thanks again for your work btw! |
Yes, I think it's a fair request. Images Thank you for testing! Do you have any repo (here or at GitLab) where you are actually using these images in a CI workflow/pipeline? |
yep, that worked and I rebuilt my image but I'm not sure what is wrong now... it seems like gcov never comes to an end it stays in
and after I killed the process I get
the relevant parts of run.py are as follows
sorry, only in a private GitLab instance. |
Are you using exactly the same repo/commit as before? Did it work before? I ask it because all I did in this regard was to add a Python package through pip. It should be unrelated to gcov/lcov. You might try using Nonetheless, please provide a MWE. It is very hard to guess what's going on otherwise. This might be an issue/bug in VUnit. About the |
of ghdl/vunit? or my own repo? if you meant ghdl/vunit I used Now I re-tried based on latest
I'll see if I find the time to create one
I'll change that as soon as it's working again ;-) |
I meant of your own repo. Anyway, if some of the images that we generate here do work and others don't, the issue is clearly unrelated to your repo. Let's focus on hunting the differences on our side.
This is interesting. That image is 5 months old. The latest is This is just for you to understand the context:
Hence, we have that:
As long as you can consistently test which images work and which do not, it's ok with you just running the tests. |
I tried now based on |
It might be because of the GCC version. Unfortunately, I cannot reproduce. I modified example All passed!
------------------------------------------------------------------------------
GCC Code Coverage Report
Directory: /src/examples/vhdl/coverage
------------------------------------------------------------------------------
File Lines Exec Cover Missing
------------------------------------------------------------------------------
tb_coverage.vhd 7 7 100%
------------------------------------------------------------------------------
TOTAL 7 7 100%
------------------------------------------------------------------------------ May know if you set sim option |
I've stripped it down to a MWE https://gist.github.com/sjaeckel/e6ace0cb5df3eac87b95cf9f587b1bf0 |
FYI it's not limited to gcovr, lcov hangs as well |
I added the MWE with a few modifications to |
I've rebuilt the docker image with the updated base from After running my real code gcov still hangs ... let's see if I can find the time to create another MWE ... :-\ |
Good! Unfortunately, we don't have a completely automated sequence to update all the images in order. Hence, when we push some breaking change, a couple of days might be needed for it to settle up. Nevertheless, it works! I'm closing this issue, because the purpose is fulfilled (we have images with GCC, VUnit and/or coverage available now). But, let's continue hunting your issue!
A probably meaningful difference between your gist/example and the MWE, is that in the MWE coverage related sim/compile options are added to a LIBRARY object ( |
Yep, I've seen that and I've tried both but the result is the same. I'll open a fresh issue as soon as I've had the time to create a MWE |
Coming from ghdl/ghdl#883
I've been reworking the images in ghdl/docker (see the README and the repository list at dockerhub). Here are some notes which are still to be properly documented, and which are related to the conversation in ghdl/ghdl#883:
ghdl/run:*gcc
images includelcov
now. As a result, allghdl/ghdl:*gcc*
images should be ready-to-use for coverage analysis now.ghdl/vunit:*
, which includes six images:mcode
,mcode-master
,llvm
,llvm-master
,gcc
andgcc-master
. These are built on top ofghdl/ghdl:buster-mcode
,ghdl/ghdl:buster-llvm-7
andghdl/ghdl:buster-gcc-8.3.0
, respectively.*-master
variants include latest VUnit (master
branch), while others include the latest stable release (installed through pip).ghdl/ext:gtkwave
,ghdl/ext:broadway
orghdl/ext:latest
. All of them include VUnit too. The first two of them are based onghdl/vunit:llvm-master
, and the last one is based onghdl/ext:ls-debian
(which includes GHDL with LLVM backend too).@sjaeckel, these changes should allow you to rewrite your dockerfile as:
Which makes me wonder: do you really need git and vim inside the container? You might have a good reason to do so. I'm just asking so I can help you rethink your workflow to get rid of those dependencies, should you want to do so.
I'd really appreciate if you could test this, since I have never used the coverage feature. There are five
ghdl/ghdl:*gcc*
tags and six tags inghdl/vunit
. I'm not going to ask you to test all of them! Should you want to try a few, I think the priority for your use case is:Overall, please do not hesitate to request changes/features, such as including
lcov
in images with GCC (this was, honestly, so stupid of me) or providing images with VUnit and coverage support (i.e. GCC bakend).The text was updated successfully, but these errors were encountered: