Skip to content

Test Every Executable #20

@grencez

Description

@grencez

Some smaller experimental utilities are built alongside Protocon. If they're going to stick around, then each one should have at least one test so they don't break during refractors.

  • uni/aperiodic: Outputs a known aperiodic unidirectional ring protocol.
  • uni/generate: Generates a bunch of unidirectional ring protocols. I was trying to find a smaller aperiodic one.
  • uni/classify: Classify unidirectional ring protocols as deadlock or livelock or unknown (possibly aperiodic).
  • uni/xlate: Translate between different unidirectional ring protocol formats.
  • uni/synthesize: Add stabilization for a uniform unidirectional ring.
  • biring: A tool to enumerate bidirectional ring invariants that are non-isomorphic?
  • deadfree: Verifies deadlock freedom for uniform rings of arbitrary size.
  • msat: Lets MiniSat guide the search.
    • I don't remember if this had any redeeming qualities.
    • Not built by default.
  • satsyn: Reduces the problem of adding stabilization to SAT. Runs a solver and interprets the result.
    • Test expected output instead of running SAT solver.
  • udp-impl: Execute a shared memory self-stabilizing protocol using processes that communicate with UDP packets.
    • Test by checking final state? Can we mock out the network & timing code to get a deterministic test?
  • protocon-gui (gui/main.cc): Qt5 GUI.
    • All real functionality is offloaded to a child protocon process running in -interactive mode.

The s/ directory has hints about how these were used in the past.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions