Fix usr.bin.truncate.truncate_test.bad_truncate with ZFS /tmp.

The bad_truncate test sets the uimmutable flag to produce an error in
truncate, but that flag isn't supported by ZFS.  If /tmp is on a ZFS
filesystem, the test will fail.  Change it to use readonly permissions and
an unpriveleged user instead.

Reviewed by:	jilles
MFC after:	1 week
Sponsored by:	Spectra Logic Corp
Differential Revision:	https://reviews.freebsd.org/D4862
This commit is contained in:
asomers 2016-01-19 22:07:39 +00:00
parent 897a9bc5d3
commit 41650356dd

View File

@ -173,26 +173,23 @@ bad_refer_body()
[ ! -e afile ] || atf_fail "afile should not exist"
}
atf_test_case bad_truncate cleanup
atf_test_case bad_truncate
bad_truncate_head()
{
atf_set "descr" "Verifies that truncate reports an error during" \
"truncation"
atf_set "require.user" "unprivileged"
}
bad_truncate_body()
{
create_stderr_file "truncate: exists.txt: Operation not permitted"
create_stderr_file "truncate: exists.txt: Permission denied"
# Trying to get the ftruncate() call to return -1.
> exists.txt
atf_check chflags uimmutable exists.txt
atf_check chmod 444 exists.txt
atf_check -s not-exit:0 -e file:stderr.txt truncate -s1 exists.txt
}
bad_truncate_cleanup()
{
chflags 0 exists.txt
}
atf_test_case new_absolute_grow
new_absolute_grow_head()