diff options
| author | Bryan C. Mills <bcmills@google.com> | 2018-12-07 17:36:55 -0500 |
|---|---|---|
| committer | Bryan C. Mills <bcmills@google.com> | 2018-12-11 16:41:35 +0000 |
| commit | ba607240f76fce446e1104d034e444ec42e22c73 (patch) | |
| tree | 2b5bf21e5ec73afd9be3330c9fc7db696f053e3b /src | |
| parent | 21da8e6022d1d148741ba3c08cdc555df500520e (diff) | |
| download | go-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>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/go/script_test.go | 19 | ||||
| -rw-r--r-- | src/cmd/go/testdata/script/README | 4 |
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. |
