Skip to content

Commit d2f746e

Browse files
Support no-op error responses (#186)
* support no-op err responses * changes as oper review
1 parent de9804f commit d2f746e

File tree

6 files changed

+23
-122
lines changed

6 files changed

+23
-122
lines changed

go.sum

Lines changed: 0 additions & 115 deletions
Large diffs are not rendered by default.

impl/events.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,11 @@ func (m *manager) processRevalidationResult(chid datatransfer.ChannelID, result
442442
return nil, err
443443
}
444444
}
445+
446+
if resultErr == nil {
447+
return vresMessage, nil
448+
}
449+
445450
if resultErr == datatransfer.ErrPause {
446451
err := m.pause(chid)
447452
if err != nil {
@@ -450,7 +455,7 @@ func (m *manager) processRevalidationResult(chid datatransfer.ChannelID, result
450455
return vresMessage, datatransfer.ErrPause
451456
}
452457

453-
if resultErr == nil {
458+
if resultErr == datatransfer.ErrResume {
454459
err = m.resume(chid)
455460
if err != nil {
456461
return nil, err

impl/integration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ func TestSimulatedRetrievalFlow(t *testing.T) {
10301030
srv := &retrievalRevalidator{
10311031
testutil.NewStubbedRevalidator(), 0, 0, config.pausePoints, finalVoucherResult,
10321032
}
1033-
srv.ExpectSuccessRevalidation()
1033+
srv.ExpectSuccessErrResume()
10341034
require.NoError(t, dt1.RegisterRevalidator(testutil.NewFakeDTType(), srv))
10351035

10361036
require.NoError(t, dt2.RegisterVoucherResultType(testutil.NewFakeDTType()))

impl/responding_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,10 @@ func TestDataTransferResponding(t *testing.T) {
197197
sv.ExpectSuccessPush()
198198
sv.StubResult(testutil.NewFakeDTType())
199199
},
200+
configureRevalidator: func(sv *testutil.StubbedRevalidator) {
201+
sv.ExpectSuccessErrResume()
202+
},
203+
200204
verify: func(t *testing.T, h *receiverHarness) {
201205
h.network.Delegate.ReceiveRequest(h.ctx, h.peers[1], h.pushRequest)
202206
_, err := h.transport.EventHandler.OnRequestReceived(channelID(h.id, h.peers), h.voucherUpdate)
@@ -278,7 +282,7 @@ func TestDataTransferResponding(t *testing.T) {
278282
configureRevalidator: func(srv *testutil.StubbedRevalidator) {
279283
srv.ExpectPausePushCheck()
280284
srv.StubRevalidationResult(testutil.NewFakeDTType())
281-
srv.ExpectSuccessRevalidation()
285+
srv.ExpectSuccessErrResume()
282286
srv.StubCheckResult(testutil.NewFakeDTType())
283287
},
284288
verify: func(t *testing.T, h *receiverHarness) {
@@ -415,7 +419,7 @@ func TestDataTransferResponding(t *testing.T) {
415419
configureRevalidator: func(srv *testutil.StubbedRevalidator) {
416420
srv.ExpectPausePullCheck()
417421
srv.StubRevalidationResult(testutil.NewFakeDTType())
418-
srv.ExpectSuccessRevalidation()
422+
srv.ExpectSuccessErrResume()
419423
srv.StubCheckResult(testutil.NewFakeDTType())
420424
},
421425
verify: func(t *testing.T, h *receiverHarness) {
@@ -464,7 +468,7 @@ func TestDataTransferResponding(t *testing.T) {
464468
configureRevalidator: func(srv *testutil.StubbedRevalidator) {
465469
srv.ExpectPauseComplete()
466470
srv.StubRevalidationResult(testutil.NewFakeDTType())
467-
srv.ExpectSuccessRevalidation()
471+
srv.ExpectSuccessErrResume()
468472
},
469473
verify: func(t *testing.T, h *receiverHarness) {
470474
_, err := h.transport.EventHandler.OnRequestReceived(channelID(h.id, h.peers), h.pullRequest)

impl/utils.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func (m *manager) newRequest(ctx context.Context, selector ipld.Node, isPull boo
3838
}
3939

4040
func (m *manager) response(isRestart bool, isNew bool, err error, tid datatransfer.TransferID, voucherResult datatransfer.VoucherResult) (datatransfer.Response, error) {
41-
isAccepted := err == nil || err == datatransfer.ErrPause
41+
isAccepted := err == nil || err == datatransfer.ErrPause || err == datatransfer.ErrResume
4242
isPaused := err == datatransfer.ErrPause
4343
resultType := datatransfer.EmptyTypeIdentifier
4444
if voucherResult != nil {
@@ -55,7 +55,7 @@ func (m *manager) response(isRestart bool, isNew bool, err error, tid datatransf
5555
}
5656

5757
func (m *manager) completeResponse(err error, tid datatransfer.TransferID, voucherResult datatransfer.VoucherResult) (datatransfer.Response, error) {
58-
isAccepted := err == nil || err == datatransfer.ErrPause
58+
isAccepted := err == nil || err == datatransfer.ErrPause || err == datatransfer.ErrResume
5959
isPaused := err == datatransfer.ErrPause
6060
resultType := datatransfer.EmptyTypeIdentifier
6161
if voucherResult != nil {

testutil/stubbedvalidator.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,13 @@ func (srv *StubbedRevalidator) StubPauseRevalidation() {
313313
srv.revalidationError = datatransfer.ErrPause
314314
}
315315

316+
// ExpectSuccessErrResume configures Revalidate to return an ErrResume
317+
// and expect a Revalidate call.
318+
func (srv *StubbedRevalidator) ExpectSuccessErrResume() {
319+
srv.expectRevalidate = true
320+
srv.revalidationError = datatransfer.ErrResume
321+
}
322+
316323
// ExpectErrorRevalidation expects Revalidate to error
317324
func (srv *StubbedRevalidator) ExpectErrorRevalidation() {
318325
srv.expectRevalidate = true

0 commit comments

Comments
 (0)