github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/node/node_test.go (about)

     1  package node
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"os"
     7  	"path/filepath"
     8  	"testing"
     9  
    10  	statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state"
    11  	"github.com/prysmaticlabs/prysm/shared/cmd"
    12  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    13  	logTest "github.com/sirupsen/logrus/hooks/test"
    14  	"github.com/urfave/cli/v2"
    15  )
    16  
    17  // Ensure BeaconNode implements interfaces.
    18  var _ statefeed.Notifier = (*BeaconNode)(nil)
    19  
    20  // Test that beacon chain node can close.
    21  func TestNodeClose_OK(t *testing.T) {
    22  	hook := logTest.NewGlobal()
    23  
    24  	tmp := fmt.Sprintf("%s/datadirtest2", t.TempDir())
    25  
    26  	app := cli.App{}
    27  	set := flag.NewFlagSet("test", 0)
    28  	set.Bool("test-skip-pow", true, "skip pow dial")
    29  	set.String("datadir", tmp, "node data directory")
    30  	set.String("p2p-encoding", "ssz", "p2p encoding scheme")
    31  	set.Bool("demo-config", true, "demo configuration")
    32  	set.String("deposit-contract", "0x0000000000000000000000000000000000000000", "deposit contract address")
    33  
    34  	context := cli.NewContext(&app, set, nil)
    35  
    36  	node, err := New(context)
    37  	require.NoError(t, err)
    38  
    39  	node.Close()
    40  
    41  	require.LogsContain(t, hook, "Stopping beacon node")
    42  	require.NoError(t, os.RemoveAll(tmp))
    43  }
    44  
    45  // TestClearDB tests clearing the database
    46  func TestClearDB(t *testing.T) {
    47  	hook := logTest.NewGlobal()
    48  
    49  	tmp := filepath.Join(t.TempDir(), "datadirtest")
    50  
    51  	app := cli.App{}
    52  	set := flag.NewFlagSet("test", 0)
    53  	set.String("datadir", tmp, "node data directory")
    54  	set.Bool(cmd.ForceClearDB.Name, true, "force clear db")
    55  
    56  	context := cli.NewContext(&app, set, nil)
    57  	_, err := New(context)
    58  	require.NoError(t, err)
    59  
    60  	require.LogsContain(t, hook, "Removing database")
    61  	require.NoError(t, os.RemoveAll(tmp))
    62  }