verilator/test_regress/t/t_trace_public_sig_vlt.py
2024-11-12 21:39:13 -05:00

40 lines
1.3 KiB
Python
Executable File

#!/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-License-Identifier: LGPL-3.0-only OR Artistic-2.0
import vltest_bootstrap
test.scenarios('vlt_all')
test.pli_filename = "t/t_trace_public_sig.cpp"
test.top_filename = "t/t_trace_public.v"
test.golden_filename = "t/t_trace_public.out"
out_filename = test.obj_dir + "/V" + test.name + ".tree.json"
test.compile(make_top_shell=False,
make_main=False,
v_flags2=[
"--trace --exe", test.pli_filename,
test.t_dir + "/t_trace_public_sig.vlt --no-json-edit-nums"
])
if test.vlt_all:
test.file_grep(
out_filename,
r'{"type":"VAR","name":"GSR",.*"loc":"\w,47:[^"]*",.*"origName":"GSR",.*"isSigPublic":true,.*"dtypeName":"logic",.*"isSigUserRdPublic":true.*"isSigUserRWPublic":true'
)
test.execute()
test.vcd_identical(test.trace_filename, test.golden_filename)
# vcd_identical doesn't detect "$var a.b;" vs "$scope module a; $var b;"
test.file_grep(test.trace_filename, r'module glbl')
test.passes()