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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions