]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Add test_crushtool.sh
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 9 Nov 2010 18:13:46 +0000 (10:13 -0800)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 9 Nov 2010 18:15:06 +0000 (10:15 -0800)
Signed-off-by: Colin McCabe <colinm@hq.newdream.net>
src/test/test_crushtool.sh [new file with mode: 0755]
src/test/test_crushtool/need_tree_order.crush [new file with mode: 0644]

diff --git a/src/test/test_crushtool.sh b/src/test/test_crushtool.sh
new file mode 100755 (executable)
index 0000000..3db88b0
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/bash -x
+
+#
+# Test crushtool to make sure that it can handle various crush maps
+#
+
+# Includes
+dir=`dirname $0`
+dir=`readlink -f $dir`
+source $dir/test_common.sh
+setup_tempdir
+cd $dir/..
+
+run_crushtool() {
+        ./crushtool $@ || die "crushtool failed!"
+}
+
+run() {
+        run_crushtool -c $dir/test_crushtool/need_tree_order.crush \
+                -o $TEMPDIR/nto.compiled
+        run_crushtool -d $TEMPDIR/nto.compiled -o $TEMPDIR/nto.conf
+        run_crushtool -c $TEMPDIR/nto.conf -o $TEMPDIR/nto.recompiled
+}
+
+$@
diff --git a/src/test/test_crushtool/need_tree_order.crush b/src/test/test_crushtool/need_tree_order.crush
new file mode 100644 (file)
index 0000000..eabd241
--- /dev/null
@@ -0,0 +1,59 @@
+# begin crush map
+
+# devices
+device 0  device0
+device 1  device1
+device 2  device2
+
+# types
+type 0  device
+type 1  host
+type 2  rack
+type 3  root
+
+# buckets
+ host  host0 {
+       id -1           # do not change unnecessarily
+       alg straw
+       hash 0  # rjenkins1
+       item  device0 weight 1.000
+}
+ host  host1 {
+       id -2           # do not change unnecessarily
+       alg straw
+       hash 0  # rjenkins1
+       item  device1 weight 1.000
+}
+ host  host2 {
+       id -5           # do not change unnecessarily
+       alg straw
+       hash 0  # rjenkins1
+       item  device2 weight 1.000
+}
+ rack  rack0 {
+       id -3           # do not change unnecessarily
+       alg straw
+       hash 0  # rjenkins1
+       item  host0 weight 1.000
+       item  host1 weight 1.000
+       item  host2 weight 1.000
+}
+ root  root {
+       id -4           # do not change unnecessarily
+       alg straw
+       hash 0  # rjenkins1
+       item  rack0 weight 4.000
+}
+
+# rules
+rule  data {
+       ruleset 1
+       type replicated
+       min_size 2
+       max_size 2
+       step take  root
+       step chooseleaf firstn 0 type  rack
+       step emit
+}
+
+# end crush map