Added SSH remote tests for Travis
This commit is contained in:
parent
873ff7971f
commit
b79e26bcc6
|
@ -6,5 +6,5 @@ os:
|
||||||
osx
|
osx
|
||||||
|
|
||||||
script:
|
script:
|
||||||
dev/tests/run_travis_tests.sh
|
TRAVIS_RUN=true dev/tests/run_tests.sh
|
||||||
|
|
||||||
|
|
|
@ -1,84 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# osync test suite 2016083002
|
|
||||||
# Add big fileset tests (eg: drupal 8 ?)
|
|
||||||
|
|
||||||
|
|
||||||
OSYNC_DIR="$(pwd)"
|
|
||||||
OSYNC_DIR=${OSYNC_DIR%%/dev*}
|
|
||||||
DEV_DIR="$OSYNC_DIR/dev"
|
|
||||||
TESTS_DIR="$DEV_DIR/tests"
|
|
||||||
|
|
||||||
OSYNC_EXECUTABLE="osync.sh"
|
|
||||||
|
|
||||||
INITIATOR_DIR="${HOME}/osync/initiator"
|
|
||||||
TARGET_DIR="${HOME}/osync/target"
|
|
||||||
OSYNC_STATE_DIR=".osync_workdir/state"
|
|
||||||
|
|
||||||
function CreateReplicas () {
|
|
||||||
if [ -d "$INITIATOR_DIR" ]; then
|
|
||||||
rm -rf "$INITIATOR_DIR"
|
|
||||||
fi
|
|
||||||
mkdir -p "$INITIATOR_DIR"
|
|
||||||
|
|
||||||
if [ -d "$TARGET_DIR" ]; then
|
|
||||||
rm -rf "$TARGET_DIR"
|
|
||||||
fi
|
|
||||||
mkdir -p "$TARGET_DIR"
|
|
||||||
}
|
|
||||||
|
|
||||||
function oneTimeSetUp () {
|
|
||||||
source "$DEV_DIR/ofunctions.sh"
|
|
||||||
}
|
|
||||||
|
|
||||||
function oneTimeTearDown () {
|
|
||||||
if [ "$IS_STABLE" == "no" ]; then
|
|
||||||
sed -i.tmp 's/^IS_STABLE=yes/IS_STABLE=no/' "$OSYNC_DIR/$OSYNC_EXECUTABLE"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_Merge () {
|
|
||||||
cd "$DEV_DIR"
|
|
||||||
./merge.sh
|
|
||||||
assertEquals "Merging code" "0" $?
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_SetStable () {
|
|
||||||
if grep "^IS_STABLE=YES" "$OSYNC_DIR/$OSYNC_EXECUTABLE" > /dev/null; then
|
|
||||||
IS_STABLE=yes
|
|
||||||
echo "Is already set as stable"
|
|
||||||
else
|
|
||||||
IS_STABLE=no
|
|
||||||
sed -i.tmp 's/^IS_STABLE=no/IS_STABLE=yes/' "$OSYNC_DIR/$OSYNC_EXECUTABLE"
|
|
||||||
assertEquals "Set as stable" "0" $?
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_osync_quicksync_local () {
|
|
||||||
CreateReplicas
|
|
||||||
cd "$OSYNC_DIR"
|
|
||||||
./$OSYNC_EXECUTABLE --initiator="$INITIATOR_DIR" --target="$TARGET_DIR"
|
|
||||||
assertEquals "Return code" "0" $?
|
|
||||||
|
|
||||||
[ -d "$INITIATOR_DIR/$OSYNC_STATE_DIR" ]
|
|
||||||
assertEquals "Initiator state dir exists" "0" $?
|
|
||||||
|
|
||||||
[ -d "$TARGET_DIR/$OSYNC_STATE_DIR" ]
|
|
||||||
assertEquals "Target state dir exists" "0" $?
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function test_osync_quicksync_remote () {
|
|
||||||
CreateReplicas
|
|
||||||
cd "$OSYNC_DIR"
|
|
||||||
./$OSYNC_EXECUTABLE --initiator="$INITIATOR_DIR" --target="ssh://localhost:49999/$TARGET_DIR" --rsakey=/root/.ssh/id_rsa_local > /dev/null
|
|
||||||
assertEquals "Return code" "0" $?
|
|
||||||
|
|
||||||
[ -d "$INITIATOR_DIR/$OSYNC_STATE_DIR" ]
|
|
||||||
assertEquals "Initiator state dir exists" "0" $?
|
|
||||||
|
|
||||||
[ -d "$TARGET_DIR/$OSYNC_STATE_DIR" ]
|
|
||||||
assertEquals "Target state dir exists" "0" $?
|
|
||||||
}
|
|
||||||
|
|
||||||
. "$TESTS_DIR/shunit2/shunit2"
|
|
|
@ -0,0 +1,173 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# osync test suite 2016090501
|
||||||
|
# TODO: Add big fileset tests (eg: drupal 8 ?), add soft deletion tests, add deletion propagation test, add file attrib test
|
||||||
|
|
||||||
|
|
||||||
|
OSYNC_DIR="$(pwd)"
|
||||||
|
OSYNC_DIR=${OSYNC_DIR%%/dev*}
|
||||||
|
DEV_DIR="$OSYNC_DIR/dev"
|
||||||
|
TESTS_DIR="$DEV_DIR/tests"
|
||||||
|
|
||||||
|
OSYNC_EXECUTABLE="osync.sh"
|
||||||
|
|
||||||
|
if [ "$TRAVIS_RUN" == true ]; then
|
||||||
|
echo "Running with travis settings"
|
||||||
|
CONF_DIR="$TESTS_DIR/conf-travis"
|
||||||
|
SSH_PORT=22
|
||||||
|
else
|
||||||
|
echo "Running with local settings"
|
||||||
|
CONF_DIR="$TESTS_DIR/conf-local"
|
||||||
|
SSH_PORT=49999
|
||||||
|
fi
|
||||||
|
|
||||||
|
INITIATOR_DIR="${HOME}/osync/initiator"
|
||||||
|
TARGET_DIR="${HOME}/osync/target"
|
||||||
|
OSYNC_STATE_DIR=".osync_workdir/state"
|
||||||
|
|
||||||
|
function SetStableToYes () {
|
||||||
|
if grep "^IS_STABLE=YES" "$OSYNC_DIR/$OSYNC_EXECUTABLE" > /dev/null; then
|
||||||
|
IS_STABLE=yes
|
||||||
|
else
|
||||||
|
IS_STABLE=no
|
||||||
|
sed -i.tmp 's/^IS_STABLE=no/IS_STABLE=yes/' "$OSYNC_DIR/$OSYNC_EXECUTABLE"
|
||||||
|
assertEquals "Set stable to yes" "0" $?
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function SetStableToOrigin () {
|
||||||
|
if [ "$IS_STABLE" == "no" ]; then
|
||||||
|
sed -i.tmp 's/^IS_STABLE=yes/IS_STABLE=no/' "$OSYNC_DIR/$OSYNC_EXECUTABLE"
|
||||||
|
assertEquals "Set stable to origin value" "0" $?
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function SetupSSH {
|
||||||
|
echo -e 'y\n'| ssh-keygen -t rsa -b 2048 -N "" -f "${HOME}/.ssh/id_rsa_local"
|
||||||
|
cat "${HOME}/.ssh/id_rsa_local.pub" >> "${HOME}/.ssh/authorized_keys"
|
||||||
|
chmod 600 "${HOME}/.ssh/authorized_keys"
|
||||||
|
|
||||||
|
# Add localhost to known hosts so self connect works
|
||||||
|
if [ -z $(ssh-keygen -F localhost) ]; then
|
||||||
|
ssh-keyscan -H localhost >> ~/.ssh/known_hosts
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function oneTimeSetUp () {
|
||||||
|
source "$DEV_DIR/ofunctions.sh"
|
||||||
|
SetupSSH
|
||||||
|
}
|
||||||
|
|
||||||
|
function oneTimeTearDown () {
|
||||||
|
SetStableToOrigin
|
||||||
|
}
|
||||||
|
|
||||||
|
function SetUp () {
|
||||||
|
if [ -d "$INITIATOR_DIR" ]; then
|
||||||
|
rm -rf "$INITIATOR_DIR"
|
||||||
|
fi
|
||||||
|
mkdir -p "$INITIATOR_DIR"
|
||||||
|
|
||||||
|
if [ -d "$TARGET_DIR" ]; then
|
||||||
|
rm -rf "$TARGET_DIR"
|
||||||
|
fi
|
||||||
|
mkdir -p "$TARGET_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_Merge () {
|
||||||
|
cd "$DEV_DIR"
|
||||||
|
./merge.sh
|
||||||
|
assertEquals "Merging code" "0" $?
|
||||||
|
SetStableToYes
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_osync_quicksync_local () {
|
||||||
|
cd "$OSYNC_DIR"
|
||||||
|
./$OSYNC_EXECUTABLE --initiator="$INITIATOR_DIR" --target="$TARGET_DIR"
|
||||||
|
assertEquals "Return code" "0" $?
|
||||||
|
|
||||||
|
[ -d "$INITIATOR_DIR/$OSYNC_STATE_DIR" ]
|
||||||
|
assertEquals "Initiator state dir exists" "0" $?
|
||||||
|
|
||||||
|
[ -d "$TARGET_DIR/$OSYNC_STATE_DIR" ]
|
||||||
|
assertEquals "Target state dir exists" "0" $?
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function test_osync_quicksync_remote () {
|
||||||
|
cd "$OSYNC_DIR"
|
||||||
|
./$OSYNC_EXECUTABLE --initiator="$INITIATOR_DIR" --target="ssh://localhost:$SSH_PORT/$TARGET_DIR" --rsakey=/root/.ssh/id_rsa_local
|
||||||
|
assertEquals "Return code" "0" $?
|
||||||
|
|
||||||
|
[ -d "$INITIATOR_DIR/$OSYNC_STATE_DIR" ]
|
||||||
|
assertEquals "Initiator state dir exists" "0" $?
|
||||||
|
|
||||||
|
[ -d "$TARGET_DIR/$OSYNC_STATE_DIR" ]
|
||||||
|
assertEquals "Target state dir exists" "0" $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_WaitForTaskCompletion () {
|
||||||
|
# Tests if wait for task completion works correctly
|
||||||
|
|
||||||
|
# Standard wait
|
||||||
|
sleep 1 &
|
||||||
|
pids="$!"
|
||||||
|
sleep 2 &
|
||||||
|
pids="$pids;$!"
|
||||||
|
WaitForTaskCompletion $pids 0 0 ${FUNCNAME[0]} true 0
|
||||||
|
assertEquals "WaitForTaskCompletion test 1" "0" $?
|
||||||
|
|
||||||
|
# Standard wait with warning
|
||||||
|
sleep 2 &
|
||||||
|
pids="$!"
|
||||||
|
sleep 5 &
|
||||||
|
pids="$pids;$!"
|
||||||
|
|
||||||
|
WaitForTaskCompletion $pids 3 0 ${FUNCNAME[0]} true 0
|
||||||
|
assertEquals "WaitForTaskCompletion test 2" "0" $?
|
||||||
|
|
||||||
|
# Both pids are killed
|
||||||
|
sleep 5 &
|
||||||
|
pids="$!"
|
||||||
|
sleep 5 &
|
||||||
|
pids="$pids;$!"
|
||||||
|
|
||||||
|
WaitForTaskCompletion $pids 0 2 ${FUNCNAME[0]} true 0
|
||||||
|
assertEquals "WaitForTaskCompletion test 3" "2" $?
|
||||||
|
|
||||||
|
# One of two pids are killed
|
||||||
|
sleep 2 &
|
||||||
|
pids="$!"
|
||||||
|
sleep 10 &
|
||||||
|
pids="$pids;$!"
|
||||||
|
|
||||||
|
WaitForTaskCompletion $pids 0 3 ${FUNCNAME[0]} true 0
|
||||||
|
assertEquals "WaitForTaskCompletion test 4" "1" $?
|
||||||
|
|
||||||
|
# Count since script begin, the following should output two warnings and both pids should get killed
|
||||||
|
sleep 20 &
|
||||||
|
pids="$!"
|
||||||
|
sleep 20 &
|
||||||
|
pids="$pids;$!"
|
||||||
|
|
||||||
|
WaitForTaskCompletion $pids 3 5 ${FUNCNAME[0]} false 0
|
||||||
|
assertEquals "WaitForTaskCompletion test 5" "2" $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_ParallelExec () {
|
||||||
|
# Test if parallelExec works correctly
|
||||||
|
|
||||||
|
cmd="sleep 2;sleep 2;sleep 2;sleep 2"
|
||||||
|
ParallelExec 4 "$cmd"
|
||||||
|
assertEquals "ParallelExec test 1" "0" $?
|
||||||
|
|
||||||
|
cmd="sleep 2;du /none;sleep 2"
|
||||||
|
ParallelExec 2 "$cmd"
|
||||||
|
assertEquals "ParallelExec test 2" "1" $?
|
||||||
|
|
||||||
|
cmd="sleep 4;du /none;sleep 3;du /none;sleep 2"
|
||||||
|
ParallelExec 3 "$cmd"
|
||||||
|
assertEquals "ParallelExec test 3" "2" $?
|
||||||
|
}
|
||||||
|
|
||||||
|
. "$TESTS_DIR/shunit2/shunit2"
|
|
@ -1,70 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# osync test suite 2016083002
|
|
||||||
# Add big fileset tests (eg: drupal 8 ?)
|
|
||||||
|
|
||||||
|
|
||||||
OSYNC_DIR="$(pwd)"
|
|
||||||
OSYNC_DIR=${OSYNC_DIR%%/dev*}
|
|
||||||
DEV_DIR="$OSYNC_DIR/dev"
|
|
||||||
TESTS_DIR="$DEV_DIR/tests"
|
|
||||||
|
|
||||||
OSYNC_EXECUTABLE="osync.sh"
|
|
||||||
|
|
||||||
INITIATOR_DIR="${HOME}/osync/initiator"
|
|
||||||
TARGET_DIR="${HOME}/osync/target"
|
|
||||||
OSYNC_STATE_DIR=".osync_workdir/state"
|
|
||||||
|
|
||||||
function CreateReplicas () {
|
|
||||||
if [ -d "$INITIATOR_DIR" ]; then
|
|
||||||
rm -rf "$INITIATOR_DIR"
|
|
||||||
fi
|
|
||||||
mkdir -p "$INITIATOR_DIR"
|
|
||||||
|
|
||||||
if [ -d "$TARGET_DIR" ]; then
|
|
||||||
rm -rf "$TARGET_DIR"
|
|
||||||
fi
|
|
||||||
mkdir -p "$TARGET_DIR"
|
|
||||||
}
|
|
||||||
|
|
||||||
function oneTimeSetUp () {
|
|
||||||
source "$DEV_DIR/ofunctions.sh"
|
|
||||||
}
|
|
||||||
|
|
||||||
function oneTimeTearDown () {
|
|
||||||
if [ "$IS_STABLE" == "no" ]; then
|
|
||||||
sed -i.tmp 's/^IS_STABLE=yes/IS_STABLE=no/' "$OSYNC_DIR/$OSYNC_EXECUTABLE"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_Merge () {
|
|
||||||
cd "$DEV_DIR"
|
|
||||||
./merge.sh
|
|
||||||
assertEquals "Merging code" "0" $?
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_SetStable () {
|
|
||||||
if grep "^IS_STABLE=YES" "$OSYNC_DIR/$OSYNC_EXECUTABLE" > /dev/null; then
|
|
||||||
IS_STABLE=yes
|
|
||||||
echo "Is already set as stable"
|
|
||||||
else
|
|
||||||
IS_STABLE=no
|
|
||||||
sed -i.tmp 's/^IS_STABLE=no/IS_STABLE=yes/' "$OSYNC_DIR/$OSYNC_EXECUTABLE"
|
|
||||||
assertEquals "Set as stable" "0" $?
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_osync_quicksync_local () {
|
|
||||||
CreateReplicas
|
|
||||||
cd "$OSYNC_DIR"
|
|
||||||
./$OSYNC_EXECUTABLE --initiator="$INITIATOR_DIR" --target="$TARGET_DIR"
|
|
||||||
assertEquals "Return code" "0" $?
|
|
||||||
|
|
||||||
[ -d "$INITIATOR_DIR/$OSYNC_STATE_DIR" ]
|
|
||||||
assertEquals "Initiator state dir exists" "0" $?
|
|
||||||
|
|
||||||
[ -d "$TARGET_DIR/$OSYNC_STATE_DIR" ]
|
|
||||||
assertEquals "Target state dir exists" "0" $?
|
|
||||||
}
|
|
||||||
|
|
||||||
. "$TESTS_DIR/shunit2/shunit2"
|
|
Loading…
Reference in New Issue