Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions bootstrap_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"errors"
"testing"

"github.com/hashicorp/errwrap"
"github.com/libp2p/go-libp2p/core/routing"
)

Expand Down Expand Up @@ -152,7 +151,7 @@ func TestBootstrapErr(t *testing.T) {
err := d.Bootstrap(ctx)
t.Log(err)
for _, s := range []string{"err1", "err2", "err3", "err4"} {
if !errwrap.Contains(err, s) {
if !errContains(err, s) {
t.Errorf("expecting error to contain '%s'", s)
}
}
Expand Down
8 changes: 4 additions & 4 deletions composed.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package routinghelpers
import (
"context"

"github.com/hashicorp/go-multierror"
"github.com/ipfs/go-cid"
ci "github.com/libp2p/go-libp2p/core/crypto"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/libp2p/go-libp2p/core/routing"
"go.uber.org/multierr"
)

// Compose composes the components into a single router. Not specifying a
Expand Down Expand Up @@ -133,13 +133,13 @@ func (cr *Compose) Bootstrap(ctx context.Context) (err error) {
}
}

var me multierror.Error
var errs error
for b := range routers {
if err := b.Bootstrap(ctx); err != nil {
me.Errors = append(me.Errors, err)
errs = multierr.Append(errs, err)
}
}
return me.ErrorOrNil()
return errs
}

var _ routing.Routing = (*Compose)(nil)
Expand Down
2 changes: 0 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ go 1.23.0

require (
github.com/Jorropo/jsync v1.0.1
github.com/hashicorp/errwrap v1.1.0
github.com/hashicorp/go-multierror v1.1.1
github.com/ipfs/go-cid v0.5.0
github.com/ipfs/go-log/v2 v2.5.1
github.com/libp2p/go-libp2p v0.41.0
Expand Down
5 changes: 0 additions & 5 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,6 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/ipfs/go-block-format v0.2.0 h1:ZqrkxBA2ICbDRbK8KJs/u0O3dlp6gmAuuXUJNiW1Ycs=
github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArfSmsknbPMYgzM=
github.com/ipfs/go-cid v0.5.0 h1:goEKKhaGm0ul11IHA7I6p1GmKz8kEYniqFopaB5Otwg=
Expand Down
18 changes: 9 additions & 9 deletions parallel.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import (
"sync"

"github.com/Jorropo/jsync"
"github.com/hashicorp/go-multierror"
"github.com/ipfs/go-cid"
record "github.com/libp2p/go-libp2p-record"
ci "github.com/libp2p/go-libp2p/core/crypto"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/libp2p/go-libp2p/core/routing"
"go.uber.org/multierr"
)

// Parallel operates on the slice of routers in parallel.
Expand Down Expand Up @@ -156,7 +156,7 @@ func (r Parallel) put(do func(routing.Routing) error) error {
case 1:
return errs[0]
default:
return &multierror.Error{Errors: errs}
return multierr.Combine(errs...)
}
}

Expand Down Expand Up @@ -273,7 +273,7 @@ func (r Parallel) get(ctx context.Context, do func(routing.Routing) (interface{}
case 1:
return nil, errs[0]
default:
return nil, &multierror.Error{Errors: errs}
return nil, multierr.Combine(errs...)
}
}

