Also allow a slightly different diagnostic -- the
authorJim Meyering <jim@meyering.net>
Tue, 3 Jan 2006 21:59:02 +0000 (21:59 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 3 Jan 2006 21:59:02 +0000 (21:59 +0000)
one you get when using openat-enabled fts.c and du (coming soon).

tests/chmod/no-x

index cf365c0..247b052 100755 (executable)
@@ -30,11 +30,27 @@ fail=0
 
 # This must exit nonzero.
 chmod -R o=r d >/dev/null 2>out && fail=1
+
 cat <<\EOF > exp
 chmod: `d/no-x': Permission denied
 EOF
 
-cmp out exp || fail=1
+# With native openat, du uses a different code path.
+cat <<\EOF > exp-native-openat
+chmod: cannot access `d/no-x/y': Permission denied
+chmod: fts_read failed: Permission denied
+EOF
+
+if cmp out exp >/dev/null 2>&1; then
+  :
+else
+  if cmp out exp-native-openat; then
+    :
+  else
+    fail=1
+  fi
+fi
+
 test $fail = 1 && diff out exp 2> /dev/null
 
 (exit $fail); exit $fail