lnd/lncfg/workers_test.go

103 lines
1.6 KiB
Go
Raw Permalink Normal View History

package lncfg_test
import (
"testing"
"github.com/lightningnetwork/lnd/lncfg"
)
const (
maxUint = ^uint(0)
maxInt = int(maxUint >> 1)
minInt = -maxInt - 1
)
// TestValidateWorkers asserts that validating the Workers config only succeeds
// if all fields specify a positive number of workers.
func TestValidateWorkers(t *testing.T) {
tests := []struct {
name string
cfg *lncfg.Workers
valid bool
}{
{
name: "min valid",
cfg: &lncfg.Workers{
Read: 1,
Write: 1,
Sig: 1,
},
valid: true,
},
{
name: "max valid",
cfg: &lncfg.Workers{
Read: maxInt,
Write: maxInt,
Sig: maxInt,
},
valid: true,
},
{
name: "read max invalid",
cfg: &lncfg.Workers{
Read: 0,
Write: 1,
Sig: 1,
},
},
{
name: "write max invalid",
cfg: &lncfg.Workers{
Read: 1,
Write: 0,
Sig: 1,
},
},
{
name: "sig max invalid",
cfg: &lncfg.Workers{
Read: 1,
Write: 1,
Sig: 0,
},
},
{
name: "read min invalid",
cfg: &lncfg.Workers{
Read: minInt,
Write: 1,
Sig: 1,
},
},
{
name: "write min invalid",
cfg: &lncfg.Workers{
Read: 1,
Write: minInt,
Sig: 1,
},
},
{
name: "sig min invalid",
cfg: &lncfg.Workers{
Read: 1,
Write: 1,
Sig: minInt,
},
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
err := test.cfg.Validate()
switch {
case test.valid && err != nil:
t.Fatalf("valid config was invalid: %v", err)
case !test.valid && err == nil:
t.Fatalf("invalid config was valid")
}
})
}
}