]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: add a chmod command to script_test
authorBryan C. Mills <bcmills@google.com>
Fri, 7 Dec 2018 22:36:55 +0000 (17:36 -0500)
committerBryan C. Mills <bcmills@google.com>
Tue, 11 Dec 2018 16:41:35 +0000 (16:41 +0000)
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>

src/cmd/go/script_test.go
src/cmd/go/testdata/script/README

index 31ddf02fb0a00b93138b51fdacf886be6d5a8b43..e180080a9da0fbb3059f1e02ce96d00f93f605dc 100644 (file)
@@ -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 {
index 22124b9fb89c663d569b85043b8510cb409f409d..392ff34fc2d401586458c40457fb3c503804ecb8 100644 (file)
@@ -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.