+func TestFlushCancellationKeepsTheDirectContextError(t *testing.T) {
+ gate := newSyncerGatedSync()
+ s := newSyncer(gate.Sync)
+ s.Written()
+ gate.WaitStarted(t, 1)
+
+ ctx, cancel := context.WithCancel(t.Context())
+ defer cancel()
+
+ cancel()
+
+ err := s.Flush(ctx)
+ require.Equal(t, context.Canceled, err)
+
+ gate.Release()
+ require.NoError(t, s.Close())
+}
+