]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: allow "stdout" and "stderr" as inputs to script_test "cp" command
authorBryan C. Mills <bcmills@google.com>
Wed, 20 Feb 2019 23:11:11 +0000 (18:11 -0500)
committerBryan C. Mills <bcmills@google.com>
Tue, 26 Feb 2019 02:45:57 +0000 (02:45 +0000)
Updates #30241

Change-Id: I543d8914faf810835d3327baa3c84b3dff124156
Reviewed-on: https://go-review.googlesource.com/c/163519
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/go/script_test.go
src/cmd/go/testdata/script/README

index c56c1fd3e42a13db956a458ade78f9e53118deea..9cc2521e7906e7968ac41d58a76a1fc920ae2153 100644 (file)
@@ -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))
        }
 }
 
index a7b50fff1645456710fa262e580d3d5b3f102781..0c343338237d2f9e114bb0b9e3bd05f18dd1faa5 100644 (file)
@@ -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).