You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.1 KiB
39 lines
1.1 KiB
// Copyright (c) Tailscale Inc & contributors
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
package wgcfg
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
// Tests that [Config.Equal] tests all fields of [Config], even ones
|
|
// that might get added in the future.
|
|
func TestConfigEqual(t *testing.T) {
|
|
rt := reflect.TypeFor[Config]()
|
|
for sf := range rt.Fields() {
|
|
switch sf.Name {
|
|
case "Name", "NodeID", "PrivateKey", "MTU", "Addresses", "DNS", "Peers",
|
|
"NetworkLogging":
|
|
// These are compared in [Config.Equal].
|
|
default:
|
|
t.Errorf("Have you added field %q to Config.Equal? Do so if not, and then update TestConfigEqual", sf.Name)
|
|
}
|
|
}
|
|
}
|
|
|
|
// Tests that [Peer.Equal] tests all fields of [Peer], even ones
|
|
// that might get added in the future.
|
|
func TestPeerEqual(t *testing.T) {
|
|
rt := reflect.TypeFor[Peer]()
|
|
for sf := range rt.Fields() {
|
|
switch sf.Name {
|
|
case "PublicKey", "DiscoKey", "AllowedIPs", "IsJailed",
|
|
"PersistentKeepalive", "V4MasqAddr", "V6MasqAddr", "WGEndpoint":
|
|
// These are compared in [Peer.Equal].
|
|
default:
|
|
t.Errorf("Have you added field %q to Peer.Equal? Do so if not, and then update TestPeerEqual", sf.Name)
|
|
}
|
|
}
|
|
}
|
|
|