1
0
mirror of https://github.com/gluster/gluster-block.git synced 2026-02-06 06:45:30 +01:00
Files
gluster-block/tests/basic.t
Prasanna Kumar Kalever d8fb2f2fa8 create: add tcmur_cmd_time_out option support
Set the tcmur_cmd_time_out=43s as default, which is larger than
each IO's timeout value(default is 30s) in the client/initiator side,
and at the same time it will be larger than 42s, the Gluster ping
timeout.

Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2019-11-14 14:25:41 +05:30

216 lines
6.3 KiB
Bash
Executable File

#!/bin/bash
#********************************************************************#
# #
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com> #
# This file is part of gluster-block. #
# #
# This file is licensed to you under your choice of the GNU Lesser #
# General Public License, version 3 or any later version (LGPLv3 or #
# later), or the GNU General Public License, version 2 (GPLv2), in #
# all cases as published by the Free Software Foundation. #
# #
# #
# Run: (Make sure you have all the dependent binaries installed) #
# $ ./tests/basic.t #
# #
#********************************************************************#
HOST=$(hostname -I | awk '{print $1}')
VOLNAME="hosting-volume"
BLKNAME="block-volume"
SBLKNAME="sblock-volume"
BRKDIR="/brick"
function TEST()
{
echo "TEST : $@"
eval $@
if [ $? -ne 0 ]; then
echo -e "line $(caller | awk '{print $1}') : NOT OK\n"
exit 1;
fi
echo -e "line $(caller | awk '{print $1}') : OK\n"
}
function cleanup()
{
echo -e "\nRunning test cleanup ..."
# Block delete
gluster-block delete ${VOLNAME}/${BLKNAME} --json-pretty
gluster --mode=script vol stop ${VOLNAME}
gluster --mode=script vol del ${VOLNAME}
rm -rf ${BRKDIR}
}
function force_terminate()
{
local ret=$?;
>&2 echo -e "\nreceived external"\
"signal --$(kill -l $ret)--, calling 'cleanup' ...\n";
cleanup;
exit $ret;
}
trap force_terminate INT TERM HUP
pidof glusterd 2>&1 >/dev/null
if [ $? -eq 1 ]; then
TEST glusterd
fi
##### Create Gluster Volume Test Start #####
TEST gluster vol create ${VOLNAME} ${HOST}:${BRKDIR} force
# Start the volume
TEST gluster vol start ${VOLNAME}
##### End #####
##### Gfapi Access Test Start #####
TEST ./tests/gfapi-test ${VOLNAME} ${HOST}
##### End #####
##### Restart gluster-blockd.service Test Start #####
systemctl daemon-reload
TEST systemctl restart gluster-blockd.service
sleep 5
##### End #####
##### gluster-block 'version' and 'help' Test Start #####
TEST gluster-block version
TEST gluster-block help
##### End #####
##### Block 'create' and 'delete' Test Start #####
# Simple block create/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Simple block create/delete with 'timeout' set
TEST gluster-block timeout 350 create ${VOLNAME}/${BLKNAME} ${HOST} 1MiB
TEST gluster-block timeout 350 delete ${VOLNAME}/${BLKNAME}
# Block create with 'auth enable' set/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} auth enable ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Block create with 'auth disable' set/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} auth disable ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Block create with 'ha' set/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} ha 1 ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Block create with 'prealloc full' set/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} prealloc full ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Block create with 'prealloc no' set/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} prealloc no ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Block create with 'ring-buffer' set/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} ring-buffer 32 ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Block create with 'io-timeout' set/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} io-timeout 44 ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Block create with 'block-size' set/delete
TEST gluster-block create ${VOLNAME}/${BLKNAME} block-size 1024 ${HOST} 1MiB
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
# Block create with 'storage' set and delete with 'unlink-storage no' set
TEST gluster-block create ${VOLNAME}/${BLKNAME} ${HOST} 1MiB
LINK=`eval gluster-block info ${VOLNAME}/${BLKNAME} | grep GBID | awk -F' ' '{print $2}'`
TEST gluster-block create ${VOLNAME}/${SBLKNAME} storage ${LINK} ${HOST}
TEST gluster-block delete ${VOLNAME}/${SBLKNAME} unlink-storage no
TEST gluster-block delete ${VOLNAME}/${BLKNAME}
##### End #####
# Block create
TEST gluster-block create ${VOLNAME}/${BLKNAME} ha 1 ${HOST} 1MiB
##### Genconfig Block Test Start #####
TEST gluster-block genconfig ${VOLNAME} enable-tpg ${HOST}
##### End #####
###### Modify Block Test Start #####
# Enable 'auth'
TEST gluster-block modify ${VOLNAME}/${BLKNAME} auth enable
# Increase size 5 times
n=2
while [ $n -le 6 ]
do
TEST gluster-block modify ${VOLNAME}/${BLKNAME} size ${n}MiB
(( n++ ))
sleep 1
done
# Decrease size 5 times
n=5
while [ $n != 0 ]
do
TEST gluster-block modify ${VOLNAME}/${BLKNAME} size ${n}MiB force
(( n-- ))
sleep 1
done
# Disable 'auth'
TEST gluster-block modify ${VOLNAME}/${BLKNAME} auth disable
##### End #####
##### Block 'list' and 'info' Test Start #####
# List blocks
TEST gluster-block list ${VOLNAME}
# Block info
TEST gluster-block info ${VOLNAME}/${BLKNAME}
##### End #####
# Block delete
gluster-block delete ${VOLNAME}/${BLKNAME}
echo -e "\n*** JSON responses ***\n"
# Block create and expect json response
TEST gluster-block create ${VOLNAME}/${BLKNAME} ha 1 ${HOST} 1MiB --json-pretty
# Modify Block with auth enable and expect json response
TEST gluster-block modify ${VOLNAME}/${BLKNAME} auth enable --json-pretty
# Block list and expect json response
TEST gluster-block list ${VOLNAME} --json-pretty
# Block info and expect json response
TEST gluster-block info ${VOLNAME}/${BLKNAME} --json-pretty
# Modify Block with auth disable and expect json response
TEST gluster-block modify ${VOLNAME}/${BLKNAME} auth disable --json-pretty
# Block delete and expect json response
TEST gluster-block delete ${VOLNAME}/${BLKNAME} --json-pretty
# Block create with auth set and expect json response
TEST gluster-block create ${VOLNAME}/${BLKNAME} ha 1 auth enable ${HOST} 1MiB --json-pretty
cleanup;