Expand Down Expand Up @@ -579,26 +579,26 @@ func fewProviders(ctx context.Context, out chan<- peer.AddrInfo, in []<-chan pee

// Bootstrap signals all the sub-routers to bootstrap.
func (r Parallel) Bootstrap(ctx context.Context) error {
var me multierror.Error
var errs error
for _, b := range r.Routers {
if err := b.Bootstrap(ctx); err != nil {
me.Errors = append(me.Errors, err)
errs = multierr.Append(errs, err)
}
}
return me.ErrorOrNil()
return errs
}

// Close closes all sub-routers that implement the io.Closer interface.
func (r Parallel) Close() error {
var me multierror.Error
var errs error
for _, router := range r.Routers {
if closer, ok := router.(io.Closer); ok {
if err := closer.Close(); err != nil {
me.Errors = append(me.Errors, err)
errs = multierr.Append(errs, err)
}
}
}
return me.ErrorOrNil()
return errs
}

var _ routing.Routing = Parallel{}
16 changes: 13 additions & 3 deletions parallel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ package routinghelpers
import (
"context"
"errors"
"strings"
"testing"
"time"

"github.com/hashicorp/errwrap"
"github.com/ipfs/go-cid"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/libp2p/go-libp2p/core/routing"
mh "github.com/multiformats/go-multihash"
"go.uber.org/multierr"
)

// NOTE: While this test is primarily testing the Parallel combinator, it also
Expand Down Expand Up @@ -99,10 +100,10 @@ func TestParallelPutGet(t *testing.T) {
if err := d.PutValue(ctx, "/notsupported/hello", []byte("world")); err != routing.ErrNotSupported {
t.Fatalf("expected ErrNotSupported, got: %s", err)
}
if err := d.PutValue(ctx, "/error/myErr", []byte("world")); !errwrap.Contains(err, "myErr") {
if err := d.PutValue(ctx, "/error/myErr", []byte("world")); !errContains(err, "myErr") {
t.Fatalf("expected error to contain myErr, got: %s", err)
}
if _, err := d.GetValue(ctx, "/error/myErr"); !errwrap.Contains(err, "myErr") {
if _, err := d.GetValue(ctx, "/error/myErr"); !errContains(err, "myErr") {
t.Fatalf("expected error to contain myErr, got: %s", err)
}
if err := d.PutValue(ctx, "/solo/thing", []byte("value")); err != nil {
Expand All @@ -129,6 +130,15 @@ func TestParallelPutGet(t *testing.T) {
cancel()
}

func errContains(err error, substr string) bool {
for _, e := range multierr.Errors(err) {
if strings.Contains(e.Error(), substr) {
return true
}
}
return false
}

func TestParallelPutFailure(t *testing.T) {
ctx := context.Background()
router := Parallel{
Expand Down
10 changes: 5 additions & 5 deletions tiered.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import (
"context"
"io"

"github.com/hashicorp/go-multierror"
"github.com/ipfs/go-cid"
record "github.com/libp2p/go-libp2p-record"
ci "github.com/libp2p/go-libp2p/core/crypto"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/libp2p/go-libp2p/core/routing"
"go.uber.org/multierr"
)

// Tiered is like the Parallel except that GetValue and FindPeer
Expand Down Expand Up @@ -47,7 +47,7 @@ func (r Tiered) get(ctx context.Context, do func(routing.Routing) (interface{},
case 1:
return nil, errs[0]
default:
return nil, &multierror.Error{Errors: errs}
return nil, multierr.Combine(errs...)
}
}

Expand Down Expand Up @@ -112,15 +112,15 @@ func (r Tiered) Bootstrap(ctx context.Context) error {

// Close closes all sub-routers that implement the io.Closer interface.
func (r Tiered) Close() error {
var me multierror.Error
var errs error
for _, router := range r.Routers {
if closer, ok := router.(io.Closer); ok {
if err := closer.Close(); err != nil {
me.Errors = append(me.Errors, err)
errs = multierr.Append(errs, err)
}
}
}
return me.ErrorOrNil()
return errs
}

var _ routing.Routing = Tiered{}
5 changes: 2 additions & 3 deletions tiered_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"context"
"testing"

"github.com/hashicorp/errwrap"
"github.com/ipfs/go-cid"
record "github.com/libp2p/go-libp2p-record"
"github.com/libp2p/go-libp2p/core/routing"
Expand Down Expand Up @@ -178,11 +177,11 @@ func TestTieredGet(t *testing.T) {
t.Fatal(err)
}

if _, err := d.GetValue(ctx, "/error/myErr"); !errwrap.Contains(err, "myErr") {
if _, err := d.GetValue(ctx, "/error/myErr"); !errContains(err, "myErr") {
t.Fatalf("expected error to contain myErr, got: %s", err)
}

if _, err := (Tiered{Routers: []routing.Routing{d.Routers[1]}}).GetValue(ctx, "/error/myErr"); !errwrap.Contains(err, "myErr") {
if _, err := (Tiered{Routers: []routing.Routing{d.Routers[1]}}).GetValue(ctx, "/error/myErr"); !errContains(err, "myErr") {
t.Fatalf("expected error to contain myErr, got: %s", err)
}

Expand Down