| #!/bin/sh |
| |
| |
| |
|
|
| |
|
|
| |
| |
| |
| |
|
|
| |
| |
| |
| |
|
|
| |
| |
|
|
| . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src |
| print_ver_ cp mv ginstall |
|
|
| |
| touch src dest || framework_failure_ |
| cp --preserve=xattr -n src dest \ |
| || skip_ "coreutils built without xattr support" |
|
|
| |
| cleanup_() { rm -rf "$other_partition_tmpdir"; } |
| . "$abs_srcdir/tests/other-fs-tmpdir" |
| b_other="$other_partition_tmpdir/b" |
| rm -f "$b_other" || framework_failure_ |
|
|
| |
| xattr_name="user.foo" |
| xattr_value="bar" |
| xattr_pair="$xattr_name=\"$xattr_value\"" |
|
|
| |
| touch a || framework_failure_ |
| getfattr -d a >out_a || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_a && framework_failure_ |
|
|
| |
| setfattr -n "$xattr_name" -v "$xattr_value" a >out_a \ |
| || skip_ "failed to set xattr of file" |
| getfattr -d a >out_a || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_a \ |
| || skip_ "failed to set xattr of file" |
|
|
|
|
| |
| cp a b || fail=1 |
| getfattr -d b >out_b || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_b && fail=1 |
|
|
| |
| cp --preserve=xattr a b || fail=1 |
| getfattr -d b >out_b || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_b || fail=1 |
|
|
| |
| cp --preserve=all a c || fail=1 |
| getfattr -d c >out_c || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_c || fail=1 |
|
|
| |
| cp -a a d 2>err && { compare /dev/null err || fail=1; } |
| getfattr -d d >out_d || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_d || fail=1 |
|
|
| |
| chmod a-w a || framework_failure_ |
| rm -f e |
| cp --preserve=xattr a e || fail=1 |
| getfattr -d e >out_e || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_e || fail=1 |
|
|
| |
| src_perm=$(stat --format=%a a) |
| dst_perm=$(stat --format=%a e) |
| test "$dst_perm" = "$src_perm" || fail=1 |
|
|
| chmod u+w a || framework_failure_ |
|
|
| rm b || framework_failure_ |
|
|
| |
| ginstall a b || fail=1 |
| getfattr -d b >out_b || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_b && fail=1 |
|
|
| |
| |
| |
| mv a b || fail=1 |
| getfattr -d b >out_b || skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_b || cat >&2 <<EOF |
| ================================================================= |
| $0: WARNING!!! |
| rename () does not preserve extended attributes |
| ================================================================= |
| EOF |
|
|
| |
| test_mv=1 |
| touch "$b_other" || framework_failure_ |
| setfattr -n "$xattr_name" -v "$xattr_value" "$b_other" >out_a \ |
| || test_mv=0 |
| getfattr -d "$b_other" >out_b || test_mv=0 |
| grep -F "$xattr_pair" out_b || test_mv=0 |
| rm -f "$b_other" || framework_failure_ |
|
|
| if test $test_mv -eq 1; then |
| |
| mv b "$b_other" || fail=1 |
| getfattr -d "$b_other" >out_b || |
| skip_ "failed to get xattr of file" |
| grep -F "$xattr_pair" out_b || fail=1 |
| else |
| cat >&2 <<EOF |
| ================================================================= |
| $0: WARNING!!! |
| failed to set xattr of file $b_other |
| ================================================================= |
| EOF |
| fi |
|
|
| Exit $fail |
|
|