Open FFY00 opened 4 years ago
The tests don't need the actual tools and instead use mock versions of the tools in tests/mock_commands
. The GitHub CI setup is just Ubuntu without anything special installed, and tests Python 3.8 so there shouldn't be anything surprising there. Files like iverilog-vpi.cmd
referenced in the errors are just one-liners with the command line arguments recorded.
A frequent source of test failures like these is command line arguments getting out of order, so they may be valid but don't match the reference output. I don't know why you might be seeing an intermittent failure. Unfortunately the test output doesn't actually show the differences between the two files reference in the error. Are you able to post them?
Thanks for working on the packaging. Unfortunately I haven't got a clue about what goes wrong here. Ideally the differences between the files should be shown in the output, but thanks to an annoying "feature" in pytest, this doesn't work (happens when the assert is in a different file from the test function).
If you can compare the files between ref_dir and work_root it would help a lot to analzye what goes wrong
Sticking a print(os.listdir(work_root))
shows:
['Makefile', 'test_icarus_minimal_0.scr']
For test_icarus_minimal
, there should be a spyglass.cmd
right?
['Makefile', 'spyglass-run-some_othergoal.tcl', 'spyglass-run-lint_lint_rtl.tcl', 'spyglass-run-design_read.tcl', 'test_spyglass_0.prj']
For test_spyglass_tooloptions
. Similarly, there should be a spyglass.cmd
, right?
The test failures print the name of the temporary directory used for the output, so you shouldn't have to dive into Python to check the test's output files. In the example you posted the failing tests put their outputs in /tmp/icarus_tzu23ah2/iverilog-vpi.cmd
, /tmp/spyglass_4py1xwbp/spyglass.cmd
, and /tmp/spyglass_nal23vau/spyglass.cmd
.
For test_icarus_minimal
I'd expect to see Makefile
, test_icarus_minimal_0.scr
, iverilog.cmd
, and vvp.cmd
. The two files you show are created from the configure
command and the later two from build
and run
, so I don't know whether your list is from early in the run before they were created or whether something is going wrong in the build phase that is resulting in them not being created. Similarly for the Spyglass test it looks like the spyglass.cmd
file that should be created by the build
command is missing.
I may be wrong, but I would expect different errors if the files were totally missing. The earlier failures you posted seem more like the files are there but don't have the expected contents. If that's the case then posting the contents of the failing files from the temporary directory would be helpful.
Do we know if this is still an issue?
Hey, I am packaging this for archlinux and the tests are failing. I am building from the latest release.
Are the tools needed for the tests? Some of them seem to pass without them installed.
The test output is also a bit fiddly, sometimes
test_icarus.py
fails, sometimes it doesn't.