Statistics
| Branch: | Tag: | Revision:

root / test / hs / offline-test.sh @ a93e5814

History | View | Annotate | Download (3.6 kB)

1
#!/bin/bash
2

    
3
# Copyright (C) 2012 Google Inc.
4

    
5
# This program is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 2 of the License, or
8
# (at your option) any later version.
9

    
10
# This program is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
# General Public License for more details.
14

    
15
# You should have received a copy of the GNU General Public License
16
# along with this program; if not, write to the Free Software
17
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18
# 02110-1301, USA.
19

    
20
# This is an offline testing script for most/all of the htools
21
# programs, checking basic command line functionality.
22

    
23
set -e
24
set -o pipefail
25

    
26
. $(dirname $0)/cli-tests-defs.sh
27

    
28
echo Running offline htools tests
29

    
30
export T=`mktemp -d`
31
trap 'rm -rf $T' EXIT
32
trap 'echo FAIL to build test files' ERR
33
echo Using $T as temporary dir
34

    
35
echo -n Generating hspace simulation data for hinfo and hbal...
36
# this cluster spec should be fine
37
./test/hs/hspace --simu p,4,8T,64g,16 -S $T/simu-onegroup \
38
  --disk-template drbd -l 8 -v -v -v >/dev/null 2>&1
39
echo OK
40

    
41
echo -n Generating hinfo and hbal test files for multi-group...
42
./test/hs/hspace --simu p,4,8T,64g,16 --simu p,4,8T,64g,16 \
43
  -S $T/simu-twogroups --disk-template drbd -l 8 >/dev/null 2>&1
44
echo OK
45

    
46
echo -n Generating test files for rebalancing...
47
# we generate a cluster with two node groups, one with unallocable
48
# policy, then we change all nodes from this group to the allocable
49
# one, and we check for rebalancing
50
FROOT="$T/simu-rebal-orig"
51
./test/hs/hspace --simu u,4,8T,64g,16 --simu p,4,8T,64g,16 \
52
  -S $FROOT --disk-template drbd -l 8 >/dev/null 2>&1
53
for suffix in standard tiered; do
54
  RELOC="$T/simu-rebal-merged.$suffix"
55
  # this relocates the nodes
56
  sed -re 's/^(node-.*|fake-uuid-)-02(|.*)/\1-01\2/' \
57
    < $FROOT.$suffix > $RELOC
58
done
59
export BACKEND_BAL_STD="-t$T/simu-rebal-merged.standard"
60
export BACKEND_BAL_TIER="-t$T/simu-rebal-merged.tiered"
61
echo OK
62

    
63
# For various tests
64
export BACKEND_DYNU="-t $T/simu-onegroup.standard"
65
export BACKEND_EXCL="-t $T/simu-onegroup.standard"
66

    
67
echo -n Generating data files for IAllocator checks...
68
for evac_mode in primary-only secondary-only all; do
69
  sed -e 's/"evac_mode": "all"/"evac_mode": "'${evac_mode}'"/' \
70
    -e 's/"spindles": [0-9]\+,//' \
71
    < $TESTDATA_DIR/hail-node-evac.json \
72
    > $T/hail-node-evac.json.$evac_mode
73
done
74
for bf in hail-alloc-drbd hail-alloc-invalid-twodisks hail-alloc-twodisks \
75
  hail-change-group hail-node-evac hail-reloc-drbd hail-alloc-spindles; do
76
  f=$bf.json
77
  sed -e 's/"exclusive_storage": false/"exclusive_storage": true/' \
78
    < $TESTDATA_DIR/$f > $T/$f.excl-stor
79
  sed -e 's/"exclusive_storage": false/"exclusive_storage": true/' \
80
    -e 's/"spindles": [0-9]\+,//' \
81
    < $TESTDATA_DIR/$f > $T/$f.fail-excl-stor
82
done
83
echo OK
84

    
85
echo -n Checking file-based RAPI...
86
mkdir -p $T/hscan
87
export RAPI_URL="file://$TESTDATA_DIR/rapi"
88
./test/hs/hscan -d $T/hscan/ -p -v -v $RAPI_URL >/dev/null 2>&1
89
# check that we file parsing is correct, i.e. hscan saves correct text
90
# files, and is idempotent (rapi+text == rapi); more is tested in
91
# shelltest later
92
RAPI_TXT="$(ls $T/hscan/*.data|head -n1)"
93
./test/hs/hinfo -p --print-instances -m $RAPI_URL > $T/hscan/direct.hinfo 2>&1
94
./test/hs/hinfo -p --print-instances -t $RAPI_TXT > $T/hscan/fromtext.hinfo 2>&1
95
echo OK
96

    
97
echo Running shelltest...
98

    
99
shelltest $SHELLTESTARGS \
100
  ${TOP_SRCDIR:-.}/test/hs/shelltests/htools-*.test \
101
  -- --hide-successes
102

    
103
echo All OK