diff options
Diffstat (limited to 'tests/basic/changelog')
| -rw-r--r-- | tests/basic/changelog/changelog-api.t | 37 | ||||
| -rw-r--r-- | tests/basic/changelog/changelog-history.t | 91 | ||||
| -rw-r--r-- | tests/basic/changelog/changelog-rename.t | 44 | ||||
| -rw-r--r-- | tests/basic/changelog/history-api.t | 42 |
4 files changed, 214 insertions, 0 deletions
diff --git a/tests/basic/changelog/changelog-api.t b/tests/basic/changelog/changelog-api.t new file mode 100644 index 00000000000..516c2f2f60d --- /dev/null +++ b/tests/basic/changelog/changelog-api.t @@ -0,0 +1,37 @@ +#!/bin/bash +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../env.rc + +cleanup; + +CHANGELOG_BIN_PATH=$(dirname $0)/../../utils/changelog +build_tester $CHANGELOG_BIN_PATH/test-changelog-api.c -lgfchangelog + +CHANGELOG_PATH_0="$B0/${V0}0/.glusterfs/changelogs" +ROLLOVER_TIME=2 + +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/${V0}0 +TEST $CLI volume set $V0 changelog.changelog on +TEST $CLI volume set $V0 changelog.rollover-time $ROLLOVER_TIME +TEST $CLI volume start $V0 + +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0; + +sleep 3; + +#Listen to changelog journal notifcations +$CHANGELOG_BIN_PATH/test-changelog-api & +for i in {1..12};do echo "data" > $M0/file$i 2>/dev/null; sleep 1;done & + +#Wait for changelogs to be in .processed directory +sleep 12 + +EXPECT "Y" processed_changelogs "/tmp/scratch_v1/.processed" +TEST rm $CHANGELOG_BIN_PATH/test-changelog-api +rm -rf /tmp/scratch_v1 + +cleanup; diff --git a/tests/basic/changelog/changelog-history.t b/tests/basic/changelog/changelog-history.t new file mode 100644 index 00000000000..ea952619652 --- /dev/null +++ b/tests/basic/changelog/changelog-history.t @@ -0,0 +1,91 @@ +#!/bin/bash +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../env.rc + +cleanup; + +SCRIPT_TIMEOUT=300 +HISTORY_BIN_PATH=$(dirname $0)/../../utils/changelog +build_tester $HISTORY_BIN_PATH/get-history.c -lgfchangelog + +time_before_enable1=$(date '+%s') +CHANGELOG_PATH_0="$B0/${V0}0/.glusterfs/changelogs" +ROLLOVER_TIME=2 + +TEST glusterd +TEST pidof glusterd + +sleep 3 +time_before_enable2=$(date '+%s') + +sleep 3 +TEST $CLI volume create $V0 $H0:$B0/${V0}0 +TEST $CLI volume set $V0 changelog.changelog on +TEST $CLI volume set $V0 changelog.rollover-time $ROLLOVER_TIME +TEST $CLI volume start $V0 + +sleep 3 +time_after_enable1=$(date '+%s') + +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0; +touch $M0/file{1..10} + +sleep 3 +time_after_enable2=$(date '+%s') + +let time_future=time_after_enable2+600 + +#Fails as start falls before changelog enable +EXPECT "-3" $HISTORY_BIN_PATH/get-history $time_before_enable1 $time_before_enable2 + +#Fails as start falls before changelog enable +EXPECT "-3" $HISTORY_BIN_PATH/get-history $time_before_enable2 $time_after_enable1 + +#Passes as start and end falls in same htime file +EXPECT "0" $HISTORY_BIN_PATH/get-history $time_after_enable1 $time_after_enable2 + +#Passes, gives the changelogs till continuous changelogs are available +# but returns 1 +EXPECT "1" $HISTORY_BIN_PATH/get-history $time_after_enable2 $time_future + +#Disable and enable changelog +TEST $CLI volume set $V0 changelog.changelog off +sleep 6 +time_between_htime=$(date '+%s') +sleep 6 +TEST $CLI volume set $V0 changelog.changelog on + +sleep 6 +touch $M0/test{1..10} +time_in_sec_htime1=$(date '+%s') + +sleep 6 +touch $M0/test1{1..10} +time_in_sec_htime2=$(date '+%s') + +sleep 3 +TEST $CLI volume set $V0 changelog.changelog off +sleep 3 +time_after_disable=$(date '+%s') + +TEST $CLI volume set $V0 changelog.changelog on +sleep 5 + +#Passes, gives the changelogs till continuous changelogs are available +# but returns 1 +EXPECT_WITHIN 10 "1" $HISTORY_BIN_PATH/get-history $time_after_enable1 $time_in_sec_htime2 + +#Fails as start falls between htime files +EXPECT_WITHIN 10 "-3" $HISTORY_BIN_PATH/get-history $time_between_htime $time_in_sec_htime1 + +#Passes as start and end falls in same htime file +EXPECT_WITHIN 10 "0" $HISTORY_BIN_PATH/get-history $time_in_sec_htime1 $time_in_sec_htime2 + +#Passes, gives the changelogs till continuous changelogs are available +EXPECT_WITHIN 10 "0" $HISTORY_BIN_PATH/get-history $time_in_sec_htime2 $time_after_disable + +TEST rm $HISTORY_BIN_PATH/get-history +rm -rf /tmp/scratch_v1/* + +cleanup; diff --git a/tests/basic/changelog/changelog-rename.t b/tests/basic/changelog/changelog-rename.t new file mode 100644 index 00000000000..9a0ef527b5b --- /dev/null +++ b/tests/basic/changelog/changelog-rename.t @@ -0,0 +1,44 @@ +#!/bin/bash +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +cleanup; + +CHANGELOG_PATH_0="$B0/${V0}0/.glusterfs/changelogs" +ROLLOVER_TIME=30 + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 $H0:$B0/${V0}0 +TEST $CLI volume set $V0 changelog.changelog on +TEST $CLI volume set $V0 changelog.rollover-time $ROLLOVER_TIME +TEST $CLI volume start $V0 + +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0; +touch $M0/file1 +mv $M0/file1 $M0/rn_file1 +mkdir $M0/dir1 +mv $M0/dir1 $M0/rn_dir1 + +EXPECT "2" check_changelog_op ${CHANGELOG_PATH_0} "RENAME" + +cleanup; + +#####Test on multiple subvolume##### +#==========================================# + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 $H0:$B0/${V0}{0,1} +TEST $CLI volume set $V0 changelog.changelog on +TEST $CLI volume set $V0 changelog.rollover-time $ROLLOVER_TIME +TEST $CLI volume start $V0 + +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0; +touch $M0/gluster_file +mv $M0/gluster_file $M0/rn_gluster_file +mkdir $M0/dir1 +mv $M0/dir1 $M0/rn_dir1 + +EXPECT "2" check_changelog_op ${CHANGELOG_PATH_0} "RENAME" + +cleanup; diff --git a/tests/basic/changelog/history-api.t b/tests/basic/changelog/history-api.t new file mode 100644 index 00000000000..9e63118cef9 --- /dev/null +++ b/tests/basic/changelog/history-api.t @@ -0,0 +1,42 @@ +#!/bin/bash +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../env.rc + +cleanup; + +HISTORY_BIN_PATH=$(dirname $0)/../../utils/changelog +build_tester $HISTORY_BIN_PATH/test-history-api.c -lgfchangelog + +CHANGELOG_PATH_0="$B0/${V0}0/.glusterfs/changelogs" +ROLLOVER_TIME=2 + +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/${V0}0 +TEST $CLI volume set $V0 changelog.changelog on +TEST $CLI volume set $V0 changelog.rollover-time $ROLLOVER_TIME +TEST $CLI volume start $V0 + +sleep 3 +start=$(date '+%s') + +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0; +touch $M0/file{1..10} + +for i in {1..12};do echo "data" > $M0/file$i; sleep 1;done +end=$(date '+%s') +sleep 2 + +#Passes as start and end falls in same htime file +EXPECT "0" $HISTORY_BIN_PATH/test-history-api $start $end + +#Wait for changelogs to be in .processed directory +sleep 2 + +EXPECT "Y" processed_changelogs "/tmp/scratch_v1/.history/.processed" +TEST rm $HISTORY_BIN_PATH/test-history-api +rm -rf /tmp/scratch_v1 + +cleanup; |
