From 71caf1423fe5f0eed652210f8158c95fc8a10219 Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Fri, 12 Apr 2019 08:16:56 +0530 Subject: 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 --- .../line-coverage/some-features-in-libglusterfs.t | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 tests/line-coverage/some-features-in-libglusterfs.t (limited to 'tests/line-coverage/some-features-in-libglusterfs.t') 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; -- cgit