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
5 changes: 5 additions & 0 deletions core/exchange_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,13 @@ func TestExchange_StoreHistoricIfArchival(t *testing.T) {
}

func createCoreFetcher(t *testing.T, cfg *testnode.Config) (*BlockFetcher, *Network) {
t.Helper()

network := NewNetwork(t, cfg)
require.NoError(t, network.Start())
t.Cleanup(func() {
require.NoError(t, network.Stop())
})
// wait for height 2 in order to be able to start submitting txs (this prevents
// flakiness with accessing account state)
_, err := network.WaitForHeightWithTimeout(2, time.Second*2) // TODO @renaynay: configure?
Expand Down
43 changes: 29 additions & 14 deletions core/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ package core

import (
"context"
"errors"
"net"
"path/filepath"
"sync"
"testing"
"time"

Expand Down Expand Up @@ -117,6 +119,9 @@ type Network struct {
stopNode func() error
stopGRPC func() error
stopAPI func() error

stopOnce sync.Once
stopErr error
}

func NewNetwork(t testing.TB, config *testnode.Config) *Network {
Expand Down Expand Up @@ -182,19 +187,29 @@ func (n *Network) Start() error {
}

func (n *Network) Stop() error {
err := n.stopNode()
if err != nil {
return err
}

err = n.stopGRPC()
if err != nil {
return err
}
n.stopOnce.Do(func() {
var errs []error

if n.stopNode != nil {
if err := n.stopNode(); err != nil {
errs = append(errs, err)
}
}

if n.stopGRPC != nil {
if err := n.stopGRPC(); err != nil {
errs = append(errs, err)
}
}

if n.stopAPI != nil {
if err := n.stopAPI(); err != nil {
errs = append(errs, err)
}
}

n.stopErr = errors.Join(errs...)
})

err = n.stopAPI()
if err != nil {
return err
}
return nil
return n.stopErr
}
3 changes: 2 additions & 1 deletion nodebuilder/tests/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ func getAdminClient(ctx context.Context, nd *nodebuilder.Node, t *testing.T) *cl
jwt, err := authtoken.NewSignedJWT(signer, []auth.Permission{"public", "read", "write", "admin"}, time.Minute)
require.NoError(t, err)

client, err := client.NewClient(ctx, listenAddr, jwt)
client, err := client.NewClient(context.WithoutCancel(ctx), listenAddr, jwt)
require.NoError(t, err)
t.Cleanup(client.Close)

return client
}
Expand Down
15 changes: 6 additions & 9 deletions nodebuilder/tests/prune_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import (

"github.com/celestiaorg/celestia-node/blob"
"github.com/celestiaorg/celestia-node/nodebuilder"
"github.com/celestiaorg/celestia-node/nodebuilder/das"
"github.com/celestiaorg/celestia-node/nodebuilder/node"
"github.com/celestiaorg/celestia-node/nodebuilder/pruner"
"github.com/celestiaorg/celestia-node/nodebuilder/tests/swamp"
Expand Down Expand Up @@ -100,11 +99,10 @@ func TestArchivalBlobSync(t *testing.T) {
err = pruningBN.Start(ctx)
require.NoError(t, err)

pruningCfg := nodebuilder.DefaultConfig(node.Bridge)
pruningCfg.DASer = das.DefaultConfig(node.Full)
pruningFulls := make([]*nodebuilder.Node, 0, 3)
for range 3 {
pruningFN := sw.NewNodeWithConfig(node.Full, pruningCfg, prunerOpts)
cfg := sw.DefaultTestConfig(node.Full)
pruningFN := sw.NewNodeWithConfig(node.Full, cfg, prunerOpts)
err = pruningFN.Start(ctx)
require.NoError(t, err)

Expand Down Expand Up @@ -186,15 +184,14 @@ func TestDisallowConvertFromPrunedToArchival(t *testing.T) {

// Light nodes have pruning enabled by default
for _, nt := range []node.Type{node.Bridge, node.Full} {
store := nodebuilder.MockStore(t, nodebuilder.DefaultConfig(nt))
store := nodebuilder.MockStore(t, sw.DefaultTestConfig(nt))
pruningNode := sw.MustNewNodeWithStore(nt, store)
err := pruningNode.Start(ctx)
require.NoError(t, err)
err = pruningNode.Stop(ctx)
require.NoError(t, err)

archivalCfg := sw.DefaultTestConfig(nt)
err = store.PutConfig(archivalCfg)
err = store.PutConfig(sw.DefaultTestConfig(nt))
require.NoError(t, err)
// fx.Replace simulates the `--archival` flag being passed
pruningNode, err = sw.NewNodeWithStore(nt, store, fx.Replace(&pruner.Config{EnableService: false}))
Expand Down Expand Up @@ -222,7 +219,7 @@ func TestDisallowConvertToArchivalViaLastPrunedCheck(t *testing.T) {
}

for _, nt := range []node.Type{node.Bridge, node.Full} {
store := nodebuilder.MockStore(t, nodebuilder.DefaultConfig(nt))
store := nodebuilder.MockStore(t, sw.DefaultTestConfig(nt))
ds, err := store.Datastore()
require.NoError(t, err)

Expand Down Expand Up @@ -290,7 +287,7 @@ func TestConvertFromArchivalToPruned(t *testing.T) {
require.NoError(t, err)

// convert to pruned node
err = store.PutConfig(nodebuilder.DefaultConfig(nt))
err = store.PutConfig(sw.DefaultTestConfig(nt))
require.NoError(t, err)
prunedNd, err := sw.NewNodeWithStore(nt, store)
require.NoError(t, err)
Expand Down
13 changes: 6 additions & 7 deletions share/eds/retriever_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
func TestRetriever_Retrieve(t *testing.T) {
// TODO @node-team: figure out why this regressed in CI
t.Skip("skipping retrieval as dangling component")
ctx, cancel := context.WithCancel(context.Background())
baseCtx, cancel := context.WithCancel(context.Background())
defer cancel()

bServ := ipld.NewMemBlockservice()
Expand All @@ -50,13 +50,11 @@ func TestRetriever_Retrieve(t *testing.T) {
// generate EDS
shares, err := libshare.RandShares(tc.squareSize * tc.squareSize)
require.NoError(t, err)
ctx, cancel := context.WithTimeout(baseCtx, time.Minute*5) // generous timeout for large squares
t.Cleanup(cancel)
in, err := ipld.AddShares(ctx, shares, bServ)
require.NoError(t, err)

// limit with timeout, specifically retrieval
ctx, cancel := context.WithTimeout(ctx, time.Minute*5) // the timeout is big for the max size which is long
defer cancel()

roots, err := share.NewAxisRoots(in)
require.NoError(t, err)
out, err := r.Retrieve(ctx, roots)
Expand Down Expand Up @@ -99,13 +97,14 @@ func TestRetriever_MultipleRandQuadrants(t *testing.T) {
}

func TestFraudProofValidation(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*20)
defer t.Cleanup(cancel)
bServ := ipld.NewMemBlockservice()

odsSize := []int{2, 4, 16, 32, 64, 128}
for _, size := range odsSize {
t.Run(fmt.Sprintf("ods size:%d", size), func(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), time.Minute*5)
t.Cleanup(cancel)

var errByz *byzantine.ErrByzantine
faultHeader, err := generateByzantineError(ctx, t, size, bServ)
require.NotNil(t, err)
Expand Down
Loading