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

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# -------------------------------------------------------------------------------------------------- 

9 

10import pytest 

11from tsfpga.system_utils import create_file 

12 

13from hdl_registers.parser.toml import from_toml 

14from hdl_registers.register import Register 

15from hdl_registers.register_modes import REGISTER_MODES 

16 

17 

18def test_overriding_default_register(tmp_path): 

19 toml_path = create_file( 

20 file=tmp_path / "regs.toml", 

21 contents=""" 

22[config] 

23 

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 ) 

35 

36 assert register_list.get_register("config").description == "apa" 

37 

38 

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] 

44 

45mode = "w" 

46""", 

47 ) 

48 

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 )