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
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