diff options
author | gjb <gjb@FreeBSD.org> | 2017-08-21 17:20:31 +0000 |
---|---|---|
committer | gjb <gjb@FreeBSD.org> | 2017-08-21 17:20:31 +0000 |
commit | ca3e579275003137158a9777898948b09f7a1cf8 (patch) | |
tree | bed1bd71c293380579cb760268838966292dfa33 | |
parent | 7f25864e738474a6a3382736dce5600f592d6ab9 (diff) | |
download | FreeBSD-src-ca3e579275003137158a9777898948b09f7a1cf8.zip FreeBSD-src-ca3e579275003137158a9777898948b09f7a1cf8.tar.gz |
MFC r321949, r321950, r322101:
r321949 (ngie):
Add expected failures for ZFS
- :f_flag fails on ZFS because UF_IMMUTABLE isn't supported.
- :v_flag fails on ZFS because the mode for foo is [always] updated
unnecessarily.
get_filesystem(..) (supporting function that was added to the test
script) is based on equivalent logic in
usr.bin/extattr/tests/extattr_test.sh .
r321950 (ngie):
Always use first parameter passed to get_filesystem(..) instead of
discarding it and using `.` instead.
r322101 (ngie):
Don't check result of chflags in f_flag_cleanup()
This will prevent false positives from occurring if the test is run
on ZFS since ZFS doesn't support fflags throbbing like UFS.
PR: 221188, 221189
Approved by: re (marius)
Sponsored by: The FreeBSD Foundation
-rwxr-xr-x | bin/chmod/tests/chmod_test.sh | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/bin/chmod/tests/chmod_test.sh b/bin/chmod/tests/chmod_test.sh index 4a6a6a3..8cd7663 100755 --- a/bin/chmod/tests/chmod_test.sh +++ b/bin/chmod/tests/chmod_test.sh @@ -25,6 +25,13 @@ # # $FreeBSD$ +get_filesystem() +{ + local mountpoint=$1 + + df -T $mountpoint | tail -n 1 | cut -wf 2 +} + atf_test_case RH_flag RH_flag_head() { @@ -94,6 +101,11 @@ f_flag_body() { atf_check truncate -s 0 foo bar atf_check chmod 0750 foo bar + case "$(get_filesystem .)" in + zfs) + atf_expect_fail "ZFS doesn't support UF_IMMUTABLE; returns EPERM - bug 221189" + ;; + esac atf_check chflags uchg foo atf_check -e not-empty -s not-exit:0 chmod 0700 foo bar atf_check -o inline:'100750\n100700\n' stat -f '%p' foo bar @@ -103,7 +115,7 @@ f_flag_body() f_flag_cleanup() { - atf_check chflags 0 foo + chflags 0 foo || : } atf_test_case h_flag @@ -140,6 +152,11 @@ v_flag_body() atf_check truncate -s 0 foo bar atf_check chmod 0600 foo atf_check chmod 0750 bar + case "$(get_filesystem .)" in + zfs) + atf_expect_fail "ZFS updates mode for foo unnecessarily - bug 221188" + ;; + esac atf_check -o 'inline:bar\n' chmod -v 0600 foo bar atf_check chmod -v 0600 foo bar for f in foo bar; do |