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

     1  package registration
     2  
     3  import (
     4  	"flag"
     5  	"io/ioutil"
     6  	"testing"
     7  
     8  	"github.com/prysmaticlabs/prysm/shared/cmd"
     9  	"github.com/prysmaticlabs/prysm/shared/params"
    10  	"github.com/prysmaticlabs/prysm/shared/testutil/assert"
    11  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    12  	"github.com/urfave/cli/v2"
    13  )
    14  
    15  func TestP2PPreregistration_DefaultDataDir(t *testing.T) {
    16  	app := cli.App{}
    17  	set := flag.NewFlagSet("test", 0)
    18  	set.String(cmd.DataDirFlag.Name, "", "")
    19  	ctx := cli.NewContext(&app, set, nil)
    20  
    21  	_, dataDir, err := P2PPreregistration(ctx)
    22  	require.NoError(t, err)
    23  	assert.Equal(t, cmd.DefaultDataDir(), dataDir)
    24  }
    25  
    26  func TestP2PPreregistration(t *testing.T) {
    27  	sampleNode := "- enr:-TESTNODE"
    28  	testDataDir := "testDataDir"
    29  
    30  	file, err := ioutil.TempFile(t.TempDir(), "bootstrapFile*.yaml")
    31  	require.NoError(t, err)
    32  	err = ioutil.WriteFile(file.Name(), []byte(sampleNode), 0644)
    33  	require.NoError(t, err, "Error in WriteFile call")
    34  	params.SetupTestConfigCleanup(t)
    35  	config := params.BeaconNetworkConfig()
    36  	config.BootstrapNodes = []string{file.Name()}
    37  	params.OverrideBeaconNetworkConfig(config)
    38  
    39  	app := cli.App{}
    40  	set := flag.NewFlagSet("test", 0)
    41  	set.String(cmd.DataDirFlag.Name, testDataDir, "")
    42  	ctx := cli.NewContext(&app, set, nil)
    43  
    44  	bootstrapNodeAddrs, dataDir, err := P2PPreregistration(ctx)
    45  	require.NoError(t, err)
    46  	require.Equal(t, 1, len(bootstrapNodeAddrs))
    47  	assert.Equal(t, sampleNode[2:], bootstrapNodeAddrs[0])
    48  	assert.Equal(t, testDataDir, dataDir)
    49  }
    50  
    51  func TestBootStrapNodeFile(t *testing.T) {
    52  	file, err := ioutil.TempFile(t.TempDir(), "bootstrapFile")
    53  	require.NoError(t, err)
    54  
    55  	sampleNode0 := "- enr:-Ku4QMKVC_MowDsmEa20d5uGjrChI0h8_KsKXDmgVQbIbngZV0i" +
    56  		"dV6_RL7fEtZGo-kTNZ5o7_EJI_vCPJ6scrhwX0Z4Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD" +
    57  		"1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQJxCnE6v_x2ekgY_uo" +
    58  		"E1rtwzvGy40mq9eD66XfHPBWgIIN1ZHCCD6A"
    59  	sampleNode1 := "- enr:-TESTNODE2"
    60  	sampleNode2 := "- enr:-TESTNODE3"
    61  	err = ioutil.WriteFile(file.Name(), []byte(sampleNode0+"\n"+sampleNode1+"\n"+sampleNode2), 0644)
    62  	require.NoError(t, err, "Error in WriteFile call")
    63  	nodeList, err := readbootNodes(file.Name())
    64  	require.NoError(t, err, "Error in readbootNodes call")
    65  	assert.Equal(t, sampleNode0[2:], nodeList[0], "Unexpected nodes")
    66  	assert.Equal(t, sampleNode1[2:], nodeList[1], "Unexpected nodes")
    67  	assert.Equal(t, sampleNode2[2:], nodeList[2], "Unexpected nodes")
    68  }