From 3e7220e4eb093906e659f2cd5abf9807ae24bd96 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Thu, 8 Mar 2012 02:12:50 +0200 Subject: [PATCH] Enhance the offline tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds new offline tests: - checks that files generated by hspace can be read by hbal/hinfo - checks that hbal handles node groups as expected - checks that enabling multiple backends results in failure - checks hspace machine readable code and higher verbosity - enables a "FAIL" message on error exit Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: RenΓ© Nussbaumer <rn@google.com> --- htools/offline-test.sh | 69 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/htools/offline-test.sh b/htools/offline-test.sh index 25a1e2394..28a5ad206 100755 --- a/htools/offline-test.sh +++ b/htools/offline-test.sh @@ -24,13 +24,76 @@ set -e . $(dirname $0)/cli-tests-defs.sh -echo -n "Checking command line basic options " +T=`mktemp -d` +trap 'rm -rf $T' EXIT +trap 'echo FAIL' ERR +echo Using $T as temporary dir + +echo Checking command line basic options for prog in $ALL_ROLES; do - echo -n "." $prog --version >/dev/null $prog --help >/dev/null ! $prog --no-such-option 2>/dev/null done -echo +echo OK + +echo Checking missing backend failure +for prog in hspace hinfo hbal; do + ! $prog 2>/dev/null +done +echo OK + +echo Checking hail missing input file +! hail 2>/dev/null +echo OK + +echo Checking extra arguments +for prog in hspace hbal hinfo; do + ! $prog unexpected-argument 2>&1 | \ + grep -q "Error: this program doesn't take any arguments" +done +echo OK + +echo Checking failure on multiple backends +(! hbal -t /dev/null -m localhost 2>&1 ) | \ + grep -q "Error: Only one of the rapi, luxi, and data files options should be given." +echo OK + +echo Checking hspace machine-readable mode +hspace --simu p,4,8T,64g,16 --machine-readable \ + --disk-template drbd -l 8 >$T/capacity +( . $T/capacity && test "$HTS_OK" = "1" ) +echo OK + +echo Checking hspace simulation to hinfo to hbal +# this cluster spec should be fine +hspace --simu p,4,8T,64g,16 -S $T/simu-onegroup \ + --disk-template drbd -l 8 -v -v -v >/dev/null 2>&1 +# results in .tiered and .standard +for suffix in standard tiered; do + BACKEND="-t$T/simu-onegroup.$suffix" + hinfo -v -v -p --print-instances $BACKEND >/dev/null 2>&1 + hbal -v -v -p --print-instances $BACKEND >/dev/null 2>&1 + # hbal should not be able to balance + hbal $BACKEND | grep -qE "(Nothing to do, exiting|No solution found)" +done +echo OK + +echo Checking hinfo and hbal on multi-nodegroup +hspace --simu p,4,8T,64g,16 --simu p,4,8T,64g,16 \ + -S $T/simu-twogroups --disk-template drbd -l 8 >/dev/null 2>&1 +# results in .tiered and .standard +for suffix in standard tiered; do + BACKEND="-t$T/simu-twogroups.$suffix" + hinfo -v -v -p --print-instances $BACKEND >/dev/null 2>&1 + ! hbal $BACKEND >/dev/null 2>&1 + # hbal should not be able to balance + ! hbal $BACKEND 2>&1 | grep -q "Found multiple node groups" + # but hbal should be able to balance one node group + hbal $BACKEND -G group-01 >/dev/null + # and it should not find an invalid group + ! hbal $BACKEND -G no-such-group >/dev/null 2>&1 +done +echo OK echo All OK -- GitLab