Added failed deletion rerun test

pull/84/head
deajan 8 years ago
parent 317791da5a
commit 290fbcafe2

@ -14,14 +14,13 @@
# exclusions
# conflict resolution initiator with backups / multiple backups
# conflict resolution target with backups / multiple backups
# deletion propagation
# deletion propagation, failed deletion repropagation
# lock checks
# file attribute tests
#TODO: lock checks missing
#TODO: skip deletion tests
#TODO: daemon mode tests
#TODO: failed delete repropagation
#TODO: check file contents on attribute updates
#TODO: enable teardown after tests
@ -54,8 +53,9 @@ else
SSH_PORT=49999
fi
INITIATOR_DIR="${HOME}/osync-tests/initiator"
TARGET_DIR="${HOME}/osync-tests/target"
OSYNC_TESTS_DIR="${HOME}/osync-tests"
INITIATOR_DIR="$OSYNC_TESTS_DIR/initiator"
TARGET_DIR="$OSYNC_TESTS_DIR/target"
OSYNC_WORKDIR=".osync_workdir"
OSYNC_STATE_DIR="$OSYNC_WORKDIR/state"
OSYNC_DELETE_DIR="$OSYNC_WORKDIR/deleted"
@ -166,7 +166,7 @@ function PrepareLocalDirs () {
mkdir -p "$INITIATOR_DIR"
if [ -d "$TARGET_DIR" ]; then
rm -rf "$TARGET_DIR"
rm -rf "$TARGET_DIR"
fi
mkdir -p "$TARGET_DIR"
}
@ -178,6 +178,7 @@ function oneTimeSetUp () {
function oneTimeTearDown () {
SetStableToOrigin
#rm -rf "$OSYNC_TESTS_DIR"
}
function setUp () {
@ -185,6 +186,7 @@ function setUp () {
rm -rf "$TARGET_DIR"
}
# This test has to be done everytime in order for osync executable to be fresh
function test_Merge () {
cd "$DEV_DIR"
./merge.sh
@ -282,6 +284,68 @@ function test_Deletetion () {
done
}
function test_deletion_failure () {
for i in "${osyncParameters[@]}"; do
cd "$OSYNC_DIR"
PrepareLocalDirs
DirA="some directory with spaces"
DirB="another directoy/and sub directory"
mkdir -p "$INITIATOR_DIR/$DirA"
mkdir -p "$TARGET_DIR/$DirB"
FileA="$DirA/File A"
FileB="$DirB/File B"
touch "$INITIATOR_DIR/$FileA"
touch "$TARGET_DIR/$FileB"
REMOTE_HOST_PING=no ./$OSYNC_EXECUTABLE $i
assertEquals "First deletion run with parameters [$i]." "0" $?
rm -f "$INITIATOR_DIR/$FileA"
rm -f "$TARGET_DIR/$FileB"
# Prevent files from being deleted
chattr +i "$TARGET_DIR/$FileA"
chattr +i "$INITIATOR_DIR/$FileB"
# This shuold fail with exitcode 1
REMOTE_HOST_PING=no ./$OSYNC_EXECUTABLE $i
assertEquals "Second deletion run with parameters [$i]." "1" $?
[ -f "$TARGET_DIR/$FileA" ]
assertEquals "File [$TARGET_DIR/$FileA] is still present in deletion dir." "0" $?
[ ! -f "$TARGET_DIR/$OSYNC_DELETE_DIR/$FileA" ]
assertEquals "File [$TARGET_DIR/$OSYNC_DELETE_DIR/$FileA] is not present in deletion dir." "0" $?
[ -f "$INITIATOR_DIR/$FileB" ]
assertEquals "File [$INITIATOR_DIR/$FileB] is still present in deletion dir." "0" $?
[ ! -f "$INITIATOR_DIR/$OSYNC_DELETE_DIR/$FileB" ]
assertEquals "File [$INITIATOR_DIR/$OSYNC_DELETE_DIR/$FileB] is not present in deletion dir." "0" $?
# Allow files from being deleted
chattr -i "$TARGET_DIR/$FileA"
chattr -i "$INITIATOR_DIR/$FileB"
REMOTE_HOST_PING=no ./$OSYNC_EXECUTABLE $i
assertEquals "Third deletion run with parameters [$i]." "0" $?
[ ! -f "$TARGET_DIR/$FileA" ]
assertEquals "File [$TARGET_DIR/$FileA] is still present in deletion dir." "0" $?
[ -f "$TARGET_DIR/$OSYNC_DELETE_DIR/$FileA" ]
assertEquals "File [$TARGET_DIR/$OSYNC_DELETE_DIR/$FileA] is not present in deletion dir." "0" $?
[ ! -f "$INITIATOR_DIR/$FileB" ]
assertEquals "File [$INITIATOR_DIR/$FileB] is still present in deletion dir." "0" $?
[ -f "$INITIATOR_DIR/$OSYNC_DELETE_DIR/$FileB" ]
assertEquals "File [$INITIATOR_DIR/$OSYNC_DELETE_DIR/$FileB] is not present in deletion dir." "0" $?
done
}
function test_softdeletion_cleanup () {
declare -A files
@ -303,7 +367,7 @@ function test_softdeletion_cleanup () {
# Create some deleted & backed up files, some new and some old
for file in "${files[@]}"; do
# Create directories first if they don't exist (deletion dir is created by osync, backup dir is created by rsync only when needed)
# Create directories first if they do not exist (deletion dir is created by osync, backup dir is created by rsync only when needed)
if [ ! -d "$(dirname $file)" ]; then
mkdir --parents "$(dirname $file)"
fi

Loading…
Cancel
Save