Merge pull request #1071 from gaul/macos/xattr

Run xattr tests on macOS
This commit is contained in:
Takeshi Nakatani 2019-07-07 17:37:00 +09:00 committed by GitHub
commit 5195fa93fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 24 deletions

View File

@ -396,27 +396,24 @@ function test_symlink {
} }
function test_extended_attributes { function test_extended_attributes {
command -v setfattr >/dev/null 2>&1 || \
{ echo "Skipping extended attribute tests" ; return; }
describe "Testing extended attributes ..." describe "Testing extended attributes ..."
rm -f $TEST_TEXT_FILE rm -f $TEST_TEXT_FILE
touch $TEST_TEXT_FILE touch $TEST_TEXT_FILE
# set value # set value
setfattr -n key1 -v value1 $TEST_TEXT_FILE set_xattr key1 value1 $TEST_TEXT_FILE
getfattr -n key1 --only-values $TEST_TEXT_FILE | grep -q '^value1$' get_xattr key1 $TEST_TEXT_FILE | grep -q '^value1$'
# append value # append value
setfattr -n key2 -v value2 $TEST_TEXT_FILE set_xattr key2 value2 $TEST_TEXT_FILE
getfattr -n key1 --only-values $TEST_TEXT_FILE | grep -q '^value1$' get_xattr key1 $TEST_TEXT_FILE | grep -q '^value1$'
getfattr -n key2 --only-values $TEST_TEXT_FILE | grep -q '^value2$' get_xattr key2 $TEST_TEXT_FILE | grep -q '^value2$'
# remove value # remove value
setfattr -x key1 $TEST_TEXT_FILE del_xattr key1 $TEST_TEXT_FILE
! getfattr -n key1 --only-values $TEST_TEXT_FILE ! get_xattr key1 $TEST_TEXT_FILE
getfattr -n key2 --only-values $TEST_TEXT_FILE | grep -q '^value2$' get_xattr key2 $TEST_TEXT_FILE | grep -q '^value2$'
} }
function test_mtime_file { function test_mtime_file {
@ -477,20 +474,14 @@ function test_update_time() {
return 1 return 1
fi fi
if command -v setfattr >/dev/null 2>&1; then sleep 2
sleep 2 set_xattr key value $TEST_TEXT_FILE
setfattr -n key -v value $TEST_TEXT_FILE
ctime4=`get_ctime $TEST_TEXT_FILE` ctime4=`get_ctime $TEST_TEXT_FILE`
mtime4=`get_mtime $TEST_TEXT_FILE` mtime4=`get_mtime $TEST_TEXT_FILE`
if [ $ctime3 -eq $ctime4 -o $mtime3 -ne $mtime4 ]; then if [ $ctime3 -eq $ctime4 -o $mtime3 -ne $mtime4 ]; then
echo "Expected updated ctime: $ctime3 != $ctime4 and same mtime: $mtime3 == $mtime4" echo "Expected updated ctime: $ctime3 != $ctime4 and same mtime: $mtime3 == $mtime4"
return 1 return 1
fi
else
echo "Skipping extended attribute test"
ctime4=`get_ctime $TEST_TEXT_FILE`
mtime4=`get_mtime $TEST_TEXT_FILE`
fi fi
sleep 2 sleep 2

View File

@ -21,6 +21,30 @@ else
export SED_BUFFER_FLAG="--unbuffered" export SED_BUFFER_FLAG="--unbuffered"
fi fi
function get_xattr() {
if [ `uname` = "Darwin" ]; then
xattr -p "$1" "$2"
else
getfattr -n "$1" --only-values "$2"
fi
}
function set_xattr() {
if [ `uname` = "Darwin" ]; then
xattr -w "$1" "$2" "$3"
else
setfattr -n "$1" -v "$2" "$3"
fi
}
function del_xattr() {
if [ `uname` = "Darwin" ]; then
xattr -d "$1" "$2"
else
setfattr -x "$1" "$2"
fi
}
function mk_test_file { function mk_test_file {
if [ $# == 0 ]; then if [ $# == 0 ]; then
TEXT=$TEST_TEXT TEXT=$TEST_TEXT