Add regression tests for queue method argument count errors

Check that queue push_back(), push_front() and insert() report errors when
called with too few or too many arguments.

These tests are expected to fail as compile/elaboration errors. They also make
sure the invalid calls do not crash during elaboration while reporting the
argument count error.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
Lars-Peter Clausen 2026-05-31 21:18:01 -07:00
parent 92f717d825
commit d18cb1b298
13 changed files with 90 additions and 0 deletions

View File

@ -0,0 +1,9 @@
// Check that queue insert() rejects too few arguments.
module test;
int q[$];
initial begin
q.insert(0);
end
endmodule

View File

@ -0,0 +1,9 @@
// Check that queue insert() rejects too many arguments.
module test;
int q[$];
initial begin
q.insert(0, 1, 2);
end
endmodule

View File

@ -0,0 +1,9 @@
// Check that queue push_back() rejects too few arguments.
module test;
int q[$];
initial begin
q.push_back();
end
endmodule

View File

@ -0,0 +1,9 @@
// Check that queue push_back() rejects too many arguments.
module test;
int q[$];
initial begin
q.push_back(1, 2);
end
endmodule

View File

@ -0,0 +1,9 @@
// Check that queue push_front() rejects too few arguments.
module test;
int q[$];
initial begin
q.push_front();
end
endmodule

View File

@ -0,0 +1,9 @@
// Check that queue push_front() rejects too many arguments.
module test;
int q[$];
initial begin
q.push_front(1, 2);
end
endmodule

View File

@ -351,6 +351,12 @@ sv_package_lifetime_fail vvp_tests/sv_package_lifetime_fail.json
sv_parameter_type vvp_tests/sv_parameter_type.json
sv_queue_ap_method vvp_tests/sv_queue_ap_method.json
sv_queue_assign_op vvp_tests/sv_queue_assign_op.json
sv_queue_method_insert_too_few_arg_fail vvp_tests/sv_queue_method_insert_too_few_arg_fail.json
sv_queue_method_insert_too_many_arg_fail vvp_tests/sv_queue_method_insert_too_many_arg_fail.json
sv_queue_method_push_back_too_few_arg_fail vvp_tests/sv_queue_method_push_back_too_few_arg_fail.json
sv_queue_method_push_back_too_many_arg_fail vvp_tests/sv_queue_method_push_back_too_many_arg_fail.json
sv_queue_method_push_front_too_few_arg_fail vvp_tests/sv_queue_method_push_front_too_few_arg_fail.json
sv_queue_method_push_front_too_many_arg_fail vvp_tests/sv_queue_method_push_front_too_many_arg_fail.json
sv_soft_packed_union vvp_tests/sv_soft_packed_union.json
sv_soft_packed_union_fail1 vvp_tests/sv_soft_packed_union_fail1.json
sv_super_member_fail vvp_tests/sv_super_member_fail.json

View File

@ -0,0 +1,5 @@
{
"type" : "CE",
"source" : "sv_queue_method_insert_too_few_arg_fail.v",
"iverilog-args" : [ "-g2005-sv" ]
}

View File

@ -0,0 +1,5 @@
{
"type" : "CE",
"source" : "sv_queue_method_insert_too_many_arg_fail.v",
"iverilog-args" : [ "-g2005-sv" ]
}

View File

@ -0,0 +1,5 @@
{
"type" : "CE",
"source" : "sv_queue_method_push_back_too_few_arg_fail.v",
"iverilog-args" : [ "-g2005-sv" ]
}

View File

@ -0,0 +1,5 @@
{
"type" : "CE",
"source" : "sv_queue_method_push_back_too_many_arg_fail.v",
"iverilog-args" : [ "-g2005-sv" ]
}

View File

@ -0,0 +1,5 @@
{
"type" : "CE",
"source" : "sv_queue_method_push_front_too_few_arg_fail.v",
"iverilog-args" : [ "-g2005-sv" ]
}

View File

@ -0,0 +1,5 @@
{
"type" : "CE",
"source" : "sv_queue_method_push_front_too_many_arg_fail.v",
"iverilog-args" : [ "-g2005-sv" ]
}