1
0
mirror of https://github.com/golang/go synced 2024-11-12 12:40:28 -07:00
go/src/os
Russ Cox 478bde3a43 io/fs: add Sub
Sub provides a convenient way to refer to a subdirectory
automatically in future operations, like Unix's chdir(2).

The CL also includes updates to fstest to check Sub implementations.

As part of updating fstest, I changed the meaning of TestFS's
expected list to introduce a special case: if you list no expected files,
that means the FS must be empty. In general it's OK not to list all
the expected files, but if you list none, that's almost certainly a
mistake - if your FS were broken and empty, you wouldn't find out.
Making no expected files mean "must be empty" makes the mistake
less likely - if your file system ever worked, then your test will keep
it working.

That change found a testing bug: embedtest was making exactly
that mistake.

Fixes #42322.

Change-Id: I63fd4aa866b30061a0e51ca9a1927e576d6ec41e
Reviewed-on: https://go-review.googlesource.com/c/go/+/274856
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2020-12-04 16:49:30 +00:00
..
exec os/exec: constrain thread usage in leaked descriptor test on illumos 2020-11-30 03:18:36 +00:00
signal all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
testdata os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
user
dir_darwin.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
dir_plan9.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
dir_unix.go os: remove unused variable in unix implementation of File.readdir 2020-11-05 16:20:01 +00:00
dir_windows.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
dir.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
dirent_aix.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
dirent_dragonfly.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
dirent_freebsd.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
dirent_js.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
dirent_linux.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
dirent_netbsd.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
dirent_openbsd.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
dirent_solaris.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
endian_big.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
endian_little.go os: add File.ReadDir method and DirEntry type 2020-10-20 00:59:20 +00:00
env_test.go
env_unix_test.go
env.go
error_errno.go
error_plan9.go
error_posix.go
error_test.go all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
error_unix_test.go all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
error_windows_test.go all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
error.go os: clarify that IsExist and friends do not use errors.Is 2020-11-11 20:26:44 +00:00
example_test.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
exec_plan9.go os: export ErrProcessDone variable in windows and plan9 2020-11-03 00:56:12 +00:00
exec_posix.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
exec_unix_test.go os: export errFinished as ErrProcessDone 2020-10-31 08:41:25 +00:00
exec_unix.go os: export ErrProcessDone variable in windows and plan9 2020-11-03 00:56:12 +00:00
exec_windows.go os: export ErrProcessDone variable in windows and plan9 2020-11-03 00:56:12 +00:00
exec.go os: export ErrProcessDone variable in windows and plan9 2020-11-03 00:56:12 +00:00
executable_darwin.go
executable_dragonfly.go os: gofmt 2020-11-12 10:22:50 +00:00
executable_freebsd.go os: gofmt 2020-11-12 10:22:50 +00:00
executable_path.go
executable_plan9.go
executable_procfs.go os: do not use procfs for os.Executable in dragonfly 2020-10-28 17:08:06 +00:00
executable_solaris.go
executable_sysctl.go os: do not use procfs for os.Executable in dragonfly 2020-10-28 17:08:06 +00:00
executable_test.go
executable_windows.go
executable.go
export_linux_test.go
export_test.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
export_unix_test.go
export_windows_test.go
fifo_test.go
file_plan9.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
file_posix.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
file_unix.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
file_windows.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
file.go io/fs: add Sub 2020-12-04 16:49:30 +00:00
getwd.go os: remove ENOTSUP special case in Getwd on darwin 2020-09-28 06:28:02 +00:00
os_test.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
os_unix_test.go
os_windows_test.go all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
path_plan9.go
path_test.go all: add GOOS=ios 2020-09-23 18:12:59 +00:00
path_unix.go
path_windows_test.go
path_windows.go
path.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
pipe2_bsd.go
pipe2_illumos.go
pipe_bsd.go
pipe_linux.go
pipe_test.go all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
proc.go
rawconn_test.go
rawconn.go
read_test.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
readfrom_linux_test.go
readfrom_linux.go
readfrom_stub.go
removeall_at.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
removeall_noat.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
removeall_test.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
stat_aix.go
stat_darwin.go
stat_dragonfly.go
stat_freebsd.go
stat_js.go
stat_linux.go
stat_netbsd.go
stat_openbsd.go
stat_plan9.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
stat_solaris.go
stat_test.go all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
stat_unix.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
stat_windows.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
stat.go
sticky_bsd.go
sticky_notbsd.go
str.go
sys_aix.go
sys_bsd.go
sys_js.go
sys_linux.go
sys_plan9.go
sys_solaris.go
sys_unix.go
sys_windows.go
sys.go
tempfile_test.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
tempfile.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
timeout_test.go all: update references to symbols moved from io/ioutil to io 2020-10-20 18:41:18 +00:00
types_plan9.go
types_unix.go
types_windows.go os: use keyed literals for PathError 2020-10-20 00:59:22 +00:00
types.go io/fs: move FileInfo, FileMode, PathError, ErrInvalid, ... from os to io/fs 2020-10-20 02:32:41 +00:00
wait_unimp.go
wait_wait6.go
wait_waitid.go