@@ -836,6 +836,76 @@ func TestManager(t *testing.T) {
836836 },
837837 goos : "darwin" ,
838838 },
839+ {
840+ name : "populate-hosts-magicdns" ,
841+ in : Config {
842+ Routes : upstreams (
843+ "corp.com" , "2.2.2.2" ,
844+ "ts.com" , "" ),
845+ Hosts : hosts (
846+ "dave.ts.com." , "1.2.3.4" ,
847+ "bradfitz.ts.com." , "2.3.4.5" ),
848+ SearchDomains : fqdns ("ts.com" , "universe.tf" ),
849+ },
850+ split : true ,
851+ os : OSConfig {
852+ Hosts : []* HostEntry {
853+ {
854+ Addr : netip .MustParseAddr ("2.3.4.5" ),
855+ Hosts : []string {
856+ "bradfitz.ts.com." ,
857+ "bradfitz" ,
858+ },
859+ },
860+ {
861+ Addr : netip .MustParseAddr ("1.2.3.4" ),
862+ Hosts : []string {
863+ "dave.ts.com." ,
864+ "dave" ,
865+ },
866+ },
867+ },
868+ Nameservers : mustIPs ("100.100.100.100" ),
869+ SearchDomains : fqdns ("ts.com" , "universe.tf" ),
870+ MatchDomains : fqdns ("corp.com" , "ts.com" ),
871+ },
872+ rs : resolver.Config {
873+ Routes : upstreams ("corp.com." , "2.2.2.2" ),
874+ Hosts : hosts (
875+ "dave.ts.com." , "1.2.3.4" ,
876+ "bradfitz.ts.com." , "2.3.4.5" ),
877+ LocalDomains : fqdns ("ts.com." ),
878+ },
879+ goos : "windows" ,
880+ },
881+ {
882+ // Regression test for https://github.com/tailscale/tailscale/issues/14428
883+ name : "nopopulate-hosts-nomagicdns" ,
884+ in : Config {
885+ Routes : upstreams (
886+ "corp.com" , "2.2.2.2" ,
887+ "ts.com" , "1.1.1.1" ),
888+ Hosts : hosts (
889+ "dave.ts.com." , "1.2.3.4" ,
890+ "bradfitz.ts.com." , "2.3.4.5" ),
891+ SearchDomains : fqdns ("ts.com" , "universe.tf" ),
892+ },
893+ split : true ,
894+ os : OSConfig {
895+ Nameservers : mustIPs ("100.100.100.100" ),
896+ SearchDomains : fqdns ("ts.com" , "universe.tf" ),
897+ MatchDomains : fqdns ("corp.com" , "ts.com" ),
898+ },
899+ rs : resolver.Config {
900+ Routes : upstreams (
901+ "corp.com." , "2.2.2.2" ,
902+ "ts.com" , "1.1.1.1" ),
903+ Hosts : hosts (
904+ "dave.ts.com." , "1.2.3.4" ,
905+ "bradfitz.ts.com." , "2.3.4.5" ),
906+ },
907+ goos : "windows" ,
908+ },
839909 }
840910
841911 trIP := cmp .Transformer ("ipStr" , func (ip netip.Addr ) string { return ip .String () })
0 commit comments