github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/worker/runtime/resolvconf_parser_test.go (about) 1 package runtime_test 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path" 7 8 "code.cloudfoundry.org/localip" 9 "github.com/pf-qiu/concourse/v6/worker/runtime" 10 "github.com/stretchr/testify/require" 11 "github.com/stretchr/testify/suite" 12 ) 13 14 type ResolveconfParserSuite struct { 15 suite.Suite 16 *require.Assertions 17 } 18 19 func (s *ResolveconfParserSuite) TestParseHostResolvConf() { 20 file := ` 21 nameserver 8.8.8.8 22 nameserver 127.0.0.16 23 nameserver something 9.9.9.9 24 search something 25 ` 26 27 tmpDir, _ := ioutil.TempDir("", "test-resolv") 28 defer os.RemoveAll(tmpDir) 29 ioutil.WriteFile(path.Join(tmpDir, "resolv.conf"), []byte(file), 0644) 30 31 entries, err := runtime.ParseHostResolveConf(path.Join(tmpDir, "resolv.conf")) 32 s.NoError(err) 33 34 s.Equal([]string{"nameserver 8.8.8.8", "search something"}, entries) 35 } 36 37 func (s *ResolveconfParserSuite) TestParseHostResolvConfWithLoopback() { 38 file := `nameserver 127.0.0.1` 39 40 tmpDir, _ := ioutil.TempDir("", "test-resolv-noloopback") 41 defer os.RemoveAll(tmpDir) 42 ioutil.WriteFile(path.Join(tmpDir, "resolv.conf"), []byte(file), 0644) 43 44 entries, err := runtime.ParseHostResolveConf(path.Join(tmpDir, "resolv.conf")) 45 s.NoError(err) 46 47 ip, _ := localip.LocalIP() 48 s.Equal([]string{"nameserver " + ip}, entries) 49 }