diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go
index fc1d40f..73ce383 100644
--- a/src/net/dnsclient_unix_test.go
+++ b/src/net/dnsclient_unix_test.go
@@ -2855,3 +2855,50 @@
t.Fatalf("r.tryOneName(): unexpected error: %v", err)
}
}
+
+// TODO: test name is bad
+func TestEmptyResolvConfUpdatedWithNew(t *testing.T) {
+ conf, err := newResolvConfTest()
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer conf.teardown()
+
+ path := filepath.Join(t.TempDir(), "empty-resolv.conf")
+ f, err := os.Create(path)
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer f.Close()
+
+ if _, err := f.WriteString("# Empty resolv.conf file\n"); err != nil {
+ t.Fatal(err)
+ }
+
+ if err := conf.forceUpdate(path, time.Now()); err != nil {
+ t.Fatal(err)
+ }
+
+ // Same as the pacakge scoped [getSystemDNSConfig], but with
+ // a different path specified.
+ getSystemDNSConfig := func() *dnsConfig {
+ resolvConf.tryUpdate(path)
+ return resolvConf.dnsConfig.Load()
+ }
+
+ if _, err := f.WriteString("nameserver 1.1.1.1"); err != nil {
+ t.Fatal(err)
+ }
+
+ var wg sync.WaitGroup
+
+ for range 200 {
+ wg.Go(func() {
+ if len(getSystemDNSConfig().servers) == 0 {
+ t.Error("got zero nameservers")
+ }
+ })
+ }
+
+ wg.Wait()
+}