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  }