mtree: Fix -f -f not considering type changes.
This only lists the changed type and not other attributes so that it matches the behavior of -C as done in r66747 for fmtree. The NetBSD -ff implementation was copied from fmtree. Reviewed by: imp MFC after: 2 weeks Relnotes: yes Differential Revision: https://reviews.freebsd.org/D21623
This commit is contained in:
parent
db7b855f0a
commit
d1a8b3b114
@ -145,7 +145,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path)
|
||||
return (1);
|
||||
}
|
||||
if (n1->type != n2->type) {
|
||||
differs = 0;
|
||||
differs = F_TYPE;
|
||||
mismatch(n1, n2, differs, path);
|
||||
return (1);
|
||||
}
|
||||
|
@ -411,6 +411,41 @@ netbsd6_nonemptydir_body()
|
||||
FLAVOR=netbsd6 nonemptydir_body
|
||||
}
|
||||
|
||||
atf_test_case mtree_specspec_type
|
||||
mtree_specspec_type_head()
|
||||
{
|
||||
atf_set "descr" "Test that spec comparisons detect type changes"
|
||||
}
|
||||
|
||||
mtree_specspec_type_body()
|
||||
{
|
||||
mkdir testdir
|
||||
|
||||
touch testdir/bar
|
||||
mtree -c -p testdir > mtree1.spec
|
||||
|
||||
if [ ! -f mtree1.spec ]; then
|
||||
atf_fail "mtree failed"
|
||||
fi
|
||||
|
||||
rm -f testdir/bar
|
||||
ln -s foo testdir/bar
|
||||
# uid change is expected to be ignored as done in -C
|
||||
chown -h operator testdir/bar
|
||||
mtree -c -p testdir > mtree2.spec
|
||||
|
||||
if [ ! -f mtree2.spec ]; then
|
||||
atf_fail "mtree failed"
|
||||
fi
|
||||
|
||||
atf_check -s ignore -o save:output \
|
||||
-x "mtree -f mtree1.spec -f mtree2.spec"
|
||||
|
||||
if ! cut -f 3 output | egrep -q "bar file" || \
|
||||
! cut -f 3 output | egrep -q "bar link"; then
|
||||
atf_fail "mtree did not detect type change"
|
||||
fi
|
||||
}
|
||||
|
||||
atf_init_test_cases()
|
||||
{
|
||||
@ -423,6 +458,7 @@ atf_init_test_cases()
|
||||
atf_add_test_case mtree_ignore
|
||||
atf_add_test_case mtree_merge
|
||||
atf_add_test_case mtree_nonemptydir
|
||||
atf_add_test_case mtree_specspec_type
|
||||
|
||||
atf_add_test_case netbsd6_create
|
||||
atf_add_test_case netbsd6_check
|
||||
|
@ -132,7 +132,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path)
|
||||
return (1);
|
||||
}
|
||||
if (n1->type != n2->type) {
|
||||
differs = 0;
|
||||
differs = F_TYPE;
|
||||
mismatch(n1, n2, differs, path);
|
||||
return (1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user