WIP: conflict detection and fakeroot install
This commit is contained in:
parent
3d6eaef447
commit
21bc4e1ee7
|
@ -1,13 +1,11 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
## If this script is stopped while running, config file values and IS_STABLE value might be in inconsistent state
|
||||
|
||||
## On Mac OSX, this needs to be run as root in order to use sudo without password
|
||||
## From current terminal run sudo -s in order to get a new terminal as root
|
||||
|
||||
## On CYGWIN / MSYS, ACL and extended attributes aren't supported
|
||||
|
||||
# osync test suite 2018051801
|
||||
# osync test suite 2018062901
|
||||
|
||||
# 4 tests:
|
||||
# quicklocal
|
||||
|
@ -26,6 +24,7 @@
|
|||
# replica lock checks
|
||||
# file attribute tests
|
||||
# local / remote locking resume tests
|
||||
# conflict detection
|
||||
# timed execution tests
|
||||
|
||||
# function test
|
||||
|
@ -41,6 +40,9 @@
|
|||
#LARGE_FILESET_URL="http://ftp.drupal.org/files/projects/drupal-8.2.2.tar.gz"
|
||||
LARGE_FILESET_URL="http://www.netpower.fr/sites/default/files/osync-test-files.tar.gz"
|
||||
|
||||
# Fakeroot for install / uninstall and test of executables
|
||||
FAKEROOT="/tmp/osync_test_install"
|
||||
|
||||
OSYNC_DIR="$(pwd)"
|
||||
OSYNC_DIR=${OSYNC_DIR%%/dev*}
|
||||
DEV_DIR="$OSYNC_DIR/dev"
|
||||
|
@ -52,7 +54,7 @@ REMOTE_CONF="remote.conf"
|
|||
OLD_CONF="old.conf"
|
||||
TMP_OLD_CONF="tmp.old.conf"
|
||||
|
||||
OSYNC_EXECUTABLE="osync.sh"
|
||||
OSYNC_EXECUTABLE="$FAKEROOT/usr/local/bin/osync.sh"
|
||||
OSYNC_DEV_EXECUTABLE="dev/n_osync.sh"
|
||||
OSYNC_UPGRADE="upgrade-v1.0x-v1.2x.sh"
|
||||
TMP_FILE="$DEV_DIR/tmp"
|
||||
|
@ -158,6 +160,8 @@ function PrepareLocalDirs () {
|
|||
function oneTimeSetUp () {
|
||||
START_TIME=$SECONDS
|
||||
|
||||
mkdir --parents "$FAKEROOT"
|
||||
|
||||
source "$DEV_DIR/ofunctions.sh"
|
||||
|
||||
# Fix default umask because of ACL test that expects 0022 when creating test files
|
||||
|
@ -210,6 +214,7 @@ function oneTimeSetUp () {
|
|||
|
||||
osyncDaemonParameters[$__local]="$CONF_DIR/$LOCAL_CONF --on-changes"
|
||||
|
||||
# Do not check remote config on msys or cygwin since we don't have a local SSH server
|
||||
if [ "$LOCAL_OS" != "msys" ] && [ "$LOCAL_OS" != "Cygwin" ]; then
|
||||
osyncParameters[$__quickRemote]="--initiator=$INITIATOR_DIR --target=ssh://localhost:$SSH_PORT/$TARGET_DIR --rsakey=${HOME}/.ssh/id_rsa_local --instance-id=quickremote --remote-token=SomeAlphaNumericToken9"
|
||||
osyncParameters[$__confRemote]="$CONF_DIR/$REMOTE_CONF"
|
||||
|
@ -261,7 +266,7 @@ function oneTimeSetUp () {
|
|||
|
||||
function oneTimeTearDown () {
|
||||
# Set osync version stable flag back to origin
|
||||
SetConfFileValue "$OSYNC_DIR/$OSYNC_EXECUTABLE" "IS_STABLE" "$OSYNC_IS_STABLE"
|
||||
#SetConfFileValue "$OSYNC_DIR/$OSYNC_EXECUTABLE" "IS_STABLE" "$OSYNC_IS_STABLE"
|
||||
|
||||
RemoveSSH
|
||||
|
||||
|
@ -270,7 +275,9 @@ function oneTimeTearDown () {
|
|||
rm -f "$TMP_FILE"
|
||||
|
||||
cd "$OSYNC_DIR"
|
||||
$SUDO_CMD ./install.sh --remove --no-stats
|
||||
echo ""
|
||||
echo "Uninstalling osync from $FAKEROOT"
|
||||
$SUDO_CMD ./install.sh --remove --no-stats --prefix="$FAKEROOT"
|
||||
assertEquals "Uninstall failed" "0" $?
|
||||
|
||||
ELAPSED_TIME=$(($SECONDS - $START_TIME))
|
||||
|
@ -289,21 +296,23 @@ function test_Merge () {
|
|||
assertEquals "Merging code" "0" $?
|
||||
|
||||
cd "$OSYNC_DIR"
|
||||
$SUDO_CMD ./install.sh --no-stats
|
||||
echo ""
|
||||
echo "Installing osync to $FAKEROOT"
|
||||
$SUDO_CMD ./install.sh --no-stats --prefix="$FAKEROOT"
|
||||
assertEquals "Install failed" "0" $?
|
||||
|
||||
# Set osync version to stable while testing to avoid warning message
|
||||
SetConfFileValue "$OSYNC_DIR/$OSYNC_EXECUTABLE" "IS_STABLE" "yes"
|
||||
SetConfFileValue "$OSYNC_EXECUTABLE" "IS_STABLE" "yes"
|
||||
}
|
||||
|
||||
function test_LargeFileSet () {
|
||||
function nope_test_LargeFileSet () {
|
||||
for i in "${osyncParameters[@]}"; do
|
||||
cd "$OSYNC_DIR"
|
||||
|
||||
PrepareLocalDirs
|
||||
DownloadLargeFileSet "$INITIATOR_DIR"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "LargeFileSet test with parameters [$i]." "0" $?
|
||||
|
||||
[ -d "$INITIATOR_DIR/$OSYNC_STATE_DIR" ]
|
||||
|
@ -314,7 +323,7 @@ function test_LargeFileSet () {
|
|||
done
|
||||
}
|
||||
|
||||
function test_Exclusions () {
|
||||
function nope_test_Exclusions () {
|
||||
# Will sync except php files
|
||||
# RSYNC_EXCLUDE_PATTERN="*.php" is set at runtime for quicksync and in config files for other runs
|
||||
|
||||
|
@ -331,7 +340,7 @@ function test_Exclusions () {
|
|||
|
||||
numberOfPHPFiles=$(find "$INITIATOR_DIR" ! -wholename "$INITIATOR_DIR/$OSYNC_WORKDIR*" -name "*.php" | wc -l)
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING RSYNC_EXCLUDE_PATTERN="*.php" ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING RSYNC_EXCLUDE_PATTERN="*.php" $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Exclusions with parameters [$i]." "0" $?
|
||||
|
||||
numberOfInitiatorFiles=$(find "$INITIATOR_DIR" ! -wholename "$INITIATOR_DIR/$OSYNC_WORKDIR*" | wc -l)
|
||||
|
@ -342,7 +351,7 @@ function test_Exclusions () {
|
|||
done
|
||||
}
|
||||
|
||||
function test_Deletetion () {
|
||||
function nope_test_Deletetion () {
|
||||
local iFile1="$INITIATOR_DIR/ific"
|
||||
local iFile2="$INITIATOR_DIR/ifoc"
|
||||
local tFile1="$TARGET_DIR/tfic"
|
||||
|
@ -358,13 +367,13 @@ function test_Deletetion () {
|
|||
touch "$tFile1"
|
||||
touch "$tFile2"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
rm -f "$iFile1"
|
||||
rm -f "$tFile1"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Second deletion run with parameters [$i]." "0" $?
|
||||
|
||||
[ -f "$TARGET_DIR/$OSYNC_DELETE_DIR/$(basename $iFile1)" ]
|
||||
|
@ -386,7 +395,7 @@ function test_Deletetion () {
|
|||
done
|
||||
}
|
||||
|
||||
function test_deletion_failure () {
|
||||
function nope_test_deletion_failure () {
|
||||
if [ "$LOCAL_OS" == "WinNT10" ] || [ "$LOCAL_OS" == "msys" ] || [ "$LOCAL_OS" == "Cygwin" ]; then
|
||||
echo "Skipping deletion failure test as Win10 does not have chattr support."
|
||||
return 0
|
||||
|
@ -409,7 +418,7 @@ function test_deletion_failure () {
|
|||
touch "$INITIATOR_DIR/$FileA"
|
||||
touch "$TARGET_DIR/$FileB"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
rm -f "$INITIATOR_DIR/$FileA"
|
||||
|
@ -420,7 +429,7 @@ function test_deletion_failure () {
|
|||
$SUDO_CMD $IMMUTABLE_ON_CMD "$INITIATOR_DIR/$FileB"
|
||||
|
||||
# This shuold fail with exitcode 1
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Second deletion run with parameters [$i]." "1" $?
|
||||
|
||||
# standard file tests
|
||||
|
@ -438,7 +447,7 @@ function test_deletion_failure () {
|
|||
$SUDO_CMD $IMMUTABLE_OFF_CMD "$TARGET_DIR/$FileA"
|
||||
$SUDO_CMD $IMMUTABLE_OFF_CMD "$INITIATOR_DIR/$FileB"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Third deletion run with parameters [$i]." "0" $?
|
||||
|
||||
[ ! -f "$TARGET_DIR/$FileA" ]
|
||||
|
@ -453,7 +462,7 @@ function test_deletion_failure () {
|
|||
done
|
||||
}
|
||||
|
||||
function test_skip_deletion () {
|
||||
function nope_test_skip_deletion () {
|
||||
local modes
|
||||
|
||||
if [ "$OSYNC_MIN_VERSION" == "1" ]; then
|
||||
|
@ -490,14 +499,14 @@ function test_skip_deletion () {
|
|||
touch "$TARGET_DIR/$FileB"
|
||||
|
||||
# First run
|
||||
REMOTE_HOST_PING=$RHOST_PING SKIP_DELETION="$mode" ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING SKIP_DELETION="$mode" $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
rm -f "$INITIATOR_DIR/$FileA"
|
||||
rm -f "$TARGET_DIR/$FileB"
|
||||
|
||||
# Second run
|
||||
REMOTE_HOST_PING=$RHOST_PING SKIP_DELETION="$mode" ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING SKIP_DELETION="$mode" $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
if [ "$mode" == "initiator" ]; then
|
||||
|
@ -529,7 +538,7 @@ function test_skip_deletion () {
|
|||
SetConfFileValue "$CONF_DIR/$REMOTE_CONF" "SKIP_DELETION" ""
|
||||
}
|
||||
|
||||
function test_handle_symlinks () {
|
||||
function nope_test_handle_symlinks () {
|
||||
if [ "$OSYNC_MIN_VERSION" == "1" ]; then
|
||||
echo "Skipping symlink tests as osync v1.1x didn't handle this."
|
||||
return 0
|
||||
|
@ -570,14 +579,14 @@ function test_handle_symlinks () {
|
|||
ln -s "$INITIATOR_DIR/$FileA" "$INITIATOR_DIR/$FileAL"
|
||||
ln -s "$TARGET_DIR/$FileB" "$TARGET_DIR/$FileBL"
|
||||
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First symlink run with parameters [$i]." "0" $?
|
||||
|
||||
# Delete symlinks
|
||||
rm -f "$INITIATOR_DIR/$FileAL"
|
||||
rm -f "$TARGET_DIR/$FileBL"
|
||||
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Second symlink deletion run with parameters [$i]." "0" $?
|
||||
|
||||
# symlink deletion propagation
|
||||
|
@ -596,7 +605,7 @@ function test_handle_symlinks () {
|
|||
rm -f "$INITIATOR_DIR/$FileA"
|
||||
rm -f "$TARGET_DIR/$FileB"
|
||||
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Third broken symlink run with parameters [$i]." "0" $?
|
||||
|
||||
[ -L "$TARGET_DIR/$FileAL" ]
|
||||
|
@ -609,7 +618,7 @@ function test_handle_symlinks () {
|
|||
rm -f "$INITIATOR_DIR/$FileAL"
|
||||
rm -f "$TARGET_DIR/$FileBL"
|
||||
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Fourth symlink deletion run with parameters [$i]." "0" $?
|
||||
|
||||
[ ! -L "$TARGET_DIR/$FileAL" ]
|
||||
|
@ -657,14 +666,14 @@ function test_handle_symlinks () {
|
|||
ln -s "$INITIATOR_DIR/$FileA" "$INITIATOR_DIR/$FileAL"
|
||||
ln -s "$TARGET_DIR/$FileB" "$TARGET_DIR/$FileBL"
|
||||
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First symlink run with parameters [$i]." "0" $?
|
||||
|
||||
# Delete symlinks
|
||||
rm -f "$INITIATOR_DIR/$FileAL"
|
||||
rm -f "$TARGET_DIR/$FileBL"
|
||||
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Second symlink deletion run with parameters [$i]." "0" $?
|
||||
|
||||
# symlink deletion propagation
|
||||
|
@ -683,7 +692,7 @@ function test_handle_symlinks () {
|
|||
rm -f "$INITIATOR_DIR/$FileA"
|
||||
rm -f "$TARGET_DIR/$FileB"
|
||||
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Third broken symlink run with parameters should fail [$i]." "1" $?
|
||||
|
||||
[ ! -f "$TARGET_DIR/$FileAL" ]
|
||||
|
@ -696,7 +705,7 @@ function test_handle_symlinks () {
|
|||
rm -f "$INITIATOR_DIR/$FileAL"
|
||||
rm -f "$TARGET_DIR/$FileBL"
|
||||
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
COPY_SYMLINKS=$copySymlinks REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Fourth symlink deletion run should resume with parameters [$i]." "0" $?
|
||||
|
||||
[ ! -f "$TARGET_DIR/$FileAL" ]
|
||||
|
@ -710,7 +719,7 @@ function test_handle_symlinks () {
|
|||
done
|
||||
}
|
||||
|
||||
function test_softdeletion_cleanup () {
|
||||
function nope_test_softdeletion_cleanup () {
|
||||
#declare -A files
|
||||
|
||||
files=()
|
||||
|
@ -727,7 +736,7 @@ function test_softdeletion_cleanup () {
|
|||
PrepareLocalDirs
|
||||
|
||||
# First run
|
||||
#REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
#REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
#assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
# Get current drive
|
||||
|
@ -756,7 +765,7 @@ function test_softdeletion_cleanup () {
|
|||
fi
|
||||
|
||||
# Second run
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
|
||||
# Check file presence
|
||||
for file in "${files[@]}"; do
|
||||
|
@ -787,7 +796,7 @@ function test_softdeletion_cleanup () {
|
|||
|
||||
}
|
||||
|
||||
function test_FileAttributePropagation () {
|
||||
function nope_test_FileAttributePropagation () {
|
||||
|
||||
if [ "$TRAVIS_RUN" == true ]; then
|
||||
echo "Skipping FileAttributePropagation tests as travis does not support getfacl / setfacl."
|
||||
|
@ -820,7 +829,7 @@ function test_FileAttributePropagation () {
|
|||
touch "$TARGET_DIR/$FileB"
|
||||
|
||||
# First run
|
||||
PRESERVE_ACL=yes PRESERVE_XATTR=yes REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
PRESERVE_ACL=yes PRESERVE_XATTR=yes REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
sleep 1
|
||||
|
@ -848,7 +857,7 @@ function test_FileAttributePropagation () {
|
|||
assertEquals "Set ACL on target directory" "0" $?
|
||||
|
||||
# Second run
|
||||
PRESERVE_ACL=yes PRESERVE_XATTR=yes REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
PRESERVE_ACL=yes PRESERVE_XATTR=yes REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
getfacl "$TARGET_DIR/$FileA" | grep "other::r-x" > /dev/null
|
||||
|
@ -865,7 +874,7 @@ function test_FileAttributePropagation () {
|
|||
done
|
||||
}
|
||||
|
||||
function test_ConflictBackups () {
|
||||
function nope_test_ConflictBackups () {
|
||||
for i in "${osyncParameters[@]}"; do
|
||||
cd "$OSYNC_DIR"
|
||||
PrepareLocalDirs
|
||||
|
@ -883,14 +892,14 @@ function test_ConflictBackups () {
|
|||
echo "$FileB" > "$TARGET_DIR/$FileB"
|
||||
|
||||
# First run
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
echo "$FileA+" > "$TARGET_DIR/$FileA"
|
||||
echo "$FileB+" > "$INITIATOR_DIR/$FileB"
|
||||
|
||||
# Second run
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
[ -f "$INITIATOR_DIR/$OSYNC_BACKUP_DIR/$FileA" ]
|
||||
|
@ -901,7 +910,7 @@ function test_ConflictBackups () {
|
|||
done
|
||||
}
|
||||
|
||||
function test_MultipleConflictBackups () {
|
||||
function nope_test_MultipleConflictBackups () {
|
||||
|
||||
local additionalParameters
|
||||
|
||||
|
@ -927,28 +936,28 @@ function test_MultipleConflictBackups () {
|
|||
echo "$FileB" > "$TARGET_DIR/$FileB"
|
||||
|
||||
# First run
|
||||
CONFLICT_BACKUP_MULTIPLE=yes REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i $additionalParameters
|
||||
CONFLICT_BACKUP_MULTIPLE=yes REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i $additionalParameters
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
echo "$FileA+" > "$TARGET_DIR/$FileA"
|
||||
echo "$FileB+" > "$INITIATOR_DIR/$FileB"
|
||||
|
||||
# Second run
|
||||
CONFLICT_BACKUP_MULTIPLE=yes REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i $additionalParameters
|
||||
CONFLICT_BACKUP_MULTIPLE=yes REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i $additionalParameters
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
echo "$FileA-" > "$TARGET_DIR/$FileA"
|
||||
echo "$FileB-" > "$INITIATOR_DIR/$FileB"
|
||||
|
||||
# Third run
|
||||
CONFLICT_BACKUP_MULTIPLE=yes REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i $additionalParameters
|
||||
CONFLICT_BACKUP_MULTIPLE=yes REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i $additionalParameters
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
echo "$FileA*" > "$TARGET_DIR/$FileA"
|
||||
echo "$FileB*" > "$INITIATOR_DIR/$FileB"
|
||||
|
||||
# Fouth run
|
||||
CONFLICT_BACKUP_MULTIPLE=yes REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i $additionalParameters
|
||||
CONFLICT_BACKUP_MULTIPLE=yes REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i $additionalParameters
|
||||
assertEquals "First deletion run with parameters [$i]." "0" $?
|
||||
|
||||
# This test may fail only on 31th December at 23:59 :)
|
||||
|
@ -963,7 +972,7 @@ function test_MultipleConflictBackups () {
|
|||
SetConfFileValue "$CONF_DIR/$REMOTE_CONF" "CONFLICT_BACKUP_MULTIPLE" "no"
|
||||
}
|
||||
|
||||
function test_Locking () {
|
||||
function nope_test_Locking () {
|
||||
# local not running = resume
|
||||
# remote same instance_id = resume
|
||||
# remote different instance_id = stop
|
||||
|
@ -978,12 +987,12 @@ function test_Locking () {
|
|||
mkdir -p "$INITIATOR_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536 > "$INITIATOR_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Should be able to resume when initiator has lock without running pid." "0" $?
|
||||
|
||||
echo $$ > "$INITIATOR_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Should never be able to resume when initiator has lock with running pid." "1" $?
|
||||
done
|
||||
|
||||
|
@ -992,14 +1001,14 @@ function test_Locking () {
|
|||
mkdir -p "$TARGET_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@quicklocal > "$TARGET_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__quickLocal]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__quickLocal]}
|
||||
assertEquals "Should be able to resume locked target with same instance_id in quickLocal mode." "0" $?
|
||||
|
||||
PrepareLocalDirs
|
||||
mkdir -p "$TARGET_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@local > "$TARGET_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__confLocal]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__confLocal]}
|
||||
assertEquals "Should be able to resume locked target with same instance_id in confLocal mode." "0" $?
|
||||
|
||||
if [ "$LOCAL_OS" != "msys" ] && [ "$LOCAL_OS" != "Cygwin" ]; then
|
||||
|
@ -1007,14 +1016,14 @@ function test_Locking () {
|
|||
mkdir -p "$TARGET_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@quickremote > "$TARGET_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__quickRemote]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__quickRemote]}
|
||||
assertEquals "Should be able to resume locked target with same instance_id in quickRemote mode." "0" $?
|
||||
|
||||
PrepareLocalDirs
|
||||
mkdir -p "$TARGET_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@remote > "$TARGET_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__confRemote]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__confRemote]}
|
||||
assertEquals "Should be able to resume locked target with same instance_id in confRemote mode." "0" $?
|
||||
fi
|
||||
|
||||
|
@ -1023,14 +1032,14 @@ function test_Locking () {
|
|||
mkdir -p "$TARGET_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@bogusinstance > "$TARGET_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__quickLocal]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__quickLocal]}
|
||||
assertEquals "Should be able to resume locked local target with bogus instance id in quickLocal mode." "0" $?
|
||||
|
||||
PrepareLocalDirs
|
||||
mkdir -p "$TARGET_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@bogusinstance > "$TARGET_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__confLocal]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__confLocal]}
|
||||
assertEquals "Should be able to resume locked local target with bogus instance_id in confLocal mode." "0" $?
|
||||
|
||||
if [ "$LOCAL_OS" != "msys" ] && [ "$LOCAL_OS" != "Cygwin" ]; then
|
||||
|
@ -1038,14 +1047,14 @@ function test_Locking () {
|
|||
mkdir -p "$TARGET_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@bogusinstance > "$TARGET_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__quickRemote]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__quickRemote]}
|
||||
assertEquals "Should not be able to resume remote locked target with bogus instance_id in quickRemote mode." "1" $?
|
||||
|
||||
PrepareLocalDirs
|
||||
mkdir -p "$TARGET_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@bogusinstance > "$TARGET_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__confRemote]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__confRemote]}
|
||||
assertEquals "Should not be able to resume remote locked target with bogus instance_id in confRemote mode." "1" $?
|
||||
fi
|
||||
|
||||
|
@ -1062,7 +1071,7 @@ function test_Locking () {
|
|||
mkdir -p "$INITIATOR_DIR/$OSYNC_WORKDIR"
|
||||
echo 65536@bogusinstance > "$INITIATOR_DIR/$OSYNC_WORKDIR/lock"
|
||||
|
||||
FORCE_STRANGER_UNLOCK=yes REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE $i
|
||||
FORCE_STRANGER_UNLOCK=yes REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i
|
||||
assertEquals "Should be able to resume when target has lock with different instance id but FORCE_STRANGER_UNLOCK=yes." "0" $?
|
||||
done
|
||||
|
||||
|
@ -1070,7 +1079,54 @@ function test_Locking () {
|
|||
SetConfFileValue "$CONF_DIR/$REMOTE_CONF" "FORCE_STRANGER_LOCK_RESUME" "no"
|
||||
}
|
||||
|
||||
function test_WaitForTaskCompletion () {
|
||||
function test_ConflictDetetion () {
|
||||
local result
|
||||
|
||||
# Tests compatible with v1.3+
|
||||
|
||||
if [ $OSYNC_MIN_VERSION -lt 3 ]; then
|
||||
echo "Skipping conflict detection test because osync min version is $OSYNC_MIN_VERSION (must be 3 at least)."
|
||||
return 0
|
||||
fi
|
||||
|
||||
for i in "${osyncParameters[@]}"; do
|
||||
|
||||
cd "$OSYNC_DIR"
|
||||
PrepareLocalDirs
|
||||
|
||||
FileA="some file"
|
||||
FileB="some other file"
|
||||
|
||||
touch "$INITIATOR_DIR/$FileA"
|
||||
touch "$TARGET_DIR/$FileB"
|
||||
|
||||
# Initializing treeList
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i --initialize
|
||||
assertEquals "Initialization run with parameters [$i]." "0" $?
|
||||
|
||||
# Now modifying files on both sides
|
||||
|
||||
echo "A" > "$INITIATOR_DIR/$FileA"
|
||||
echo "B" > "$TARGET_DIR/$FileB"
|
||||
|
||||
# Now run should return conflicts
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE $i --log-conflicts > "$TMP/output.log"
|
||||
result=$?
|
||||
echo "$TMP/output.log"
|
||||
assertEquals "Second run that should detect conflicts with parameters [$i]." "0" $result
|
||||
|
||||
grep ">> $FileA" "$TMP/output.log"
|
||||
assertEquals "Initiator conflict detect with parameters [$i]." "0" $?
|
||||
|
||||
grep "<< $FileB" "$TMP/output.log"
|
||||
assertEquals "Target conflict detect with parameters [$i]." "0" $?
|
||||
|
||||
# TODO: Missing test for conflict prevalance
|
||||
done
|
||||
}
|
||||
|
||||
function nope_test_WaitForTaskCompletion () {
|
||||
local pids
|
||||
|
||||
# Tests compatible with v1.1 syntax
|
||||
|
@ -1164,7 +1220,7 @@ function test_WaitForTaskCompletion () {
|
|||
assertEquals "WaitForTaskCompletion test 5" "2" $?
|
||||
}
|
||||
|
||||
function test_ParallelExec () {
|
||||
function nope_test_ParallelExec () {
|
||||
if [ "$OSYNC_MIN_VERSION" == "1" ]; then
|
||||
echo "Skipping ParallelExec test because osync v1.1 ofunctions don't have this function."
|
||||
return 0
|
||||
|
@ -1225,7 +1281,7 @@ function test_ParallelExec () {
|
|||
assertNotEquals "ParallelExec full test 3" "0" $?
|
||||
}
|
||||
|
||||
function test_timedExecution () {
|
||||
function nope_test_timedExecution () {
|
||||
local arguments
|
||||
local warnExitCode
|
||||
|
||||
|
@ -1254,7 +1310,7 @@ function test_timedExecution () {
|
|||
PrepareLocalDirs
|
||||
|
||||
echo "Test with args [$i $arguments]."
|
||||
SLEEP_TIME=1 SOFT_MAX_EXEC_TIME=${softTimes[$x]} HARD_MAX_EXEC_TIME=${hardTimes[$x]} ./$OSYNC_EXECUTABLE $i
|
||||
SLEEP_TIME=1 SOFT_MAX_EXEC_TIME=${softTimes[$x]} HARD_MAX_EXEC_TIME=${hardTimes[$x]} $OSYNC_EXECUTABLE $i
|
||||
retval=$?
|
||||
if [ "$OSYNC_MIN_VERSION" -gt 1 ]; then
|
||||
assertEquals "Timed Execution test with timed SOFT_MAX_EXEC_TIME=${softTimes[$x]} and HARD_MAX_EXEC_TIME=${hardTimes[$x]}." $x $retval
|
||||
|
@ -1272,7 +1328,7 @@ function test_timedExecution () {
|
|||
done
|
||||
}
|
||||
|
||||
function test_UpgradeConfRun () {
|
||||
function nope_test_UpgradeConfRun () {
|
||||
if [ "$OSYNC_MIN_VERSION" == "1" ]; then
|
||||
echo "Skipping Upgrade script test because no further dev will happen on this for v1.1"
|
||||
return 0
|
||||
|
@ -1291,14 +1347,14 @@ function test_UpgradeConfRun () {
|
|||
# Update remote conf files with SSH port
|
||||
sed -i.tmp 's#ssh://.*@localhost:[0-9]*/${HOME}/osync-tests/target#ssh://'$REMOTE_USER'@localhost:'$SSH_PORT'/${HOME}/osync-tests/target#' "$CONF_DIR/$TMP_OLD_CONF"
|
||||
|
||||
./$OSYNC_EXECUTABLE "$CONF_DIR/$TMP_OLD_CONF"
|
||||
$OSYNC_EXECUTABLE "$CONF_DIR/$TMP_OLD_CONF"
|
||||
assertEquals "Upgraded conf file execution test" "0" $?
|
||||
|
||||
rm -f "$CONF_DIR/$TMP_OLD_CONF"
|
||||
rm -f "$CONF_DIR/$TMP_OLD_CONF.save"
|
||||
}
|
||||
|
||||
function test_DaemonMode () {
|
||||
function nope_test_DaemonMode () {
|
||||
if [ "$LOCAL_OS" == "WinNT10" ] || [ "$LOCAL_OS" == "msys" ] || [ "$LOCAL_OS" == "Cygwin" ]; then
|
||||
echo "Skipping daemon mode test as [$LOCAL_OS] does not have inotifywait support."
|
||||
return 0
|
||||
|
@ -1316,7 +1372,7 @@ function test_DaemonMode () {
|
|||
touch "$INITIATOR_DIR/$FileA"
|
||||
touch "$TARGET_DIR/$FileB"
|
||||
|
||||
./$OSYNC_EXECUTABLE "$CONF_DIR/$LOCAL_CONF" --on-changes &
|
||||
$OSYNC_EXECUTABLE "$CONF_DIR/$LOCAL_CONF" --on-changes &
|
||||
pid=$!
|
||||
|
||||
# Trivial value of 2xMIN_WAIT from config files
|
||||
|
@ -1353,13 +1409,13 @@ function test_DaemonMode () {
|
|||
|
||||
}
|
||||
|
||||
function test_NoRemoteAccessTest () {
|
||||
function nope_test_NoRemoteAccessTest () {
|
||||
RemoveSSH
|
||||
|
||||
cd "$OSYNC_DIR"
|
||||
PrepareLocalDirs
|
||||
|
||||
REMOTE_HOST_PING=$RHOST_PING ./$OSYNC_EXECUTABLE ${osyncParameters[$__confLocal]}
|
||||
REMOTE_HOST_PING=$RHOST_PING $OSYNC_EXECUTABLE ${osyncParameters[$__confLocal]}
|
||||
assertEquals "Basic local test without remote access." "0" $?
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue