summaryrefslogtreecommitdiffstats
path: root/tests/basic/distribute
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basic/distribute')
-rw-r--r--tests/basic/distribute/rebal-all-nodes-migrate.t144
-rw-r--r--tests/basic/distribute/spare_file_rebalance.t51
2 files changed, 51 insertions, 144 deletions
diff --git a/tests/basic/distribute/rebal-all-nodes-migrate.t b/tests/basic/distribute/rebal-all-nodes-migrate.t
deleted file mode 100644
index acc4ffefecc..00000000000
--- a/tests/basic/distribute/rebal-all-nodes-migrate.t
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/bin/bash
-
-. $(dirname $0)/../../include.rc
-. $(dirname $0)/../../cluster.rc
-. $(dirname $0)/../../dht.rc
-
-
-# Check if every single rebalance process migrated some files
-
-function cluster_rebal_all_nodes_migrated_files {
- val=0
- a=$($CLI_1 volume rebalance $V0 status | grep "completed" | awk '{print $2}');
-# echo $a
- b=($a)
- for i in "${b[@]}"
- do
-# echo "$i";
- if [ "$i" -eq "0" ]; then
- echo "false";
- val=1;
- fi
- done
- echo $val
-}
-
-cleanup
-
-TEST launch_cluster 3;
-TEST $CLI_1 peer probe $H2;
-TEST $CLI_1 peer probe $H3;
-EXPECT_WITHIN $PROBE_TIMEOUT 2 peer_count
-
-
-#Start with a pure distribute volume (multiple bricks on the same node)
-TEST $CLI_1 volume create $V0 $H1:$B1/dist1 $H1:$B1/dist2 $H2:$B2/dist3 $H2:$B2/dist4
-
-TEST $CLI_1 volume start $V0
-$CLI_1 volume info $V0
-
-#TEST $CLI_1 volume set $V0 client-log-level DEBUG
-
-## Mount FUSE
-TEST glusterfs -s $H1 --volfile-id $V0 $M0;
-
-TEST mkdir $M0/dir1 2>/dev/null;
-TEST touch $M0/dir1/file-{1..500}
-
-## Add-brick and run rebalance to force file migration
-TEST $CLI_1 volume add-brick $V0 $H1:$B1/dist5 $H2:$B2/dist6
-
-#Start a rebalance
-TEST $CLI_1 volume rebalance $V0 start force
-
-#volume rebalance status should work
-#TEST $CLI_1 volume rebalance $V0 status
-#$CLI_1 volume rebalance $V0 status
-
-EXPECT_WITHIN $REBALANCE_TIMEOUT "0" cluster_rebalance_completed
-EXPECT "0" cluster_rebal_all_nodes_migrated_files
-$CLI_1 volume rebalance $V0 status
-
-
-TEST umount -f $M0
-TEST $CLI_1 volume stop $V0
-TEST $CLI_1 volume delete $V0
-
-
-##############################################################
-
-# Next, a dist-rep volume
-TEST $CLI_1 volume create $V0 replica 2 $H1:$B1/drep1 $H2:$B2/drep1 $H1:$B1/drep2 $H2:$B2/drep2
-
-TEST $CLI_1 volume start $V0
-$CLI_1 volume info $V0
-
-#TEST $CLI_1 volume set $V0 client-log-level DEBUG
-
-## Mount FUSE
-TEST glusterfs -s $H1 --volfile-id $V0 $M0;
-
-TEST mkdir $M0/dir1 2>/dev/null;
-TEST touch $M0/dir1/file-{1..500}
-
-## Add-brick and run rebalance to force file migration
-TEST $CLI_1 volume add-brick $V0 replica 2 $H1:$B1/drep3 $H2:$B2/drep3
-
-#Start a rebalance
-TEST $CLI_1 volume rebalance $V0 start force
-
-#volume rebalance status should work
-#TEST $CLI_1 volume rebalance $V0 status
-#$CLI_1 volume rebalance $V0 status
-
-EXPECT_WITHIN $REBALANCE_TIMEOUT "0" cluster_rebalance_completed
-#EXPECT "0" cluster_rebal_all_nodes_migrated_files
-$CLI_1 volume rebalance $V0 status
-
-
-TEST umount -f $M0
-TEST $CLI_1 volume stop $V0
-TEST $CLI_1 volume delete $V0
-
-##############################################################
-
-# Next, a disperse volume
-TEST $CLI_1 volume create $V0 disperse 3 $H1:$B1/ec1 $H2:$B1/ec2 $H3:$B1/ec3 force
-
-TEST $CLI_1 volume start $V0
-$CLI_1 volume info $V0
-
-#TEST $CLI_1 volume set $V0 client-log-level DEBUG
-
-## Mount FUSE
-TEST glusterfs -s $H1 --volfile-id $V0 $M0;
-
-TEST mkdir $M0/dir1 2>/dev/null;
-TEST touch $M0/dir1/file-{1..500}
-
-## Add-brick and run rebalance to force file migration
-TEST $CLI_1 volume add-brick $V0 $H1:$B2/ec4 $H2:$B2/ec5 $H3:$B2/ec6
-
-#Start a rebalance
-TEST $CLI_1 volume rebalance $V0 start force
-
-#volume rebalance status should work
-#TEST $CLI_1 volume rebalance $V0 status
-#$CLI_1 volume rebalance $V0 status
-
-EXPECT_WITHIN $REBALANCE_TIMEOUT "0" cluster_rebalance_completed
-
-# this will not work unless EC is changed to return all node-uuids
-# comment this out once that patch is ready
-#EXPECT "0" cluster_rebal_all_nodes_migrated_files
-$CLI_1 volume rebalance $V0 status
-
-
-TEST umount -f $M0
-TEST $CLI_1 volume stop $V0
-TEST $CLI_1 volume delete $V0
-
-##############################################################
-
-cleanup
-#G_TESTDEF_TEST_STATUS_NETBSD7=1501388
diff --git a/tests/basic/distribute/spare_file_rebalance.t b/tests/basic/distribute/spare_file_rebalance.t
new file mode 100644
index 00000000000..061c02f7392
--- /dev/null
+++ b/tests/basic/distribute/spare_file_rebalance.t
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+. $(dirname $0)/../../include.rc
+. $(dirname $0)/../../volume.rc
+. $(dirname $0)/../../dht.rc
+
+# Initialize
+#------------------------------------------------------------
+cleanup;
+
+# Start glusterd
+TEST glusterd;
+TEST pidof glusterd;
+TEST $CLI volume info;
+
+# Create a volume
+TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2};
+
+# Verify volume creation
+EXPECT "$V0" volinfo_field $V0 'Volume Name';
+EXPECT 'Created' volinfo_field $V0 'Status';
+
+# Start volume and verify successful start
+TEST $CLI volume start $V0;
+EXPECT 'Started' volinfo_field $V0 'Status';
+TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 --entry-timeout=0 $M0;
+
+#------------------------------------------------------------
+
+# Test case - Create sparse files on MP and verify
+# file info after rebalance
+#------------------------------------------------------------
+
+# Create some sparse files and get their size
+TEST cd $M0;
+dd if=/dev/urandom of=sparse_file bs=10k count=1 seek=2M
+cp --sparse=always sparse_file sparse_file_3;
+
+# Add a 3rd brick
+TEST $CLI volume add-brick $V0 $H0:$B0/${V0}3;
+
+# Trigger rebalance
+TEST $CLI volume rebalance $V0 start force;
+EXPECT_WITHIN $REBALANCE_TIMEOUT "0" rebalance_completed;
+
+# Compare original and rebalanced files
+TEST cd $B0/${V0}2
+TEST cmp sparse_file $B0/${V0}3/sparse_file_3
+EXPECT_WITHIN 30 "";
+
+cleanup;