Skip to content

Commit

Permalink
tests: Add initial sanity checks to the GlusterFS Test Framework
Browse files Browse the repository at this point in the history
BUG: 1073168
Change-Id: I0b995d94fe83053d3294df1b5fad2eef3b4355d3
Signed-off-by: Justin Clift <justin@gluster.org>
Reviewed-on: http://review.gluster.org/7193
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
  • Loading branch information
justinclift authored and vbellur committed Mar 10, 2014
1 parent dec7950 commit bed3fcd
Showing 1 changed file with 99 additions and 4 deletions.
103 changes: 99 additions & 4 deletions run-tests.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,98 @@
#!/bin/bash
# Copyright (c) 2013 Red Hat, Inc. <http://www.redhat.com>
# Copyright (c) 2013-2014 Red Hat, Inc. <http://www.redhat.com>
#

function _init()
function check_dependencies()
{
## Check all dependencies are present
MISSING=""

# Check for dbench
if [ ! -x /usr/bin/dbench ]; then
MISSING="$MISSING dbench"
fi

# Check for git
env git --version > /dev/null 2>&1
if [ $? -ne 0 ]; then
MISSING="$MISSING git"
fi

# Check for mock
if [ ! -e /usr/bin/mock ]; then
MISSING="$MISSING mock"
fi

# Check for nfs-utils
env mount.nfs -V > /dev/null 2>&1
if [ $? -ne 0 ]; then
MISSING="$MISSING nfs-utils"
fi

# Check for the Perl Test Harness
env prove --version > /dev/null 2>&1
if [ $? -ne 0 ]; then
MISSING="$MISSING perl-Test-Harness"
fi

# Check for XFS programs
env mkfs.xfs -V > /dev/null 2>&1
if [ $? -ne 0 ]; then
MISSING="$MISSING xfsprogs"
fi

# Check for attr
env getfattr --version > /dev/null 2>&1
if [ $? -ne 0 ]; then
MISSING="$MISSING attr"
fi

## If dependencies are missing, warn the user and abort
if [ "x$MISSING" != "x" ]; then
echo "Aborting."
echo
echo "The following required tools are missing:"
echo
for pkg in $MISSING; do
echo " * $pkg"
done
echo
echo "Please install them and try again."
echo
exit 2
fi
}

function check_location()
{
regression_testsdir=$(dirname $0);

if [ ! -f ${regression_testsdir}/tests/include.rc ]; then
echo "Seems like GlusterFS quality tests are corrupted..aborting!!"
echo "Aborting."
echo
echo "The tests/ subdirectory seems to be missing."
echo
echo "Please correct the problem and try again."
echo
exit 1
fi
}

function check_user()
{
# If we're not running as root, warn the user and abort
MYUID=`/usr/bin/id -u`
if [ 0${MYUID} -ne 0 ]; then
echo "Aborting."
echo
echo "The GlusterFS Test Framework must be run as root."
echo
echo "Please change to the root user and try again."
echo
exit 3
fi
}

function main()
{
if [ $# -lt 1 ]; then
Expand All @@ -27,4 +108,18 @@ function main()
fi
}

_init "$@" && main "$@"
echo
echo ... GlusterFS Test Framework ...
echo

# Make sure we're running as the root user
check_user

# Make sure the needed programs are available
check_dependencies

# Check we're running from the right location
check_location

# Run the tests
main "$@"

0 comments on commit bed3fcd

Please sign in to comment.