From 1e4e9161c570eb80718b86a2f6ece58d77aaf121 Mon Sep 17 00:00:00 2001
From: Sebastiaan van Stijn <github@gone.nl>
Date: Wed, 9 Aug 2023 19:42:01 +0200
Subject: [PATCH] libnetwork: move TestDNSOptions to a non-windows file

It was only testing stub implementations on Windows that are not
used in production code.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
---
 libnetwork/sandbox_dns_unix_test.go | 87 +++++++++++++++++++++++++++++
 libnetwork/sandbox_dns_windows.go   | 10 ----
 libnetwork/service_common_test.go   | 76 -------------------------
 3 files changed, 87 insertions(+), 86 deletions(-)
 create mode 100644 libnetwork/sandbox_dns_unix_test.go

diff --git a/libnetwork/sandbox_dns_unix_test.go b/libnetwork/sandbox_dns_unix_test.go
new file mode 100644
index 0000000000..5a01a13d52
--- /dev/null
+++ b/libnetwork/sandbox_dns_unix_test.go
@@ -0,0 +1,87 @@
+//go:build !windows
+
+package libnetwork
+
+import (
+	"runtime"
+	"testing"
+
+	"github.com/docker/docker/libnetwork/resolvconf"
+	"gotest.tools/v3/assert"
+	is "gotest.tools/v3/assert/cmp"
+	"gotest.tools/v3/skip"
+)
+
+func TestDNSOptions(t *testing.T) {
+	skip.If(t, runtime.GOOS == "windows", "test only works on linux")
+
+	c, err := New()
+	assert.NilError(t, err)
+
+	sb, err := c.NewSandbox("cnt1", nil)
+	assert.NilError(t, err)
+
+	cleanup := func(s *Sandbox) {
+		if err := s.Delete(); err != nil {
+			t.Error(err)
+		}
+	}
+
+	defer cleanup(sb)
+	sb.startResolver(false)
+
+	err = sb.setupDNS()
+	assert.NilError(t, err)
+	err = sb.rebuildDNS()
+	assert.NilError(t, err)
+	currRC, err := resolvconf.GetSpecific(sb.config.resolvConfPath)
+	assert.NilError(t, err)
+	dnsOptionsList := resolvconf.GetOptions(currRC.Content)
+	assert.Check(t, is.Len(dnsOptionsList, 1))
+	assert.Check(t, is.Equal("ndots:0", dnsOptionsList[0]))
+
+	sb.config.dnsOptionsList = []string{"ndots:5"}
+	err = sb.setupDNS()
+	assert.NilError(t, err)
+	currRC, err = resolvconf.GetSpecific(sb.config.resolvConfPath)
+	assert.NilError(t, err)
+	dnsOptionsList = resolvconf.GetOptions(currRC.Content)
+	assert.Check(t, is.Len(dnsOptionsList, 1))
+	assert.Check(t, is.Equal("ndots:5", dnsOptionsList[0]))
+
+	err = sb.rebuildDNS()
+	assert.NilError(t, err)
+	currRC, err = resolvconf.GetSpecific(sb.config.resolvConfPath)
+	assert.NilError(t, err)
+	dnsOptionsList = resolvconf.GetOptions(currRC.Content)
+	assert.Check(t, is.Len(dnsOptionsList, 1))
+	assert.Check(t, is.Equal("ndots:5", dnsOptionsList[0]))
+
+	sb2, err := c.NewSandbox("cnt2", nil)
+	assert.NilError(t, err)
+	defer cleanup(sb2)
+	sb2.startResolver(false)
+
+	sb2.config.dnsOptionsList = []string{"ndots:0"}
+	err = sb2.setupDNS()
+	assert.NilError(t, err)
+	err = sb2.rebuildDNS()
+	assert.NilError(t, err)
+	currRC, err = resolvconf.GetSpecific(sb2.config.resolvConfPath)
+	assert.NilError(t, err)
+	dnsOptionsList = resolvconf.GetOptions(currRC.Content)
+	assert.Check(t, is.Len(dnsOptionsList, 1))
+	assert.Check(t, is.Equal("ndots:0", dnsOptionsList[0]))
+
+	sb2.config.dnsOptionsList = []string{"ndots:foobar"}
+	err = sb2.setupDNS()
+	assert.NilError(t, err)
+	err = sb2.rebuildDNS()
+	assert.Error(t, err, "invalid number for ndots option: foobar")
+
+	sb2.config.dnsOptionsList = []string{"ndots:-1"}
+	err = sb2.setupDNS()
+	assert.NilError(t, err)
+	err = sb2.rebuildDNS()
+	assert.Error(t, err, "invalid number for ndots option: -1")
+}
diff --git a/libnetwork/sandbox_dns_windows.go b/libnetwork/sandbox_dns_windows.go
index 35e0a49de4..876dca0944 100644
--- a/libnetwork/sandbox_dns_windows.go
+++ b/libnetwork/sandbox_dns_windows.go
@@ -20,18 +20,8 @@ func (sb *Sandbox) updateHostsFile(ifaceIP []string) error {
 	return nil
 }
 
