Coverage for hdl_registers/parser/test/test_parser/test_parser_default_register.py: 100%
14 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# --------------------------------------------------------------------------------------------------
10import pytest
11from tsfpga.system_utils import create_file
13from hdl_registers.parser.toml import from_toml
14from hdl_registers.register import Register
15from hdl_registers.register_modes import REGISTER_MODES
18def test_overriding_default_register(tmp_path):
19 toml_path = create_file(
20 file=tmp_path / "regs.toml",
21 contents="""
22[config]
24type = "register"
25description = "apa"
26""",
27 )
28 register_list = from_toml(
29 name="",
30 toml_file=toml_path,
31 default_registers=[
32 Register(name="config", index=0, mode=REGISTER_MODES["r_w"], description="")
33 ],
34 )
36 assert register_list.get_register("config").description == "apa"
39def test_changing_mode_of_default_register_should_raise_exception(tmp_path):
40 toml_path = create_file(
41 file=tmp_path / "regs.toml",
42 contents="""
43[config]
45mode = "w"
46""",
47 )
49 with pytest.raises(ValueError) as exception_info:
50 from_toml(
51 name="",
52 toml_file=toml_path,
53 default_registers=[
54 Register(name="config", index=0, mode=REGISTER_MODES["r_w"], description="")
55 ],
56 )
57 assert str(exception_info.value) == (
58 f'Error while parsing register "config" in {toml_path}: '
59 'A "mode" may not be specified for a default register.'
60 )