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 | |
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>
-rw-r--r-- | glusterfsd/src/glusterfsd.c | 6 | ||||
-rw-r--r-- | libglusterfs/src/monitoring.c | 2 | ||||
-rw-r--r-- | libglusterfs/src/statedump.c | 2 | ||||
-rwxr-xr-x | tests/basic/first-test.t | 10 | ||||
-rwxr-xr-x | tests/basic/rpc-coverage.sh | 6 | ||||
-rwxr-xr-x | tests/line-coverage/old-protocol.t (renamed from tests/basic/old-protocol.t) | 2 | ||||
-rw-r--r-- | tests/line-coverage/some-features-in-libglusterfs.t | 67 |
7 files changed, 80 insertions, 15 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index f1b7d742fbc..8773f2d8536 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -1672,14 +1672,12 @@ reincarnate(int signum) ctx = glusterfsd_ctx; cmd_args = &ctx->cmd_args; + gf_msg_trace("gluster", 0, "received reincarnate request (sig:HUP)"); + if (cmd_args->volfile_server) { gf_msg("glusterfsd", GF_LOG_INFO, 0, glusterfsd_msg_11, "Fetching the volume file from server..."); ret = glusterfs_volfile_fetch(ctx); - } else { - gf_msg_debug("glusterfsd", 0, - "Not reloading volume specification file" - " on SIGHUP"); } /* Also, SIGHUP should do logrotate */ diff --git a/libglusterfs/src/monitoring.c b/libglusterfs/src/monitoring.c index 6d9bfb14937..45e3d776903 100644 --- a/libglusterfs/src/monitoring.c +++ b/libglusterfs/src/monitoring.c @@ -230,6 +230,8 @@ gf_monitor_metrics(glusterfs_ctx_t *ctx) int fd = 0; char *filepath = NULL, *dumppath = NULL; + gf_msg_trace("monitoring", 0, "received monitoring request (sig:USR2)"); + dumppath = ctx->config.metrics_dumppath; if (dumppath == NULL) { dumppath = GLUSTER_METRICS_DIR; diff --git a/libglusterfs/src/statedump.c b/libglusterfs/src/statedump.c index 0cf80c0f87c..04a7e18ef3b 100644 --- a/libglusterfs/src/statedump.c +++ b/libglusterfs/src/statedump.c @@ -805,6 +805,8 @@ gf_proc_dump_info(int signum, glusterfs_ctx_t *ctx) int brick_count = 0; int len = 0; + gf_msg_trace("dump", 0, "received statedump request (sig:USR1)"); + gf_proc_dump_lock(); if (!ctx) diff --git a/tests/basic/first-test.t b/tests/basic/first-test.t deleted file mode 100755 index 535b269e6b3..00000000000 --- a/tests/basic/first-test.t +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../include.rc - -cat << EOF -This test should run first for http://review.gluster.org/#/c/13439/ and should -be removed once that patch has been merged. -EOF - -TEST true diff --git a/tests/basic/rpc-coverage.sh b/tests/basic/rpc-coverage.sh index 4b6759a59eb..ad145559c41 100755 --- a/tests/basic/rpc-coverage.sh +++ b/tests/basic/rpc-coverage.sh @@ -419,9 +419,15 @@ function test_rmdir() rm -rf $PFX || fail "rm -rf" } +function test_statvfs() +{ + df $DIR 2>&1 || fail "df" +} + function run_tests() { + test_statvfs; test_mkdir; test_create; test_statfs; diff --git a/tests/basic/old-protocol.t b/tests/line-coverage/old-protocol.t index 27a688d3538..3664c79d644 100755 --- a/tests/basic/old-protocol.t +++ b/tests/line-coverage/old-protocol.t @@ -26,6 +26,6 @@ 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)/rpc-coverage.sh $M1 +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; |