aboutsummaryrefslogtreecommitdiffstats
path: root/dex/nodetable_test.go
diff options
context:
space:
mode:
authorSonic <sonic@dexon.org>2019-04-03 16:28:29 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-06-15 22:09:55 +0800
commitc597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c (patch)
treedef84e1c48925e637ff47bb9c8ee382666e4f752 /dex/nodetable_test.go
parentaff2c3533badc7415c223580c591a3274330185c (diff)
downloadgo-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar
go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.gz
go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.bz2
go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.lz
go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.xz
go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.zst
go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.zip
dex: remove node table (#330)
* dex: remove node table Node table is not so useful, go back to rely on kademlia * p2p: fix direct dial still have resolve delay
Diffstat (limited to 'dex/nodetable_test.go')
-rw-r--r--dex/nodetable_test.go121
1 files changed, 0 insertions, 121 deletions
diff --git a/dex/nodetable_test.go b/dex/nodetable_test.go
deleted file mode 100644
index 06078a0d8..000000000
--- a/dex/nodetable_test.go
+++ /dev/null
@@ -1,121 +0,0 @@
-package dex
-
-import (
- "crypto/ecdsa"
- "net"
- "testing"
- "time"
-
- "github.com/dexon-foundation/dexon/common"
- "github.com/dexon-foundation/dexon/crypto"
- "github.com/dexon-foundation/dexon/p2p/enode"
- "github.com/dexon-foundation/dexon/p2p/enr"
-)
-
-func TestNodeTable(t *testing.T) {
- table := newNodeTable()
- ch := make(chan newRecordsEvent)
- table.SubscribeNewRecordsEvent(ch)
-
- records1 := []*enr.Record{
- randomNode().Record(),
- randomNode().Record(),
- }
-
- records2 := []*enr.Record{
- randomNode().Record(),
- randomNode().Record(),
- }
-
- go table.AddRecords(records1)
-
- select {
- case newRecords := <-ch:
- m := map[common.Hash]struct{}{}
- for _, record := range newRecords.Records {
- m[rlpHash(record)] = struct{}{}
- }
-
- if len(m) != len(records1) {
- t.Errorf("len mismatch: got %d, want: %d",
- len(m), len(records1))
- }
-
- for _, record := range records1 {
- if _, ok := m[rlpHash(record)]; !ok {
- t.Errorf("expected record (%s) not exists", rlpHash(record))
- }
- }
- case <-time.After(1 * time.Second):
- t.Error("did not receive new records event within one second")
- }
-
- go table.AddRecords(records2)
- select {
- case newRecords := <-ch:
- m := map[common.Hash]struct{}{}
- for _, record := range newRecords.Records {
- m[rlpHash(record)] = struct{}{}
- }
-
- if len(m) != len(records2) {
- t.Errorf("len mismatch: got %d, want: %d",
- len(m), len(records2))
- }
-
- for _, record := range records2 {
- if _, ok := m[rlpHash(record)]; !ok {
- t.Errorf("expected record (%s) not exists", rlpHash(record))
- }
- }
- case <-time.After(1 * time.Second):
- t.Error("did not receive new records event within one second")
- }
-
- var records []*enr.Record
- records = append(records, records1...)
- records = append(records, records2...)
- allRecords := table.Records()
- if len(allRecords) != len(records) {
- t.Errorf("all metas num mismatch: got %d, want %d",
- len(records), len(allRecords))
- }
-
- for _, r := range records {
- n, err := enode.New(enode.V4ID{}, r)
- if err != nil {
- t.Errorf(err.Error())
- }
- if rlpHash(r) != rlpHash(table.GetNode(n.ID()).Record()) {
- t.Errorf("record (%s) mismatch", n.ID().String())
- }
- }
-}
-
-func randomNode() *enode.Node {
- var err error
- var privkey *ecdsa.PrivateKey
- for {
- privkey, err = crypto.GenerateKey()
- if err == nil {
- break
- }
- }
- var r enr.Record
- r.Set(enr.IP(net.IP{}))
- r.Set(enr.UDP(0))
- r.Set(enr.TCP(0))
- if err := enode.SignV4(&r, privkey); err != nil {
- panic(err)
- }
- node, err := enode.New(enode.V4ID{}, &r)
- if err != nil {
- panic(err)
-
- }
- return node
-}
-
-func randomID() enode.ID {
- return randomNode().ID()
-}