Closed drom closed 5 years ago
Yes, they are incorrect, std. defines only unary version. It is Icarus extension and few other tools do support it as well.
@piotr-binkowski maybe we could add some kind of a blacklisting mechanism for the third-party tests, and just skip tests that are invalid?
For some libraries there are such a blacklist in hdCovertor https://github.com/Nic30/hdlConvertor/blob/master/tests/test_verilator_testsuite.py#L59. (I do not know 100% if this the list is correct, I just checked the std. and tools on edaplayground.)
GitHubFast Verilog/VHDL parser preprocessor and code generator for C++/Python based on ANTL4 - Nic30/hdlConvertor
It is an imported test. Can we just fix it?
@drom are the tests from 11.4.9 (e.g https://symbiflow.github.io/sv-tests/#tree_sitter_verilog|11.4.9|unary_op_nor ) not sufficient?
If you think so I guess we could add additional tests that mimic this one (but I guess with the should_fail flag?)
This is imported from an external test suite and I think that if they require fixing they should be fixed upstream first, but that might be hard if you take what @Nic30 said into account:
It is Icarus extension and few other tools do support it as well.
(i.e. the upstream may not want to get it fixed)
I can confirm that the upstream usually do not want to "get it fixed". I found only one discussion about this https://github.com/steveicarus/ivtest/issues/8#issuecomment-527216222 but they were all the same.
@tgorochowik I agree that generated 11.4.9 tests should be sufficient, and we should mark this test as should_fail = 1
.
Maybe we need a "vendor extension" type tag? If this is actually found in real code in the wild we should probably check for support...
I tried to build a list of such an extensions, however how it seems to me that the "extension" is just different term for "wont fix".
Correct me if I am wrong, but UNARY (
~&
and~|
) operators were incorrectly used here:https://symbiflow.github.io/sv-tests/#tree_sitter_verilog|utd-sv|utd-sv_operators (32:33)