diff options
| author | Bryan C. Mills <bcmills@google.com> | 2019-02-20 18:11:11 -0500 |
|---|---|---|
| committer | Bryan C. Mills <bcmills@google.com> | 2019-02-26 02:45:57 +0000 |
| commit | 50bb2b6b0f11e4e3ef73aee55946cd4da546f6b1 (patch) | |
| tree | ecc65d5c241151d61ed248c5c215a98a47810c50 /src | |
| parent | 1670da9ee4aabe3a9e35703d5ca34265d2294e99 (diff) | |
| download | go-50bb2b6b0f11e4e3ef73aee55946cd4da546f6b1.tar.xz | |
cmd/go: allow "stdout" and "stderr" as inputs to script_test "cp" command
Updates #30241
Change-Id: I543d8914faf810835d3327baa3c84b3dff124156
Reviewed-on: https://go-review.googlesource.com/c/163519
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/go/script_test.go | 29 | ||||
| -rw-r--r-- | src/cmd/go/testdata/script/README | 2 |
2 files changed, 25 insertions, 6 deletions
diff --git a/src/cmd/go/script_test.go b/src/cmd/go/script_test.go index c56c1fd3e4..9cc2521e79 100644 --- a/src/cmd/go/script_test.go +++ b/src/cmd/go/script_test.go @@ -509,16 +509,33 @@ func (ts *testScript) cmdCp(neg bool, args []string) { } for _, arg := range args[:len(args)-1] { - src := ts.mkabs(arg) - info, err := os.Stat(src) - ts.check(err) - data, err := ioutil.ReadFile(src) - ts.check(err) + var ( + src string + data []byte + mode os.FileMode + ) + switch arg { + case "stdout": + src = arg + data = []byte(ts.stdout) + mode = 0666 + case "stderr": + src = arg + data = []byte(ts.stderr) + mode = 0666 + default: + src = ts.mkabs(arg) + info, err := os.Stat(src) + ts.check(err) + mode = info.Mode() & 0777 + data, err = ioutil.ReadFile(src) + ts.check(err) + } targ := dst if dstDir { targ = filepath.Join(dst, filepath.Base(src)) } - ts.check(ioutil.WriteFile(targ, data, info.Mode()&0777)) + ts.check(ioutil.WriteFile(targ, data, mode)) } } diff --git a/src/cmd/go/testdata/script/README b/src/cmd/go/testdata/script/README index a7b50fff16..0c34333823 100644 --- a/src/cmd/go/testdata/script/README +++ b/src/cmd/go/testdata/script/README @@ -108,6 +108,8 @@ The commands are: - cp src... dst Copy the listed files to the target file or existing directory. + src can include "stdout" or "stderr" to use the standard output or standard error + from the most recent exec or go command. - env [key=value...] With no arguments, print the environment (useful for debugging). |
