96 lines
2.3 KiB
Go
96 lines
2.3 KiB
Go
package dnsseed
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/caddyserver/caddy"
|
|
"github.com/zcashfoundation/dnsseeder/zcash/network"
|
|
)
|
|
|
|
// TestSetup tests the various things that should be parsed by setup.
|
|
func TestSetup(t *testing.T) {
|
|
tt := []struct {
|
|
config string
|
|
validConfig bool
|
|
magic network.Network
|
|
interval time.Duration
|
|
bootstrap []string
|
|
ttl uint32
|
|
}{
|
|
{`dnsseed`, false, 0, 0, []string{}, 0},
|
|
{`dnsseed mainnet`, false, 0, 0, []string{}, 0},
|
|
{`dnsseed { }`, false, 0, 0, []string{}, 0},
|
|
{`dnsseed { network }`, false, 0, 0, []string{}, 0},
|
|
{`dnsseed { network mainnet }`, true, network.Mainnet, defaultUpdateInterval, []string{}, defaultTTL},
|
|
{`dnsseed {
|
|
network testnet
|
|
crawl_interval 15s
|
|
bootstrap_peers
|
|
}`,
|
|
false, 0, 0, []string{}, 0,
|
|
},
|
|
{`dnsseed {
|
|
network testnet
|
|
crawl_interval
|
|
bootstrap_peers 127.0.0.1:8233
|
|
}`,
|
|
false, 0, 0, []string{}, 0,
|
|
},
|
|
{`dnsseed {
|
|
network testnet
|
|
crawl_interval 15s
|
|
bootstrap_peers 127.0.0.1:8233
|
|
}`,
|
|
true, network.Testnet, time.Duration(15) * time.Second, []string{"127.0.0.1:8233"}, defaultTTL,
|
|
},
|
|
{`dnsseed {
|
|
network testnet
|
|
crawl_interval 15s
|
|
bootstrap_peers 127.0.0.1:8233
|
|
boop snoot every 15s
|
|
}`,
|
|
false, 0, 0, []string{}, 0,
|
|
},
|
|
{`dnsseed {
|
|
network mainnet
|
|
crawl_interval 30m
|
|
bootstrap_peers 127.0.0.1:8233 127.0.0.2:8233
|
|
record_ttl 300
|
|
}`,
|
|
true, network.Mainnet, time.Duration(30) * time.Minute, []string{"127.0.0.1:8233", "127.0.0.2:8233"}, 300,
|
|
},
|
|
}
|
|
|
|
for _, test := range tt {
|
|
c := caddy.NewTestController("dns", test.config)
|
|
opts, err := parseConfig(c)
|
|
if (err == nil) != test.validConfig {
|
|
t.Errorf("Unexpected error in test case `%s`: %v", test.config, err)
|
|
t.FailNow()
|
|
}
|
|
|
|
if err != nil && !test.validConfig {
|
|
// bad parse, as expected
|
|
continue
|
|
}
|
|
|
|
if opts.networkMagic != test.magic {
|
|
t.Errorf("Input: %s wrong network magic", test.config)
|
|
}
|
|
|
|
if opts.updateInterval != test.interval {
|
|
t.Errorf("Input: %s wrong update interval", test.config)
|
|
}
|
|
|
|
for i, s := range opts.bootstrapPeers {
|
|
if s != test.bootstrap[i] {
|
|
t.Errorf("Input: %s wrong bootstrap peer", test.config)
|
|
}
|
|
}
|
|
|
|
if opts.recordTTL != test.ttl {
|
|
t.Errorf("Input: %s wrong TTL", test.config)
|
|
}
|
|
}
|
|
} |