mirror of
https://github.com/s3fs-fuse/s3fs-fuse.git
synced 2024-12-22 16:58:55 +00:00
Refactor tests into individual functions
This commit is contained in:
parent
2e344bb48f
commit
17d223b542
@ -61,6 +61,308 @@ function rm_test_dir {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_append_file {
|
||||||
|
echo "Testing append to file ..."
|
||||||
|
|
||||||
|
# Write a small test file
|
||||||
|
for x in `seq 1 $TEST_TEXT_FILE_LENGTH`
|
||||||
|
do
|
||||||
|
echo "echo ${TEST_TEXT} to ${TEST_TEXT_FILE}"
|
||||||
|
echo $TEST_TEXT >> $TEST_TEXT_FILE
|
||||||
|
done
|
||||||
|
|
||||||
|
# Verify contents of file
|
||||||
|
echo "Verifying length of test file"
|
||||||
|
FILE_LENGTH=`wc -l $TEST_TEXT_FILE | awk '{print $1}'`
|
||||||
|
if [ "$FILE_LENGTH" -ne "$TEST_TEXT_FILE_LENGTH" ]
|
||||||
|
then
|
||||||
|
echo "error: expected $TEST_TEXT_FILE_LENGTH , got $FILE_LENGTH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm_test_file
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_mv_file {
|
||||||
|
echo "Testing mv file function ..."
|
||||||
|
|
||||||
|
# if the rename file exists, delete it
|
||||||
|
if [ -e $ALT_TEST_TEXT_FILE ]
|
||||||
|
then
|
||||||
|
rm $ALT_TEST_TEXT_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e $ALT_TEST_TEXT_FILE ]
|
||||||
|
then
|
||||||
|
echo "Could not delete file ${ALT_TEST_TEXT_FILE}, it still exists"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create the test file again
|
||||||
|
mk_test_file
|
||||||
|
|
||||||
|
#rename the test file
|
||||||
|
mv $TEST_TEXT_FILE $ALT_TEST_TEXT_FILE
|
||||||
|
if [ ! -e $ALT_TEST_TEXT_FILE ]
|
||||||
|
then
|
||||||
|
echo "Could not move file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check the contents of the alt file
|
||||||
|
ALT_TEXT_LENGTH=`echo $TEST_TEXT | wc -c | awk '{print $1}'`
|
||||||
|
ALT_FILE_LENGTH=`wc -c $ALT_TEST_TEXT_FILE | awk '{print $1}'`
|
||||||
|
if [ "$ALT_FILE_LENGTH" -ne "$ALT_TEXT_LENGTH" ]
|
||||||
|
then
|
||||||
|
echo "moved file length is not as expected expected: $ALT_TEXT_LENGTH got: $ALT_FILE_LENGTH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
rm_test_file $ALT_TEST_TEXT_FILE
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_mv_directory {
|
||||||
|
echo "Testing mv directory function ..."
|
||||||
|
if [ -e $TEST_DIR ]; then
|
||||||
|
echo "Unexpected, this file/directory exists: ${TEST_DIR}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mk_test_dir
|
||||||
|
|
||||||
|
mv ${TEST_DIR} ${TEST_DIR}_rename
|
||||||
|
|
||||||
|
if [ ! -d "${TEST_DIR}_rename" ]; then
|
||||||
|
echo "Directory ${TEST_DIR} was not renamed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir ${TEST_DIR}_rename
|
||||||
|
if [ -e "${TEST_DIR}_rename" ]; then
|
||||||
|
echo "Could not remove the test directory, it still exists: ${TEST_DIR}_rename"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_redirects {
|
||||||
|
echo "Testing redirects ..."
|
||||||
|
|
||||||
|
mk_test_file ABCDEF
|
||||||
|
|
||||||
|
CONTENT=`cat $TEST_TEXT_FILE`
|
||||||
|
|
||||||
|
if [ ${CONTENT} != "ABCDEF" ]; then
|
||||||
|
echo "CONTENT read is unexpected, got ${CONTENT}, expected ABCDEF"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo XYZ > $TEST_TEXT_FILE
|
||||||
|
|
||||||
|
CONTENT=`cat $TEST_TEXT_FILE`
|
||||||
|
|
||||||
|
if [ ${CONTENT} != "XYZ" ]; then
|
||||||
|
echo "CONTENT read is unexpected, got ${CONTENT}, expected XYZ"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 123456 >> $TEST_TEXT_FILE
|
||||||
|
|
||||||
|
LINE1=`sed -n '1,1p' $TEST_TEXT_FILE`
|
||||||
|
LINE2=`sed -n '2,2p' $TEST_TEXT_FILE`
|
||||||
|
|
||||||
|
if [ ${LINE1} != "XYZ" ]; then
|
||||||
|
echo "LINE1 was not as expected, got ${LINE1}, expected XYZ"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${LINE2} != "123456" ]; then
|
||||||
|
echo "LINE2 was not as expected, got ${LINE2}, expected 123456"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
rm_test_file
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_mkdir_rmdir {
|
||||||
|
echo "Testing creation/removal of a directory"
|
||||||
|
|
||||||
|
if [ -e $TEST_DIR ]; then
|
||||||
|
echo "Unexpected, this file/directory exists: ${TEST_DIR}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mk_test_dir
|
||||||
|
rm_test_dir
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_chmod {
|
||||||
|
echo "Testing chmod file function ..."
|
||||||
|
|
||||||
|
# create the test file again
|
||||||
|
mk_test_file
|
||||||
|
|
||||||
|
ORIGINAL_PERMISSIONS=$(stat --format=%a $TEST_TEXT_FILE)
|
||||||
|
|
||||||
|
chmod 777 $TEST_TEXT_FILE;
|
||||||
|
|
||||||
|
# if they're the same, we have a problem.
|
||||||
|
if [ $(stat --format=%a $TEST_TEXT_FILE) == $ORIGINAL_PERMISSIONS ]
|
||||||
|
then
|
||||||
|
echo "Could not modify $TEST_TEXT_FILE permissions"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
rm_test_file
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_chown {
|
||||||
|
echo "Testing chown file function ..."
|
||||||
|
|
||||||
|
# create the test file again
|
||||||
|
mk_test_file
|
||||||
|
|
||||||
|
ORIGINAL_PERMISSIONS=$(stat --format=%u:%g $TEST_TEXT_FILE)
|
||||||
|
|
||||||
|
chown 1000:1000 $TEST_TEXT_FILE;
|
||||||
|
|
||||||
|
# if they're the same, we have a problem.
|
||||||
|
if [ $(stat --format=%a $TEST_TEXT_FILE) == $ORIGINAL_PERMISSIONS ]
|
||||||
|
then
|
||||||
|
echo "Could not modify $TEST_TEXT_FILE ownership"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
rm_test_file
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_list {
|
||||||
|
echo "Testing list"
|
||||||
|
mk_test_file
|
||||||
|
mk_test_dir
|
||||||
|
|
||||||
|
file_cnt=$(ls -1 | wc -l)
|
||||||
|
if [ $file_cnt != 2 ]; then
|
||||||
|
echo "Expected 2 file but got $file_cnt"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm_test_file
|
||||||
|
rm_test_dir
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_remove_nonempty_directory {
|
||||||
|
echo "Testing removing a non-empty directory"
|
||||||
|
mk_test_dir
|
||||||
|
touch "${TEST_DIR}/file"
|
||||||
|
rmdir "${TEST_DIR}" 2>&1 | grep -q "Directory not empty"
|
||||||
|
rm "${TEST_DIR}/file"
|
||||||
|
rm_test_dir
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_rename_before_close {
|
||||||
|
echo "Testing rename before close ..."
|
||||||
|
(
|
||||||
|
echo foo
|
||||||
|
mv $TEST_TEXT_FILE ${TEST_TEXT_FILE}.new
|
||||||
|
) > $TEST_TEXT_FILE
|
||||||
|
|
||||||
|
if ! cmp <(echo foo) ${TEST_TEXT_FILE}.new; then
|
||||||
|
echo "rename before close failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm_test_file ${TEST_TEXT_FILE}.new
|
||||||
|
rm -f ${TEST_TEXT_FILE}
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_multipart_upload {
|
||||||
|
echo "Testing multi-part upload ..."
|
||||||
|
dd if=/dev/urandom of="/tmp/${BIG_FILE}" bs=$BIG_FILE_LENGTH count=1
|
||||||
|
dd if="/tmp/${BIG_FILE}" of="${BIG_FILE}" bs=$BIG_FILE_LENGTH count=1
|
||||||
|
|
||||||
|
# Verify contents of file
|
||||||
|
echo "Comparing test file"
|
||||||
|
if ! cmp "/tmp/${BIG_FILE}" "${BIG_FILE}"
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "/tmp/${BIG_FILE}"
|
||||||
|
rm_test_file "${BIG_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_multipart_copy {
|
||||||
|
echo "Testing multi-part copy ..."
|
||||||
|
dd if=/dev/urandom of="/tmp/${BIG_FILE}" bs=$BIG_FILE_LENGTH count=1
|
||||||
|
dd if="/tmp/${BIG_FILE}" of="${BIG_FILE}" bs=$BIG_FILE_LENGTH count=1
|
||||||
|
mv "${BIG_FILE}" "${BIG_FILE}-copy"
|
||||||
|
|
||||||
|
# Verify contents of file
|
||||||
|
echo "Comparing test file"
|
||||||
|
if ! cmp "/tmp/${BIG_FILE}" "${BIG_FILE}-copy"
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "/tmp/${BIG_FILE}"
|
||||||
|
rm_test_file "${BIG_FILE}-copy"
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_special_characters {
|
||||||
|
echo "Testing special characters ..."
|
||||||
|
|
||||||
|
ls 'special' 2>&1 | grep -q 'No such file or directory'
|
||||||
|
ls 'special?' 2>&1 | grep -q 'No such file or directory'
|
||||||
|
ls 'special*' 2>&1 | grep -q 'No such file or directory'
|
||||||
|
ls 'special~' 2>&1 | grep -q 'No such file or directory'
|
||||||
|
ls 'specialµ' 2>&1 | grep -q 'No such file or directory'
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_extended_attributes {
|
||||||
|
echo "Testing extended attributes ..."
|
||||||
|
|
||||||
|
rm -f $TEST_TEXT_FILE
|
||||||
|
touch $TEST_TEXT_FILE
|
||||||
|
|
||||||
|
# set value
|
||||||
|
setfattr -n key1 -v value1 $TEST_TEXT_FILE
|
||||||
|
getfattr -n key1 --only-values $TEST_TEXT_FILE | grep -q '^value1$'
|
||||||
|
|
||||||
|
# append value
|
||||||
|
setfattr -n key2 -v value2 $TEST_TEXT_FILE
|
||||||
|
getfattr -n key1 --only-values $TEST_TEXT_FILE | grep -q '^value1$'
|
||||||
|
getfattr -n key2 --only-values $TEST_TEXT_FILE | grep -q '^value2$'
|
||||||
|
|
||||||
|
# remove value
|
||||||
|
setfattr -x key1 $TEST_TEXT_FILE
|
||||||
|
! getfattr -n key1 --only-values $TEST_TEXT_FILE
|
||||||
|
getfattr -n key2 --only-values $TEST_TEXT_FILE | grep -q '^value2$'
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_all_tests {
|
||||||
|
test_append_file
|
||||||
|
test_mv_file
|
||||||
|
test_mv_directory
|
||||||
|
test_redirects
|
||||||
|
test_mkdir_rmdir
|
||||||
|
test_chmod
|
||||||
|
test_chown
|
||||||
|
test_list
|
||||||
|
test_remove_nonempty_directory
|
||||||
|
# TODO: broken: https://github.com/s3fs-fuse/s3fs-fuse/issues/145
|
||||||
|
#test_rename_before_close
|
||||||
|
test_multipart_upload
|
||||||
|
# TODO: test disabled until S3Proxy 1.5.0 is released
|
||||||
|
#test_multipart_copy
|
||||||
|
test_special_characters
|
||||||
|
test_extended_attributes
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mount the bucket
|
||||||
CUR_DIR=`pwd`
|
CUR_DIR=`pwd`
|
||||||
TEST_BUCKET_MOUNT_POINT_1=$1
|
TEST_BUCKET_MOUNT_POINT_1=$1
|
||||||
if [ "$TEST_BUCKET_MOUNT_POINT_1" == "" ]; then
|
if [ "$TEST_BUCKET_MOUNT_POINT_1" == "" ]; then
|
||||||
@ -74,308 +376,7 @@ then
|
|||||||
rm -f $TEST_TEXT_FILE
|
rm -f $TEST_TEXT_FILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Write a small test file
|
run_all_tests
|
||||||
for x in `seq 1 $TEST_TEXT_FILE_LENGTH`
|
|
||||||
do
|
|
||||||
echo "echo ${TEST_TEXT} to ${TEST_TEXT_FILE}"
|
|
||||||
echo $TEST_TEXT >> $TEST_TEXT_FILE
|
|
||||||
done
|
|
||||||
|
|
||||||
# Verify contents of file
|
|
||||||
echo "Verifying length of test file"
|
|
||||||
FILE_LENGTH=`wc -l $TEST_TEXT_FILE | awk '{print $1}'`
|
|
||||||
if [ "$FILE_LENGTH" -ne "$TEST_TEXT_FILE_LENGTH" ]
|
|
||||||
then
|
|
||||||
echo "error: expected $TEST_TEXT_FILE_LENGTH , got $FILE_LENGTH"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm_test_file
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Rename test (individual file)
|
|
||||||
##########################################################
|
|
||||||
echo "Testing mv file function ..."
|
|
||||||
|
|
||||||
# if the rename file exists, delete it
|
|
||||||
if [ -e $ALT_TEST_TEXT_FILE ]
|
|
||||||
then
|
|
||||||
rm $ALT_TEST_TEXT_FILE
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e $ALT_TEST_TEXT_FILE ]
|
|
||||||
then
|
|
||||||
echo "Could not delete file ${ALT_TEST_TEXT_FILE}, it still exists"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# create the test file again
|
|
||||||
mk_test_file
|
|
||||||
|
|
||||||
#rename the test file
|
|
||||||
mv $TEST_TEXT_FILE $ALT_TEST_TEXT_FILE
|
|
||||||
if [ ! -e $ALT_TEST_TEXT_FILE ]
|
|
||||||
then
|
|
||||||
echo "Could not move file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check the contents of the alt file
|
|
||||||
ALT_TEXT_LENGTH=`echo $TEST_TEXT | wc -c | awk '{print $1}'`
|
|
||||||
ALT_FILE_LENGTH=`wc -c $ALT_TEST_TEXT_FILE | awk '{print $1}'`
|
|
||||||
if [ "$ALT_FILE_LENGTH" -ne "$ALT_TEXT_LENGTH" ]
|
|
||||||
then
|
|
||||||
echo "moved file length is not as expected expected: $ALT_TEXT_LENGTH got: $ALT_FILE_LENGTH"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# clean up
|
|
||||||
rm_test_file $ALT_TEST_TEXT_FILE
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Rename test (individual directory)
|
|
||||||
##########################################################
|
|
||||||
echo "Testing mv directory function ..."
|
|
||||||
if [ -e $TEST_DIR ]; then
|
|
||||||
echo "Unexpected, this file/directory exists: ${TEST_DIR}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mk_test_dir
|
|
||||||
|
|
||||||
mv ${TEST_DIR} ${TEST_DIR}_rename
|
|
||||||
|
|
||||||
if [ ! -d "${TEST_DIR}_rename" ]; then
|
|
||||||
echo "Directory ${TEST_DIR} was not renamed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rmdir ${TEST_DIR}_rename
|
|
||||||
if [ -e "${TEST_DIR}_rename" ]; then
|
|
||||||
echo "Could not remove the test directory, it still exists: ${TEST_DIR}_rename"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
###################################################################
|
|
||||||
# test redirects > and >>
|
|
||||||
###################################################################
|
|
||||||
echo "Testing redirects ..."
|
|
||||||
|
|
||||||
mk_test_file ABCDEF
|
|
||||||
|
|
||||||
CONTENT=`cat $TEST_TEXT_FILE`
|
|
||||||
|
|
||||||
if [ ${CONTENT} != "ABCDEF" ]; then
|
|
||||||
echo "CONTENT read is unexpected, got ${CONTENT}, expected ABCDEF"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo XYZ > $TEST_TEXT_FILE
|
|
||||||
|
|
||||||
CONTENT=`cat $TEST_TEXT_FILE`
|
|
||||||
|
|
||||||
if [ ${CONTENT} != "XYZ" ]; then
|
|
||||||
echo "CONTENT read is unexpected, got ${CONTENT}, expected XYZ"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 123456 >> $TEST_TEXT_FILE
|
|
||||||
|
|
||||||
LINE1=`sed -n '1,1p' $TEST_TEXT_FILE`
|
|
||||||
LINE2=`sed -n '2,2p' $TEST_TEXT_FILE`
|
|
||||||
|
|
||||||
if [ ${LINE1} != "XYZ" ]; then
|
|
||||||
echo "LINE1 was not as expected, got ${LINE1}, expected XYZ"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${LINE2} != "123456" ]; then
|
|
||||||
echo "LINE2 was not as expected, got ${LINE2}, expected 123456"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# clean up
|
|
||||||
rm_test_file
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
# Simple directory test mkdir/rmdir
|
|
||||||
#####################################################################
|
|
||||||
echo "Testing creation/removal of a directory"
|
|
||||||
|
|
||||||
if [ -e $TEST_DIR ]; then
|
|
||||||
echo "Unexpected, this file/directory exists: ${TEST_DIR}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mk_test_dir
|
|
||||||
rm_test_dir
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# File permissions test (individual file)
|
|
||||||
##########################################################
|
|
||||||
echo "Testing chmod file function ..."
|
|
||||||
|
|
||||||
# create the test file again
|
|
||||||
mk_test_file
|
|
||||||
|
|
||||||
ORIGINAL_PERMISSIONS=$(stat --format=%a $TEST_TEXT_FILE)
|
|
||||||
|
|
||||||
chmod 777 $TEST_TEXT_FILE;
|
|
||||||
|
|
||||||
# if they're the same, we have a problem.
|
|
||||||
if [ $(stat --format=%a $TEST_TEXT_FILE) == $ORIGINAL_PERMISSIONS ]
|
|
||||||
then
|
|
||||||
echo "Could not modify $TEST_TEXT_FILE permissions"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# clean up
|
|
||||||
rm_test_file
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# File permissions test (individual file)
|
|
||||||
##########################################################
|
|
||||||
echo "Testing chown file function ..."
|
|
||||||
|
|
||||||
# create the test file again
|
|
||||||
mk_test_file
|
|
||||||
|
|
||||||
ORIGINAL_PERMISSIONS=$(stat --format=%u:%g $TEST_TEXT_FILE)
|
|
||||||
|
|
||||||
chown 1000:1000 $TEST_TEXT_FILE;
|
|
||||||
|
|
||||||
# if they're the same, we have a problem.
|
|
||||||
if [ $(stat --format=%a $TEST_TEXT_FILE) == $ORIGINAL_PERMISSIONS ]
|
|
||||||
then
|
|
||||||
echo "Could not modify $TEST_TEXT_FILE ownership"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# clean up
|
|
||||||
rm_test_file
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Testing list
|
|
||||||
##########################################################
|
|
||||||
echo "Testing list"
|
|
||||||
mk_test_file
|
|
||||||
mk_test_dir
|
|
||||||
|
|
||||||
file_cnt=$(ls -1 | wc -l)
|
|
||||||
if [ $file_cnt != 2 ]; then
|
|
||||||
echo "Expected 2 file but got $file_cnt"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm_test_file
|
|
||||||
rm_test_dir
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Testing removing a non-empty directory
|
|
||||||
##########################################################
|
|
||||||
echo "Testing removing a non-empty directory"
|
|
||||||
mk_test_dir
|
|
||||||
touch "${TEST_DIR}/file"
|
|
||||||
rmdir "${TEST_DIR}" 2>&1 | grep -q "Directory not empty"
|
|
||||||
rm "${TEST_DIR}/file"
|
|
||||||
rm_test_dir
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Testing rename before close
|
|
||||||
##########################################################
|
|
||||||
if false; then
|
|
||||||
echo "Testing rename before close ..."
|
|
||||||
(
|
|
||||||
echo foo
|
|
||||||
mv $TEST_TEXT_FILE ${TEST_TEXT_FILE}.new
|
|
||||||
) > $TEST_TEXT_FILE
|
|
||||||
|
|
||||||
if ! cmp <(echo foo) ${TEST_TEXT_FILE}.new; then
|
|
||||||
echo "rename before close failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm_test_file ${TEST_TEXT_FILE}.new
|
|
||||||
rm -f ${TEST_TEXT_FILE}
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Testing multi-part upload
|
|
||||||
##########################################################
|
|
||||||
echo "Testing multi-part upload ..."
|
|
||||||
dd if=/dev/urandom of="/tmp/${BIG_FILE}" bs=$BIG_FILE_LENGTH count=1
|
|
||||||
dd if="/tmp/${BIG_FILE}" of="${BIG_FILE}" bs=$BIG_FILE_LENGTH count=1
|
|
||||||
|
|
||||||
# Verify contents of file
|
|
||||||
echo "Comparing test file"
|
|
||||||
if ! cmp "/tmp/${BIG_FILE}" "${BIG_FILE}"
|
|
||||||
then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f "/tmp/${BIG_FILE}"
|
|
||||||
rm_test_file "${BIG_FILE}"
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Testing multi-part copy
|
|
||||||
##########################################################
|
|
||||||
# TODO: test disabled until S3Proxy 1.5.0 is released
|
|
||||||
if false
|
|
||||||
then
|
|
||||||
|
|
||||||
echo "Testing multi-part copy ..."
|
|
||||||
dd if=/dev/urandom of="/tmp/${BIG_FILE}" bs=$BIG_FILE_LENGTH count=1
|
|
||||||
dd if="/tmp/${BIG_FILE}" of="${BIG_FILE}" bs=$BIG_FILE_LENGTH count=1
|
|
||||||
mv "${BIG_FILE}" "${BIG_FILE}-copy"
|
|
||||||
|
|
||||||
# Verify contents of file
|
|
||||||
echo "Comparing test file"
|
|
||||||
if ! cmp "/tmp/${BIG_FILE}" "${BIG_FILE}-copy"
|
|
||||||
then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f "/tmp/${BIG_FILE}"
|
|
||||||
rm_test_file "${BIG_FILE}-copy"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Testing special characters
|
|
||||||
##########################################################
|
|
||||||
echo "Testing special characters ..."
|
|
||||||
|
|
||||||
ls 'special' 2>&1 | grep -q 'No such file or directory'
|
|
||||||
ls 'special?' 2>&1 | grep -q 'No such file or directory'
|
|
||||||
ls 'special*' 2>&1 | grep -q 'No such file or directory'
|
|
||||||
ls 'special~' 2>&1 | grep -q 'No such file or directory'
|
|
||||||
ls 'specialµ' 2>&1 | grep -q 'No such file or directory'
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# Testing extended attributes
|
|
||||||
##########################################################
|
|
||||||
|
|
||||||
rm -f $TEST_TEXT_FILE
|
|
||||||
touch $TEST_TEXT_FILE
|
|
||||||
|
|
||||||
# set value
|
|
||||||
setfattr -n key1 -v value1 $TEST_TEXT_FILE
|
|
||||||
getfattr -n key1 --only-values $TEST_TEXT_FILE | grep -q '^value1$'
|
|
||||||
|
|
||||||
# append value
|
|
||||||
setfattr -n key2 -v value2 $TEST_TEXT_FILE
|
|
||||||
getfattr -n key1 --only-values $TEST_TEXT_FILE | grep -q '^value1$'
|
|
||||||
getfattr -n key2 --only-values $TEST_TEXT_FILE | grep -q '^value2$'
|
|
||||||
|
|
||||||
# remove value
|
|
||||||
setfattr -x key1 $TEST_TEXT_FILE
|
|
||||||
! getfattr -n key1 --only-values $TEST_TEXT_FILE
|
|
||||||
getfattr -n key2 --only-values $TEST_TEXT_FILE | grep -q '^value2$'
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
# Tests are finished
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
# Unmount the bucket
|
# Unmount the bucket
|
||||||
cd $CUR_DIR
|
cd $CUR_DIR
|
||||||
|
Loading…
Reference in New Issue
Block a user