| 95 | } |
| 96 | |
| 97 | func (wb *Workbench) CopyFile(src, dst string) { |
| 98 | fileInfo, err := os.Stat(src) |
| 99 | require.Nil(wb.t, err) |
| 100 | |
| 101 | in, err := os.Open(src) |
| 102 | require.Nil(wb.t, err) |
| 103 | defer func() { |
| 104 | _ = in.Close() |
| 105 | }() |
| 106 | |
| 107 | out, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, fileInfo.Mode()) |
| 108 | require.Nil(wb.t, err) |
| 109 | defer func() { |
| 110 | err := out.Close() |
| 111 | require.Nil(wb.t, err) |
| 112 | }() |
| 113 | |
| 114 | _, err = io.Copy(out, in) |
| 115 | require.Nil(wb.t, err) |
| 116 | |
| 117 | err = out.Sync() |
| 118 | require.Nil(wb.t, err) |
| 119 | } |
| 120 | |
| 121 | func (wb *Workbench) InTmpDataPath(path string) string { |
| 122 | return filepath.Join(wb.currentTestTmpDir, path) |