diff options
Diffstat (limited to 'node/node_test.go')
-rw-r--r-- | node/node_test.go | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/node/node_test.go b/node/node_test.go index 411bb3360..bfd33a8f0 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -129,10 +129,10 @@ func setupFullNodes(t *testing.T, proto protocol.ConsensusVersion, verificationP panic(err) } part, err := account.FillDBWithParticipationKeys(access, root.Address(), firstRound, lastRound, config.Consensus[protocol.ConsensusCurrentVersion].DefaultKeyDilution) - access.Close() if err != nil { panic(err) } + access.Close() data := basics.AccountData{ Status: basics.Online, @@ -507,3 +507,49 @@ func TestMismatchingGenesisDirectoryPermissions(t *testing.T) { require.NoError(t, os.Chmod(testDirectroy, 1700)) require.NoError(t, os.RemoveAll(testDirectroy)) } + +func TestAsyncRecord(t *testing.T) { + partitiontest.PartitionTest(t) + + testDirectroy, err := ioutil.TempDir(os.TempDir(), t.Name()) + require.NoError(t, err) + + genesis := bookkeeping.Genesis{ + SchemaID: "go-test-node-record-async", + Proto: protocol.ConsensusCurrentVersion, + Network: config.Devtestnet, + FeeSink: sinkAddr.String(), + RewardsPool: poolAddr.String(), + } + + cfg := config.GetDefaultLocal() + cfg.DisableNetworking = true + node, err := MakeFull(logging.TestingLog(t), testDirectroy, config.GetDefaultLocal(), []string{}, genesis) + require.NoError(t, err) + node.Start() + defer node.Stop() + + var addr basics.Address + addr[0] = 1 + + p := account.Participation{ + Parent: addr, + FirstValid: 0, + LastValid: 1000000, + Voting: &crypto.OneTimeSignatureSecrets{}, + VRF: &crypto.VRFSecrets{}, + } + id, err := node.accountManager.Registry().Insert(p) + require.NoError(t, err) + err = node.accountManager.Registry().Register(id, 0) + require.NoError(t, err) + + node.Record(addr, 10000, account.Vote) + node.Record(addr, 20000, account.BlockProposal) + + time.Sleep(5000 * time.Millisecond) + records := node.accountManager.Registry().GetAll() + require.Len(t, records, 1) + require.Equal(t, 10000, int(records[0].LastVote)) + require.Equal(t, 20000, int(records[0].LastBlockProposal)) +} |