Open rachitnigam opened 3 months ago
Thanks for flagging this! The queue team is aware of our embarrassingly large files, and we hope to clean this up as part of #2191! Hopefully we'll massage this away in a few weeks :)
@EclecticGriffin any update on the usability of cider2 as a component interpreter programmatically?
@EclecticGriffin any update on the usability of cider2 as a component interpreter programmatically?
I don't see what that has to do with this issue? Unless I'm missing something?
wrt to the .expect
files all of these are from the polybench tests and so I don't see those changing, meaning we can hit them with the .freeze
@EclecticGriffin any update on the usability of cider2 as a component interpreter programmatically?
I don't see what that has to do with this issue? Unless I'm missing something?
The testbench I'm writing depends on cycle-level interpretation of calyx components, and I think it eliminates the need for expect files when testing, for example, a data structure (and it's more important to test behavioral aspects of the code then external memory state after completion).
wrt to the .expect files all of these are from the polybench tests and so I don't see those changing, meaning we can hit them with the .freeze
Perfect! Let's do that @EclecticGriffin!
The testbench I'm writing depends on cycle-level interpretation of calyx components, and I think it eliminates the need for expect files when testing, for example, a data structure (and it's more important to test behavioral aspects of the code then external memory state after completion).
@ethanuppal this sounds cool and potentially useful for the queues team. However, I think it is super important to get buy-in from folks and making sure it actually serves the purpose that they want it to do.
@nathanielnrn do you have any thoughts on how we can remove the large AXI expect tests?
Update:
I think the best solution for yxi
/AXI tests relies on implementing https://github.com/rachitnigam/runt/issues/20. After that I think it's enough to test only for .yxi
output and functional correctness with cocotb
. The problem is that currently fud2
doesn't quite handle the path finding correctly to go from calyx
-> axi-wrapped-calyx
-> ... cocotb
. Without the correct path finding/runt functionality nothing is enforcing the axi-wrapped-calyx
to stay in sync with the generator without the tests that produce big .expect
files.
I'd like to say a little more about the queues team wrt the rust test interface. Basically I think the rust test interface sounds neat, but I don't want to devote lots of resources to porting our testing over right now. Porting over to a rust test interface is a medium-term goal for us.
At present I have asked my team to generate the enormous .expect and .data files that we presently do, test against those, and then discard them. So it all goes down as usual, it just doesn't get checked in.
@anshumanmohan sounds like a good plan!
The general philosophy around checking in golden files requires them to be inspected when changes occur. It is not clear to me that files larger than a reasonably small bound are ever realistically checked. This leads to a false sense of security because we technically have "tests" even though we're not really making sure they are correct.
I ran the following command to find all the
.expect
files that are longer than 300 files:A couple of recommendations:
.freeze.expect
to indicate that this output will never change after being committed to the repo..expect
filesBackend
Frontends
YXI and Xilinx
(@nathanielnrn)
Interpreter
(@EclecticGriffin)
Queues
(@anshumanmohan)