Coverage for hdl_registers/generator/cpp/test/test_register_cpp_generator.py: 100%
15 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-12 11:11 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-12 11:11 +0000
1# --------------------------------------------------------------------------------------------------
2# Copyright (c) Lukas Vik. All rights reserved.
3#
4# This file is part of the hdl-registers project, an HDL register generator fast enough to run
5# in real time.
6# https://hdl-registers.com
7# https://github.com/hdl-registers/hdl-registers
8# --------------------------------------------------------------------------------------------------
10# Some limited unit tests that check the generated code.
11# Note that the generated C++ code is also functionally tested in the
12# file 'test_compiled_cpp_code.py'.
13# That test generates C++ code from an example register set, compiles it and performs some
14# run-time assertions in a C program.
15# That test is considered more meaningful and exhaustive than a unit test would be.
17import pytest
18from tsfpga.system_utils import read_file
20from hdl_registers import HDL_REGISTERS_TESTS
21from hdl_registers.generator.cpp.interface import CppInterfaceGenerator
22from hdl_registers.parser.toml import from_toml
25@pytest.fixture
26def cpp_test_toml_code(tmp_path):
27 registers = from_toml("test", HDL_REGISTERS_TESTS / "regs_test.toml")
29 return read_file(
30 CppInterfaceGenerator(register_list=registers, output_folder=tmp_path).create()
31 )
34def test_read_only_register_has_no_setters(cpp_test_toml_code):
35 assert "get_status" in cpp_test_toml_code
36 assert "set_status" not in cpp_test_toml_code
39def test_write_only_register_has_no_setters(cpp_test_toml_code):
40 assert "set_command" in cpp_test_toml_code
41 assert "get_command" not in cpp_test_toml_code