aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2018-12-07 17:36:55 -0500
committerBryan C. Mills <bcmills@google.com>2018-12-11 16:41:35 +0000
commitba607240f76fce446e1104d034e444ec42e22c73 (patch)
tree2b5bf21e5ec73afd9be3330c9fc7db696f053e3b
parent21da8e6022d1d148741ba3c08cdc555df500520e (diff)
downloadgo-ba607240f76fce446e1104d034e444ec42e22c73.tar.xz
cmd/go: add a chmod command to script_test
Change-Id: I5d4f65553f6c368d101be59aae9440f5ec9573b7 Reviewed-on: https://go-review.googlesource.com/c/153461 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-rw-r--r--src/cmd/go/script_test.go19
-rw-r--r--src/cmd/go/testdata/script/README4
2 files changed, 23 insertions, 0 deletions
diff --git a/src/cmd/go/script_test.go b/src/cmd/go/script_test.go
index 31ddf02fb0..e180080a9d 100644
--- a/src/cmd/go/script_test.go
+++ b/src/cmd/go/script_test.go
@@ -342,6 +342,7 @@ Script:
var scriptCmds = map[string]func(*testScript, bool, []string){
"addcrlf": (*testScript).cmdAddcrlf,
"cd": (*testScript).cmdCd,
+ "chmod": (*testScript).cmdChmod,
"cmp": (*testScript).cmdCmp,
"cmpenv": (*testScript).cmdCmpenv,
"cp": (*testScript).cmdCp,
@@ -400,6 +401,24 @@ func (ts *testScript) cmdCd(neg bool, args []string) {
fmt.Fprintf(&ts.log, "%s\n", ts.cd)
}
+// chmod changes permissions for a file or directory.
+func (ts *testScript) cmdChmod(neg bool, args []string) {
+ if neg {
+ ts.fatalf("unsupported: ! chmod")
+ }
+ if len(args) < 2 {
+ ts.fatalf("usage: chmod perm paths...")
+ }
+ perm, err := strconv.ParseUint(args[0], 0, 32)
+ if err != nil || perm&uint64(os.ModePerm) != perm {
+ ts.fatalf("invalid mode: %s", args[0])
+ }
+ for _, path := range args[1:] {
+ err := os.Chmod(path, os.FileMode(perm))
+ ts.check(err)
+ }
+}
+
// cmp compares two files.
func (ts *testScript) cmdCmp(neg bool, args []string) {
if neg {
diff --git a/src/cmd/go/testdata/script/README b/src/cmd/go/testdata/script/README
index 22124b9fb8..392ff34fc2 100644
--- a/src/cmd/go/testdata/script/README
+++ b/src/cmd/go/testdata/script/README
@@ -86,6 +86,10 @@ The commands are:
- cd dir
Change to the given directory for future commands.
+- chmod perm path...
+ Change the permissions of the files or directories named by the path arguments
+ to be equal to perm. Only numerical permissions are supported.
+
- cmp file1 file2
Check that the named files have the same content.
By convention, file1 is the actual data and file2 the expected data.