Commit 4b888f2
committed
runtimetest: Use ModeType as the mask in the symlink check
We've been using ModeSymlink as the mask since the check landed in
da25004 (runtimetest: add linux default symbolic link validation,
2016-11-30, #284). POSIX provides S_IS*(m) macros to portably
interpret the mode type, but does not define values for each type [2].
Alban pointed out that st_mode is not a bitfield on Linux [1]. For
example, Linux defines [3]:
S_IFBLK 060000
S_IFDIR 040000
S_IFCHR 020000
So 'm&S_IFCHR == S_IFCHR', for example, would succeed for both
character and block devices. Go translates the system values to a
platform-agnostic bitfield [4], so the previous approach works on Go.
But it may be confusing for people used to the native non-bitfield
mode, so this commit moves us to an approach that does not rely on
Go's using a bitfield.
[1]: #308 (comment)
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/stat.h?h=v4.16#n9
[4]: https://github.com/golang/go/blob/b0d437f866eb8987cde7e6550cacd77876f36d4b/src/os/types.go#L45
Signed-off-by: W. Trevor King <wking@tremily.us>1 parent 732d438 commit 4b888f2
1 file changed
+1
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
782 | 782 | | |
783 | 783 | | |
784 | 784 | | |
785 | | - | |
| 785 | + | |
786 | 786 | | |
787 | 787 | | |
788 | 788 | | |
| |||
0 commit comments