-func (sb *Sandbox) addHostsEntries(recs []etchosts.Record) {}
-
 func (sb *Sandbox) deleteHostsEntries(recs []etchosts.Record) {}
 
 func (sb *Sandbox) updateDNS(ipv6Enabled bool) error {
 	return nil
 }
-
-func (sb *Sandbox) setupDNS() error {
-	return nil
-}
-
-func (sb *Sandbox) rebuildDNS() error {
-	return nil
-}
diff --git a/libnetwork/service_common_test.go b/libnetwork/service_common_test.go
index 1c386c05bb..99f0fcec8f 100644
--- a/libnetwork/service_common_test.go
+++ b/libnetwork/service_common_test.go
@@ -6,9 +6,7 @@ import (
 	"testing"
 
 	"github.com/docker/docker/internal/testutils/netnsutils"
-	"github.com/docker/docker/libnetwork/resolvconf"
 	"gotest.tools/v3/assert"
-	is "gotest.tools/v3/assert/cmp"
 	"gotest.tools/v3/skip"
 )
 
@@ -56,77 +54,3 @@ func TestCleanupServiceDiscovery(t *testing.T) {
 		t.Fatalf("Service record not cleaned correctly:%v", c.svcRecords)
 	}
 }
-
-func TestDNSOptions(t *testing.T) {
-	skip.If(t, runtime.GOOS == "windows", "test only works on linux")
-
-	c, err := New()
-	assert.NilError(t, err)
-
-	sb, err := c.NewSandbox("cnt1", nil)
-	assert.NilError(t, err)
-
-	cleanup := func(s *Sandbox) {
-		if err := s.Delete(); err != nil {
-			t.Error(err)
-		}
-	}
-
-	defer cleanup(sb)
-	sb.startResolver(false)
-
-	err = sb.setupDNS()
-	assert.NilError(t, err)
-	err = sb.rebuildDNS()
-	assert.NilError(t, err)
-	currRC, err := resolvconf.GetSpecific(sb.config.resolvConfPath)
-	assert.NilError(t, err)
-	dnsOptionsList := resolvconf.GetOptions(currRC.Content)
-	assert.Check(t, is.Len(dnsOptionsList, 1))
-	assert.Check(t, is.Equal("ndots:0", dnsOptionsList[0]))
-
-	sb.config.dnsOptionsList = []string{"ndots:5"}
-	err = sb.setupDNS()
-	assert.NilError(t, err)
-	currRC, err = resolvconf.GetSpecific(sb.config.resolvConfPath)
-	assert.NilError(t, err)
-	dnsOptionsList = resolvconf.GetOptions(currRC.Content)
-	assert.Check(t, is.Len(dnsOptionsList, 1))
-	assert.Check(t, is.Equal("ndots:5", dnsOptionsList[0]))
-
-	err = sb.rebuildDNS()
-	assert.NilError(t, err)
-	currRC, err = resolvconf.GetSpecific(sb.config.resolvConfPath)
-	assert.NilError(t, err)
-	dnsOptionsList = resolvconf.GetOptions(currRC.Content)
-	assert.Check(t, is.Len(dnsOptionsList, 1))
-	assert.Check(t, is.Equal("ndots:5", dnsOptionsList[0]))
-
-	sb2, err := c.NewSandbox("cnt2", nil)
-	assert.NilError(t, err)
-	defer cleanup(sb2)
-	sb2.startResolver(false)
-
-	sb2.config.dnsOptionsList = []string{"ndots:0"}
-	err = sb2.setupDNS()
-	assert.NilError(t, err)
-	err = sb2.rebuildDNS()
-	assert.NilError(t, err)
-	currRC, err = resolvconf.GetSpecific(sb2.config.resolvConfPath)
-	assert.NilError(t, err)
-	dnsOptionsList = resolvconf.GetOptions(currRC.Content)
-	assert.Check(t, is.Len(dnsOptionsList, 1))
-	assert.Check(t, is.Equal("ndots:0", dnsOptionsList[0]))
-
-	sb2.config.dnsOptionsList = []string{"ndots:foobar"}
-	err = sb2.setupDNS()
-	assert.NilError(t, err)
-	err = sb2.rebuildDNS()
-	assert.Error(t, err, "invalid number for ndots option: foobar")
-
-	sb2.config.dnsOptionsList = []string{"ndots:-1"}
-	err = sb2.setupDNS()
-	assert.NilError(t, err)
-	err = sb2.rebuildDNS()
-	assert.Error(t, err, "invalid number for ndots option: -1")
-}