mirror of
				https://github.com/tailscale/tailscale.git
				synced 2025-10-31 00:01:40 +01:00 
			
		
		
		
	Discovered this while investigating the following issue; I think it's unrelated, but might as well fix it. Also, add a test helper for checking things that have an IsZero method using the reflect package. Updates tailscale/support-escalations#55 Signed-off-by: Andrew Dunham <andrew@du.nham.ca> Change-Id: I57b7adde43bcef9483763b561da173b4c35f49e2
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (c) Tailscale Inc & AUTHORS
 | |
| // SPDX-License-Identifier: BSD-3-Clause
 | |
| 
 | |
| package dns
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"net/netip"
 | |
| 	"reflect"
 | |
| 	"testing"
 | |
| 
 | |
| 	"tailscale.com/tstest"
 | |
| 	"tailscale.com/util/dnsname"
 | |
| )
 | |
| 
 | |
| func TestOSConfigPrintable(t *testing.T) {
 | |
| 	ocfg := OSConfig{
 | |
| 		Hosts: []*HostEntry{
 | |
| 			{
 | |
| 				Addr:  netip.AddrFrom4([4]byte{100, 1, 2, 3}),
 | |
| 				Hosts: []string{"server", "client"},
 | |
| 			},
 | |
| 			{
 | |
| 				Addr:  netip.AddrFrom4([4]byte{100, 1, 2, 4}),
 | |
| 				Hosts: []string{"otherhost"},
 | |
| 			},
 | |
| 		},
 | |
| 		Nameservers: []netip.Addr{
 | |
| 			netip.AddrFrom4([4]byte{8, 8, 8, 8}),
 | |
| 		},
 | |
| 		SearchDomains: []dnsname.FQDN{
 | |
| 			dnsname.FQDN("foo.beta.tailscale.net."),
 | |
| 			dnsname.FQDN("bar.beta.tailscale.net."),
 | |
| 		},
 | |
| 		MatchDomains: []dnsname.FQDN{
 | |
| 			dnsname.FQDN("ts.com."),
 | |
| 		},
 | |
| 	}
 | |
| 	s := fmt.Sprintf("%+v", ocfg)
 | |
| 
 | |
| 	const expected = `{Nameservers:[8.8.8.8] SearchDomains:[foo.beta.tailscale.net. bar.beta.tailscale.net.] MatchDomains:[ts.com.] Hosts:[&{Addr:100.1.2.3 Hosts:[server client]} &{Addr:100.1.2.4 Hosts:[otherhost]}]}`
 | |
| 	if s != expected {
 | |
| 		t.Errorf("format mismatch:\n   got: %s\n  want: %s", s, expected)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestIsZero(t *testing.T) {
 | |
| 	tstest.CheckIsZero[OSConfig](t, map[reflect.Type]any{
 | |
| 		reflect.TypeFor[dnsname.FQDN](): dnsname.FQDN("foo.bar."),
 | |
| 		reflect.TypeFor[*HostEntry](): &HostEntry{
 | |
| 			Addr:  netip.AddrFrom4([4]byte{100, 1, 2, 3}),
 | |
| 			Hosts: []string{"foo", "bar"},
 | |
| 		},
 | |
| 	})
 | |
| }
 |