Coverage for hdl_registers/test/test_register_mode.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 

10from hdl_registers.register_mode import ( 

11 HardwareAccessDirection, 

12 RegisterMode, 

13 SoftwareAccessDirection, 

14) 

15 

16 

17def test_repr(): 

18 assert ( 

19 repr( 

20 RegisterMode( 

21 shorthand="a", 

22 name="b", 

23 description="c", 

24 software_can_read=False, 

25 software_can_write=False, 

26 hardware_has_up=False, 

27 ) 

28 ) 

29 == "RegisterMode(shorthand=a)" 

30 ) 

31 

32 

33def test_software_access_direction(): 

34 register_mode = RegisterMode( 

35 shorthand="a", 

36 name="b", 

37 description="c", 

38 software_can_read=True, 

39 software_can_write=False, 

40 hardware_has_up=False, 

41 ) 

42 

43 assert register_mode.is_software_accessible(SoftwareAccessDirection.READ) 

44 assert not register_mode.is_software_accessible(SoftwareAccessDirection.WRITE) 

45 

46 

47def test_hardware_access_direction(): 

48 register_mode = RegisterMode( 

49 shorthand="a", 

50 name="b", 

51 description="c", 

52 software_can_read=True, 

53 software_can_write=False, 

54 hardware_has_up=True, 

55 ) 

56 

57 assert register_mode.is_hardware_accessible(HardwareAccessDirection.UP) 

58 assert not register_mode.is_software_accessible(HardwareAccessDirection.DOWN) 

59 

60 register_mode = RegisterMode( 

61 shorthand="a", 

62 name="b", 

63 description="c", 

64 software_can_read=True, 

65 software_can_write=True, 

66 hardware_has_up=False, 

67 ) 

68 

69 assert not register_mode.is_hardware_accessible(HardwareAccessDirection.UP) 

70 assert register_mode.is_software_accessible(HardwareAccessDirection.DOWN)