From 9f4ba736ef6d9e24954ec2a157ede8800471b91b Mon Sep 17 00:00:00 2001 From: Matthew Ballance Date: Thu, 26 Mar 2026 16:20:19 +0000 Subject: [PATCH] Added verilator_coverage test for covergroups Signed-off-by: Matthew Ballance --- test_regress/t/t_vlcov_covergroup.out | 31 ++++++++++++++++++++++ test_regress/t/t_vlcov_covergroup.py | 26 ++++++++++++++++++ test_regress/t/t_vlcov_covergroup_data.dat | 10 +++++++ 3 files changed, 67 insertions(+) create mode 100644 test_regress/t/t_vlcov_covergroup.out create mode 100644 test_regress/t/t_vlcov_covergroup.py create mode 100644 test_regress/t/t_vlcov_covergroup_data.dat diff --git a/test_regress/t/t_vlcov_covergroup.out b/test_regress/t/t_vlcov_covergroup.out new file mode 100644 index 000000000..dcbd99805 --- /dev/null +++ b/test_regress/t/t_vlcov_covergroup.out @@ -0,0 +1,31 @@ +COVERGROUP COVERAGE REPORT +========================== + +TOTAL: 3/6 bins covered (50.00%) + (1 ignored, 1 illegal) + +------------------------------------------------------------------------------ +Covergroup Type: mycg [t/t_vlcov_covergroup_data.dat:10] + Type Coverage: 3/6 bins (50.00%) + + Coverpoint: cp_b + Coverage: 1/1 bins (100.00%) + Bins: + IGNORE b_skip 1 hits + ILLEGAL b_bad 0 hits + COVERED b0 2 hits + + Cross: cp_a_x_cp_b + Coverage: 1/3 bins (33.33%) + Bins: + ZERO high_x_b0 0 hits + COVERED low_x_b0 2 hits + ZERO low_x_b_skip 0 hits + + Coverpoint: cp_a + Coverage: 1/2 bins (50.00%) + Bins: + COVERED low 3 hits + ZERO high 0 hits + +------------------------------------------------------------------------------ diff --git a/test_regress/t/t_vlcov_covergroup.py b/test_regress/t/t_vlcov_covergroup.py new file mode 100644 index 000000000..055286679 --- /dev/null +++ b/test_regress/t/t_vlcov_covergroup.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +# DESCRIPTION: Verilator: Verilog Test driver/expect definition +# +# Copyright 2024 by Wilson Snyder. This program is free software; you +# can redistribute it and/or modify it under the terms of either the GNU +# Lesser General Public License Version 3 or the Perl Artistic License +# Version 2.0. +# SPDX-FileCopyrightText: 2024 Wilson Snyder +# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 + +import vltest_bootstrap + +test.scenarios('dist') + +test.run(cmd=[ + os.environ["VERILATOR_ROOT"] + "/bin/verilator_coverage", + "--covergroup", + test.t_dir + "/t_vlcov_covergroup_data.dat", +], + logfile=test.obj_dir + "/covergroup.log", + tee=False, + verilator_run=True) + +test.files_identical(test.obj_dir + "/covergroup.log", test.golden_filename) + +test.passes() diff --git a/test_regress/t/t_vlcov_covergroup_data.dat b/test_regress/t/t_vlcov_covergroup_data.dat new file mode 100644 index 000000000..0e742db1e --- /dev/null +++ b/test_regress/t/t_vlcov_covergroup_data.dat @@ -0,0 +1,10 @@ +# SystemC::Coverage-3 +C 'tlinepagev_line/tft/t_vlcov_covergroup_data.datl10htop.t' 5 +C 'tcovergrouppagev_covergroup/mycgft/t_vlcov_covergroup_data.datl5n4binlowhmycg.cp_a.low' 3 +C 'tcovergrouppagev_covergroup/mycgft/t_vlcov_covergroup_data.datl6n4binhighhmycg.cp_a.high' 0 +C 'tcovergrouppagev_covergroup/mycgft/t_vlcov_covergroup_data.datl9n4binb0hmycg.cp_b.b0' 2 +C 'tcovergrouppagev_covergroup/mycgft/t_vlcov_covergroup_data.datl10n4binb_skipbin_typeignorehmycg.cp_b.b_skip' 1 +C 'tcovergrouppagev_covergroup/mycgft/t_vlcov_covergroup_data.datl11n4binb_badbin_typeillegalhmycg.cp_b.b_bad' 0 +C 'tcovergrouppagev_covergroup/mycgft/t_vlcov_covergroup_data.datl13n7binlow_x_b0cross1hmycg.cp_a_x_cp_b.low_x_b0' 2 +C 'tcovergrouppagev_covergroup/mycgft/t_vlcov_covergroup_data.datl13n7binhigh_x_b0cross1hmycg.cp_a_x_cp_b.high_x_b0' 0 +C 'tcovergrouppagev_covergroup/mycgft/t_vlcov_covergroup_data.datl13n7binlow_x_b_skipcross1hmycg.cp_a_x_cp_b.low_x_b_skip' 0