summaryrefslogtreecommitdiffhomepage
path: root/test/util/fs_util.cc
diff options
context:
space:
mode:
authorJamie Liu <jamieliu@google.com>2020-07-07 19:44:03 -0700
committergVisor bot <gvisor-bot@google.com>2020-07-07 19:45:16 -0700
commit5e05950c1c520724e2e03963850868befb95efeb (patch)
tree5f8e3883b757489d4dceeaecad220625c6192fb6 /test/util/fs_util.cc
parent76c7bc51b7b02c4ba83c0a064c3629bb5ee91340 (diff)
Deflake exec test.
- Only use MAXSYMLINKS/2+1 symlinks for each of the interpreter and script paths in SymlinkLimitRefreshedForInterpreter to tolerate cases where the original paths (/tmp, /bin, or /bin/echo) themselves contain symlinks. - Ensure that UnshareFiles performs execve immediately after clone(CLONE_VFORK) (no heap allocation for ExecveArray/RunfilesPath). - Use lstat() rather than stat() for the existence check in fs_util's Exists; the latter will fail if the symlink target does not exist, even if the symlink does. PiperOrigin-RevId: 320110156
Diffstat (limited to 'test/util/fs_util.cc')
-rw-r--r--test/util/fs_util.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/util/fs_util.cc b/test/util/fs_util.cc
index 052781445..5418948fe 100644
--- a/test/util/fs_util.cc
+++ b/test/util/fs_util.cc
@@ -125,12 +125,12 @@ PosixErrorOr<struct stat> Fstat(int fd) {
PosixErrorOr<bool> Exists(absl::string_view path) {
struct stat stat_buf;
- int res = stat(std::string(path).c_str(), &stat_buf);
+ int res = lstat(std::string(path).c_str(), &stat_buf);
if (res < 0) {
if (errno == ENOENT) {
return false;
}
- return PosixError(errno, absl::StrCat("stat ", path));
+ return PosixError(errno, absl::StrCat("lstat ", path));
}
return true;
}