]> git.giacomolli.uk - onehouse/blobdiff - driver/runner_test.go
Queue device commands and replay first results
[onehouse] / driver / runner_test.go
index 2ece6cd98fbeddd7fcc6b0047cde627ff36a6e90..c1c32aa1d97872cf54a613328a8f60acec843328 100644 (file)
@@ -20,8 +20,14 @@ func TestRunRefreshesDriversAndWaitsForCleanup(t *testing.T) {
                ctx, cancel := context.WithCancel(t.Context())
                defer cancel()
 
                ctx, cancel := context.WithCancel(t.Context())
                defer cancel()
 
-               first := &fakeDriver{stopped: make(chan struct{}), refreshed: make(chan struct{}, 1)}
-               second := &fakeDriver{stopped: make(chan struct{}), refreshed: make(chan struct{}, 1)}
+               first := &fakeDriver{
+                       stopped:   make(chan struct{}),
+                       refreshed: make(chan struct{}, 1),
+               }
+               second := &fakeDriver{
+                       stopped:   make(chan struct{}),
+                       refreshed: make(chan struct{}, 1),
+               }
                connected := make(chan struct{}, 1)
                finished := make(chan error, 1)
                go func() {
                connected := make(chan struct{}, 1)
                finished := make(chan error, 1)
                go func() {
@@ -53,18 +59,67 @@ func TestRunClassifiesStopsAndJoinedFailures(t *testing.T) {
                canceled bool
                failure  bool
        }{
                canceled bool
                failure  bool
        }{
-               {name: "normal completion", err: nil},
-               {name: "cancellation is a stop", err: context.Canceled, canceled: true},
-               {name: "closed transport is a stop", err: net.ErrClosed, canceled: true},
-               {name: "closed pipe is a stop", err: io.ErrClosedPipe, canceled: true},
-               {name: "broken pipe is a stop", err: syscall.EPIPE, canceled: true},
-               {name: "reset connection is a stop", err: syscall.ECONNRESET, canceled: true},
-               {name: "wrapped stop stays a stop", err: fmt.Errorf("read: %w", net.ErrClosed), canceled: true},
-               {name: "joined stops stay stops", err: errors.Join(context.Canceled, net.ErrClosed), canceled: true},
-               {name: "joined failure stays a failure", err: errors.Join(context.Canceled, failure), canceled: true, failure: true},
-               {name: "request timeout stays a failure", err: context.DeadlineExceeded, failure: true},
-               {name: "active transport close is a failure", err: net.ErrClosed, failure: true},
-               {name: "independent failure stays a failure", err: failure, canceled: true, failure: true},
+               {
+                       name: "normal completion",
+                       err:  nil,
+               },
+               {
+                       name:     "cancellation is a stop",
+                       err:      context.Canceled,
+                       canceled: true,
+               },
+               {
+                       name:     "closed transport is a stop",
+                       err:      net.ErrClosed,
+                       canceled: true,
+               },
+               {
+                       name:     "closed pipe is a stop",
+                       err:      io.ErrClosedPipe,
+                       canceled: true,
+               },
+               {
+                       name:     "broken pipe is a stop",
+                       err:      syscall.EPIPE,
+                       canceled: true,
+               },
+               {
+                       name:     "reset connection is a stop",
+                       err:      syscall.ECONNRESET,
+                       canceled: true,
+               },
+               {
+                       name:     "wrapped stop stays a stop",
+                       err:      fmt.Errorf("read: %w", net.ErrClosed),
+                       canceled: true,
+               },
+               {
+                       name:     "joined stops stay stops",
+                       err:      errors.Join(context.Canceled, net.ErrClosed),
+                       canceled: true,
+               },
+               {
+                       name:     "joined failure stays a failure",
+                       err:      errors.Join(context.Canceled, failure),
+                       canceled: true,
+                       failure:  true,
+               },
+               {
+                       name:    "request timeout stays a failure",
+                       err:     context.DeadlineExceeded,
+                       failure: true,
+               },
+               {
+                       name:    "active transport close is a failure",
+                       err:     net.ErrClosed,
+                       failure: true,
+               },
+               {
+                       name:     "independent failure stays a failure",
+                       err:      failure,
+                       canceled: true,
+                       failure:  true,
+               },
        }
 
        for _, tc := range testCases {
        }
 
        for _, tc := range testCases {