github.com/guilhermebr/docker@v1.4.2-0.20150428121140-67da055cebca/pkg/etchosts/etchosts_test.go (about) 1 package etchosts 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "os" 7 "testing" 8 ) 9 10 func TestBuildDefault(t *testing.T) { 11 file, err := ioutil.TempFile("", "") 12 if err != nil { 13 t.Fatal(err) 14 } 15 defer os.Remove(file.Name()) 16 17 // check that /etc/hosts has consistent ordering 18 for i := 0; i <= 5; i++ { 19 err = Build(file.Name(), "", "", "", nil) 20 if err != nil { 21 t.Fatal(err) 22 } 23 24 content, err := ioutil.ReadFile(file.Name()) 25 if err != nil { 26 t.Fatal(err) 27 } 28 expected := "127.0.0.1\tlocalhost\n::1\tlocalhost ip6-localhost ip6-loopback\nfe00::0\tip6-localnet\nff00::0\tip6-mcastprefix\nff02::1\tip6-allnodes\nff02::2\tip6-allrouters\n" 29 30 if expected != string(content) { 31 t.Fatalf("Expected to find '%s' got '%s'", expected, content) 32 } 33 } 34 } 35 36 func TestBuildHostnameDomainname(t *testing.T) { 37 file, err := ioutil.TempFile("", "") 38 if err != nil { 39 t.Fatal(err) 40 } 41 defer os.Remove(file.Name()) 42 43 err = Build(file.Name(), "10.11.12.13", "testhostname", "testdomainname", nil) 44 if err != nil { 45 t.Fatal(err) 46 } 47 48 content, err := ioutil.ReadFile(file.Name()) 49 if err != nil { 50 t.Fatal(err) 51 } 52 53 if expected := "10.11.12.13\ttesthostname.testdomainname testhostname\n"; !bytes.Contains(content, []byte(expected)) { 54 t.Fatalf("Expected to find '%s' got '%s'", expected, content) 55 } 56 } 57 58 func TestBuildHostname(t *testing.T) { 59 file, err := ioutil.TempFile("", "") 60 if err != nil { 61 t.Fatal(err) 62 } 63 defer os.Remove(file.Name()) 64 65 err = Build(file.Name(), "10.11.12.13", "testhostname", "", nil) 66 if err != nil { 67 t.Fatal(err) 68 } 69 70 content, err := ioutil.ReadFile(file.Name()) 71 if err != nil { 72 t.Fatal(err) 73 } 74 75 if expected := "10.11.12.13\ttesthostname\n"; !bytes.Contains(content, []byte(expected)) { 76 t.Fatalf("Expected to find '%s' got '%s'", expected, content) 77 } 78 } 79 80 func TestBuildNoIP(t *testing.T) { 81 file, err := ioutil.TempFile("", "") 82 if err != nil { 83 t.Fatal(err) 84 } 85 defer os.Remove(file.Name()) 86 87 err = Build(file.Name(), "", "testhostname", "", nil) 88 if err != nil { 89 t.Fatal(err) 90 } 91 92 content, err := ioutil.ReadFile(file.Name()) 93 if err != nil { 94 t.Fatal(err) 95 } 96 97 if expected := ""; !bytes.Contains(content, []byte(expected)) { 98 t.Fatalf("Expected to find '%s' got '%s'", expected, content) 99 } 100 } 101 102 func TestUpdate(t *testing.T) { 103 file, err := ioutil.TempFile("", "") 104 if err != nil { 105 t.Fatal(err) 106 } 107 defer os.Remove(file.Name()) 108 109 if err := Build(file.Name(), "10.11.12.13", "testhostname", "testdomainname", nil); err != nil { 110 t.Fatal(err) 111 } 112 113 content, err := ioutil.ReadFile(file.Name()) 114 if err != nil { 115 t.Fatal(err) 116 } 117 118 if expected := "10.11.12.13\ttesthostname.testdomainname testhostname\n"; !bytes.Contains(content, []byte(expected)) { 119 t.Fatalf("Expected to find '%s' got '%s'", expected, content) 120 } 121 122 if err := Update(file.Name(), "1.1.1.1", "testhostname"); err != nil { 123 t.Fatal(err) 124 } 125 126 content, err = ioutil.ReadFile(file.Name()) 127 if err != nil { 128 t.Fatal(err) 129 } 130 131 if expected := "1.1.1.1\ttesthostname.testdomainname testhostname\n"; !bytes.Contains(content, []byte(expected)) { 132 t.Fatalf("Expected to find '%s' got '%s'", expected, content) 133 } 134 }