From 5513aabf783d8614aa2c06f7e3d87d535975b7d2 Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Tue, 28 Jul 2015 23:26:14 -0700 Subject: [PATCH] core/mock: make sure node has a ctx and proc License: MIT Signed-off-by: Juan Batiz-Benet --- core/core.go | 11 +++++++++-- core/mock/mock.go | 5 +++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/core/core.go b/core/core.go index 9ceb388dd..75e852354 100644 --- a/core/core.go +++ b/core/core.go @@ -130,8 +130,12 @@ func NewIPFSNode(ctx context.Context, option ConfigOption) (*IpfsNode, error) { return nil, err } - node.proc = goprocessctx.WithContextAndTeardown(ctx, node.teardown) - node.ctx = ctx + if node.ctx == nil { + node.ctx = ctx + } + if node.proc == nil { + node.proc = goprocessctx.WithContextAndTeardown(node.ctx, node.teardown) + } success := false // flip to true after all sub-system inits succeed defer func() { @@ -217,6 +221,9 @@ func standardWithRouting(r repo.Repo, online bool, routingOption RoutingOption, Repo: r, } + n.ctx = ctx + n.proc = goprocessctx.WithContextAndTeardown(ctx, n.teardown) + // setup Peerstore n.Peerstore = peer.NewPeerstore() diff --git a/core/mock/mock.go b/core/mock/mock.go index 4ede74642..a88c23370 100644 --- a/core/mock/mock.go +++ b/core/mock/mock.go @@ -4,6 +4,7 @@ import ( "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore" syncds "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore/sync" context "github.com/ipfs/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context" + "github.com/ipfs/go-ipfs/blocks/blockstore" blockservice "github.com/ipfs/go-ipfs/blockservice" commands "github.com/ipfs/go-ipfs/commands" @@ -24,7 +25,7 @@ import ( // TODO this is super sketch. Deprecate and initialize one that shares code // with the actual core constructor. Lots of fields aren't initialized. -// Additionally, the context group isn't wired up. This is as good as broken. +// "This is as good as broken." --- is it? // NewMockNode constructs an IpfsNode for use in tests. func NewMockNode() (*core.IpfsNode, error) { @@ -57,7 +58,7 @@ func NewMockNode() (*core.IpfsNode, error) { nd.Peerstore.AddPubKey(p, ident.PublicKey()) nd.Identity = p - nd.PeerHost, err = mocknet.New(ctx).AddPeer(ident.PrivateKey(), ident.Address()) // effectively offline + nd.PeerHost, err = mocknet.New(nd.Context()).AddPeer(ident.PrivateKey(), ident.Address()) // effectively offline if err != nil { return nil, err }