Skip to content

Initial tests to target base device functionality #28

@bruno-f-cruz

Description

@bruno-f-cruz

Note: all the tests target the core registers / functionality ONLY for now
Note2: Considering the testing device to not be connected to an external synchronizer. This is important for tests like R_HEARTBEAT and R_SECONDS

General

  • Assert all core registers exist and return from a read request
  • Assert that all registers have the correct data-type
  • Assert that read-only registers return error on write
  • Report round-trip latencies
  • Report % messages dropped when sending back to back
  • Check if 0-length messages are allowed
  • Check if scheduled messages are supported
  • Check if error messages are returned when wrong dtype is written

Additional per Register

R_<**>_VERSION

  • Assert values match R_VERSION

R_ASSEMBLY_VERSION

  • Assert equals 0

R_TIMESTAMP_SECOND

  • Assert Write sets a new timestamp

R_OPERATION_CTRL

  • Can toggle between modes Standby and active
  • Set to active mode, listen for R_HEARTBEAT for a couple of seconds
  • Set DUMP and check if ALL core registers are returned at least
  • Set MUTE_RPL and check if no reads are returned. Clear MUTE_RPL and test again
  • Clear R_HEARTBEAT, Set ALIVE_EN check if R_SECONDS emits an event (this is optional, but we can assert if the feature exists or not)

R_RESET_DEV

(Not sure what to test here, it seems a bit hard to test this from the client??)

R_DEVICE_NAME

  • Not sure (?)

R_CLOCK_CONFIG

  • Report REP_ABLE and GEN_ABLE
  • CLK_UNLOCK can write to seconds
  • CLK_LOCK cannot write to seconds

R_SERIAL_NUMBER

  • Assert it duplicates the first two bytes of R_UID

R_TIMESTAMP_OFFSET

  • Assert it reads "0" and it is not writable

R_UID

  • Check if 0 (likely not implemented)

R_TAG

  • Check if 0 (likely not implemented)

R_VERSION

  • Interface hash, check if 0 (likely not implemented)

R_HEARTBEAT

  • See R_OPERATION_CTRL
  • Check it returns 0 since all tests run without a synchronizer connected for now
  • Check IsActive if Active via OPERATION_CTRL

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions