github.com/sneal/packer@v0.5.2/builder/amazon/chroot/copy_files_test.go (about) 1 package chroot 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "os" 7 "testing" 8 ) 9 10 func TestCopyFile(t *testing.T) { 11 first, err := ioutil.TempFile("", "copy_files_test") 12 if err != nil { 13 t.Fatalf("couldn't create temp file.") 14 } 15 defer os.Remove(first.Name()) 16 newName := first.Name() + "-new" 17 18 payload := "copy_files_test.go payload" 19 if _, err = first.WriteString(payload); err != nil { 20 t.Fatalf("Couldn't write payload to first file.") 21 } 22 first.Sync() 23 24 cmd := ShellCommand(fmt.Sprintf("cp %s %s", first.Name(), newName)) 25 if err := cmd.Run(); err != nil { 26 t.Fatalf("Couldn't copy file") 27 } 28 defer os.Remove(newName) 29 30 second, err := os.Open(newName) 31 if err != nil { 32 t.Fatalf("Couldn't open copied file.") 33 } 34 defer second.Close() 35 36 var copiedPayload = make([]byte, len(payload)) 37 if _, err := second.Read(copiedPayload); err != nil { 38 t.Fatalf("Couldn't open copied file for reading.") 39 } 40 41 if string(copiedPayload) != payload { 42 t.Fatalf("payload not copied.") 43 } 44 }