Skip to content

Improve uTP testing #328

@pipermerriam

Description

@pipermerriam

What is wrong

Currently uTP is the most difficult part of our protocol for implementations to get correct. Getting things working in the "normal" case appears to be reasonably. There are however a lot of cases which are harder to get right which show up in live environments such as:

  • out of order packets
  • dropped packets

How can this be fixed

We need a framework for testing uTP implementations in clients. I believe that we need something that allows us to have some full level of control over what packets are sent and in what order between two running clients. Maybe a JSON-RPC endpoint that accepts a payload with the following:

  • Inbound vs Outbound
    • should the client initiate the connection or listen for an inbound connection.
  • Packets & Timing
    • A list of packets that should be sent and the timing/delay for when each one should be sent.
  • Expected outcomes
    • Should the transfer complete or fail and if so what should the outcome be.

All of this is just intended to be a starting point for an idea of how to test this. The real details will need to be determined by whomever decides to implement this.

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