mirror of
https://github.com/YosysHQ/sby.git
synced 2025-08-27 23:18:57 +00:00
Refactor tests
Organize tests into subdirectories and use a new makefile that scans .sby files and allows selecting tests by mode, engine, solver and/or subdirectory. Automatically skips tests that use engines/solvers that are not found in the PATH. See `cd tests; make help` for a description of supported make targets.
This commit is contained in:
parent
6daa434d85
commit
8da6f07cb3
60 changed files with 328 additions and 101 deletions
2
tests/regression/Makefile
Normal file
2
tests/regression/Makefile
Normal file
|
@ -0,0 +1,2 @@
|
|||
SUBDIR=regression
|
||||
include ../make/subdir.mk
|
36
tests/regression/aim_vs_smt2_nonzero_start_offset.sby
Normal file
36
tests/regression/aim_vs_smt2_nonzero_start_offset.sby
Normal file
|
@ -0,0 +1,36 @@
|
|||
[tasks]
|
||||
abc_bmc3 bmc
|
||||
abc_sim3 bmc
|
||||
aiger_avy prove
|
||||
aiger_suprove prove
|
||||
abc_pdr prove
|
||||
|
||||
[options]
|
||||
bmc: mode bmc
|
||||
prove: mode prove
|
||||
expect fail
|
||||
wait on
|
||||
|
||||
[engines]
|
||||
abc_bmc3: abc bmc3
|
||||
abc_sim3: abc sim3
|
||||
aiger_avy: aiger avy
|
||||
aiger_suprove: aiger suprove
|
||||
abc_pdr: abc pdr
|
||||
|
||||
[script]
|
||||
read -sv test.sv
|
||||
prep -top test
|
||||
|
||||
[file test.sv]
|
||||
module test (
|
||||
input clk,
|
||||
input [8:1] nonzero_offset
|
||||
);
|
||||
reg [7:0] counter = 0;
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (counter == 3) assert(nonzero_offset[1]);
|
||||
counter <= counter + 1;
|
||||
end
|
||||
endmodule
|
29
tests/regression/invalid_ff_dcinit_merge.sby
Normal file
29
tests/regression/invalid_ff_dcinit_merge.sby
Normal file
|
@ -0,0 +1,29 @@
|
|||
[options]
|
||||
mode bmc
|
||||
depth 4
|
||||
expect fail
|
||||
|
||||
[engines]
|
||||
smtbmc
|
||||
|
||||
[script]
|
||||
read -formal top.sv
|
||||
prep -top top
|
||||
|
||||
[file top.sv]
|
||||
module top(
|
||||
input clk, d
|
||||
);
|
||||
|
||||
reg q1;
|
||||
reg q2;
|
||||
|
||||
always @(posedge clk) begin
|
||||
q1 <= d;
|
||||
q2 <= d;
|
||||
end;
|
||||
|
||||
// q1 and q2 are unconstrained in the initial state, so this should fail
|
||||
always @(*) assert(q1 == q2);
|
||||
|
||||
endmodule
|
Loading…
Add table
Add a link
Reference in a new issue