diff options
author | Amar Tumballi <amarts@redhat.com> | 2019-04-12 08:16:56 +0530 |
---|---|---|
committer | Xavi Hernandez <xhernandez@redhat.com> | 2019-05-30 07:32:34 +0000 |
commit | 71caf1423fe5f0eed652210f8158c95fc8a10219 (patch) | |
tree | f4a226040e3105df6c3ecb690244ed3236cd8556 /tests/line-coverage | |
parent | bfe58919c03ea746aa6c7800fe698b15ca8c6ecb (diff) |
tests: add tests for different signal handling
Also some cleanup:
* old-protocol.t was actually added to make sure we have line-coverage
* first-test.t should have been removed as per the comment. It doesn't do anything.
* add statvfs to rpc-coverage so we can cover statvfs in few xlators.
updates: bz#1693692
Change-Id: Ie8651ce007de484c4abced16b4de765aa5e517be
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'tests/line-coverage')
-rwxr-xr-x | tests/line-coverage/old-protocol.t | 31 | ||||
-rw-r--r-- | tests/line-coverage/some-features-in-libglusterfs.t | 67 |
2 files changed, 98 insertions, 0 deletions
diff --git a/tests/line-coverage/old-protocol.t b/tests/line-coverage/old-protocol.t new file mode 100755 index 00000000000..3664c79d644 --- /dev/null +++ b/tests/line-coverage/old-protocol.t @@ -0,0 +1,31 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume info; + +TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{1,2,3,4,5,6}; + +EXPECT "$V0" volinfo_field $V0 'Volume Name'; +EXPECT 'Created' volinfo_field $V0 'Status'; +EXPECT '6' brick_count $V0 + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +file="/var/lib/glusterd/vols/$V0/trusted-$V0.tcp-fuse.vol" +sed -i -e 's$send-gids true$send-gids true\n option testing.old-protocol true$g' $file + +## Mount FUSE +TEST $GFS -s $H0 --volfile-id $V0 $M1; + +## TODO: best way to increase coverage is to have a gfapi program +## which covers maximum fops +TEST $(dirname $0)/../basic/rpc-coverage.sh $M1 + +cleanup; diff --git a/tests/line-coverage/some-features-in-libglusterfs.t b/tests/line-coverage/some-features-in-libglusterfs.t new file mode 100644 index 00000000000..5719c4e039c --- /dev/null +++ b/tests/line-coverage/some-features-in-libglusterfs.t @@ -0,0 +1,67 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +function grep_string { + local f=$1 + local string=$2 + # The output of test script also shows up in log. Ignore them. + echo $(grep ${string} ${f} | grep -v "++++++" | wc -l) +} + +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume info; + +TEST $CLI volume create $V0 $H0:$B0/${V0} +TEST $CLI volume set $V0 client-log-level TRACE +TEST $CLI volume start $V0; + +log_file="$(gluster --print-logdir)/gluster.log" +## Mount FUSE +TEST $GFS -s $H0 --log-file $log_file --volfile-id $V0 $M1 + +## Cover 'monitoring.c' here +pgrep 'glusterfs' | xargs kill -USR2 + +EXPECT_WITHIN 2 1 grep_string $log_file 'sig:USR2' + +## Also cover statedump +pgrep 'glusterfs' | xargs kill -USR1 + +EXPECT_WITHIN 2 1 grep_string $log_file 'sig:USR1' + +## Also cover SIGHUP +pgrep 'glusterfs' | xargs kill -HUP + +EXPECT_WITHIN 2 1 grep_string $log_file 'sig:HUP' + +## Also cover SIGTERM +pgrep 'glusterfs' | xargs kill -TERM + +EXPECT_WITHIN 2 1 grep_string $log_file 'cleanup_and_exit' + +# Previous call should make umount of the process. +# force_umount $M1 + +# TODO: below section is commented out, mainly as our regression treats the test +# as failure because sending ABRT signal will cause the process to dump core. +# Our regression treats the test as failure, if there is a core. +# FIXME: figure out a way to run this test, because this part of the code gets +# executed only when there is coredump, and it is critical for debugging, to +# keep it working always. + +# # Restart client +# TEST $GFS -s $H0 --log-file $log_file --volfile-id $V0 $M1 +# +# ## Also cover SIGABRT +# pgrep 'glusterfs ' | xargs kill -ABRT +# +# TEST [ 1 -eq $(grep 'pending frames' $log_file | wc -l) ] + +TEST rm $log_file + +cleanup; |