From: jeremie.galarneau@efficios.com (Jérémie Galarneau)
Subject: [lttng-dev] [PATCH lttng-tools 09/10] test: kernel tracing destroy flush behavior with tracefile rotation
Date: Thu, 19 May 2016 00:45:58 -0400 [thread overview]
Message-ID: <CA+jJMxs4qJaXYNBPsDU8j-1UoUnMuKjhmzgBZfDr-eOmOsLFsA@mail.gmail.com> (raw)
In-Reply-To: <1463594659-10964-10-git-send-email-mathieu.desnoyers@efficios.com>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 6462 bytes --]
Merged, thanks!
Jérémie
On Wed, May 18, 2016 at 2:04 PM, Mathieu Desnoyers
<mathieu.desnoyers at efficios.com> wrote:
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> ---
> tests/regression/kernel/Makefile.am | 3 +-
> .../regression/kernel/test_rotation_destroy_flush | 153 +++++++++++++++++++++
> tests/root_regression | 1 +
> 3 files changed, 156 insertions(+), 1 deletion(-)
> create mode 100755 tests/regression/kernel/test_rotation_destroy_flush
>
> diff --git a/tests/regression/kernel/Makefile.am b/tests/regression/kernel/Makefile.am
> index ca73ed4..a8c397a 100644
> --- a/tests/regression/kernel/Makefile.am
> +++ b/tests/regression/kernel/Makefile.am
> @@ -1,4 +1,5 @@
> -EXTRA_DIST = test_event_basic test_all_events test_syscall test_clock_override
> +EXTRA_DIST = test_event_basic test_all_events test_syscall \
> + test_clock_override test_rotation_destroy_flush
>
> all-local:
> @if [ x"$(srcdir)" != x"$(builddir)" ]; then \
> diff --git a/tests/regression/kernel/test_rotation_destroy_flush b/tests/regression/kernel/test_rotation_destroy_flush
> new file mode 100755
> index 0000000..0b0b0ca
> --- /dev/null
> +++ b/tests/regression/kernel/test_rotation_destroy_flush
> @@ -0,0 +1,153 @@
> +#!/bin/bash
> +#
> +# Copyright (C) - 2013 Christian Babeux <christian.babeux at efficios.com>
> +# Copyright (C) - 2014, 2016 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> +#
> +# This program is free software; you can redistribute it and/or modify it
> +# under the terms of the GNU General Public License, version 2 only, as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it will be useful, but WITHOUT
> +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
> +# more details.
> +#
> +# You should have received a copy of the GNU General Public License along with
> +# this program; if not, write to the Free Software Foundation, Inc., 51
> +# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> +
> +TEST_DESC="Kernel tracer - Rotation destroy flush"
> +
> +CURDIR=$(dirname $0)/
> +TESTDIR=$CURDIR/../..
> +SESSION_NAME="rotation_destroy_flush"
> +
> +NR_ITER=10
> +NUM_TESTS=$((13*$NR_ITER))
> +EVENT_NAME="lttng_test_filter_event"
> +CHANNEL_NAME="testchan"
> +PAGE_SIZE=$(getconf PAGE_SIZE)
> +SIZE_LIMIT=$PAGE_SIZE
> +
> +TESTCMD="echo -n 10000 > /proc/lttng-test-filter-event"
> +
> +# Ensure the daemons invoke abort on error.
> +export LTTNG_ABORT_ON_ERROR=1
> +
> +source $TESTDIR/utils/utils.sh
> +
> +function signal_cleanup()
> +{
> + diag "*** Exiting ***"
> + rmmod lttng-test
> + stop_lttng_sessiond
> + exit 1
> +}
> +
> +function enable_kernel_lttng_channel_size_limit ()
> +{
> + sess_name="$1"
> + channel_name="$2"
> + tracefile_size_limit="$3"
> +
> + test_name="Enable channel $channel_name "
> + test_name+="for session $sess_name: "
> + test_name+="$tracefile_size_limit bytes tracefile limit"
> +
> + $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel \
> + -k $channel_name -s $sess_name \
> + -C $tracefile_size_limit >/dev/null 2>&1
> +
> + ok $? "$test_name"
> +}
> +
> +function enable_kernel_lttng_event_per_channel ()
> +{
> + sess_name="$1"
> + event_name="$2"
> + channel_name="$3"
> +
> + test_name="Enable event $event_name "
> + test_name+="for session $sess_name "
> + test_name+="in channel $channel_name"
> +
> + $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" \
> + -s $sess_name -k -c $channel_name >/dev/null 2>&1
> +
> + ok $? "$test_name"
> +}
> +
> +function test_rotation_destroy_flush_single()
> +{
> + start_lttng_sessiond
> + modprobe lttng-test
> +
> + create_lttng_session_ok $SESSION_NAME $TRACE_PATH
> + enable_kernel_lttng_channel_size_limit \
> + $SESSION_NAME $CHANNEL_NAME $SIZE_LIMIT
> + enable_kernel_lttng_event_per_channel \
> + $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
> + start_lttng_tracing_ok $SESSION_NAME
> + eval ${TESTCMD}
> + # stop and destroy
> + stop_lttng_tracing_ok $SESSION_NAME
> + destroy_lttng_session_ok $SESSION_NAME
> +
> + rm -rf $TRACE_PATH
> +
> + create_lttng_session_ok $SESSION_NAME $TRACE_PATH
> + enable_kernel_lttng_channel_size_limit \
> + $SESSION_NAME $CHANNEL_NAME $SIZE_LIMIT
> + enable_kernel_lttng_event_per_channel \
> + $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
> + start_lttng_tracing_ok $SESSION_NAME
> + eval ${TESTCMD}
> + # destroy only
> + destroy_lttng_session_ok $SESSION_NAME
> +
> + rm -rf $TRACE_PATH
> +
> + rmmod lttng-test
> + stop_lttng_sessiond
> +}
> +
> +function test_rotation_destroy_flush()
> +{
> + for a in $(seq 1 ${NR_ITER}); do
> + diag "Iteration ${a}/${NR_ITER}"
> + test_rotation_destroy_flush_single
> + done
> +}
> +
> +# MUST set TESTDIR before calling those functions
> +plan_tests $NUM_TESTS
> +
> +print_test_banner "$TEST_DESC"
> +
> +TESTS=(
> + "test_rotation_destroy_flush"
> +)
> +
> +TEST_COUNT=${#TESTS[@]}
> +i=0
> +
> +if [ "$(id -u)" == "0" ]; then
> + isroot=1
> +else
> + isroot=0
> +fi
> +
> +skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
> +{
> + trap signal_cleanup SIGTERM SIGINT
> +
> + while [ "$i" -lt "$TEST_COUNT" ]; do
> +
> + TRACE_PATH=$(mktemp -d)
> +
> + # Execute test
> + ${TESTS[$i]}
> +
> + let "i++"
> + done
> +}
> diff --git a/tests/root_regression b/tests/root_regression
> index 4655c09..2981dc6 100644
> --- a/tests/root_regression
> +++ b/tests/root_regression
> @@ -2,6 +2,7 @@ regression/kernel/test_all_events
> regression/kernel/test_event_basic
> regression/kernel/test_syscall
> regression/kernel/test_clock_override
> +regression/kernel/test_rotation_destroy_flush
> regression/tools/live/test_kernel
> regression/tools/live/test_lttng_kernel
> regression/tools/streaming/test_high_throughput_limits
> --
> 2.1.4
>
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
next prev parent reply other threads:[~2016-05-19 4:45 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-18 18:04 [lttng-dev] [PATCH lttng-tools 00/10] Fix: tracefile rotation rm-after-destroy race Mathieu Desnoyers
2016-05-18 18:04 ` [lttng-dev] [PATCH lttng-tools 06/10] Fix: error.h: add missing parenthesis around macro parameter Mathieu Desnoyers
2016-05-19 4:13 ` Jérémie Galarneau
2016-05-18 18:04 ` [lttng-dev] [PATCH lttng-tools 07/10] Fix: WARN() should print as WARN level, not ERR Mathieu Desnoyers
2016-05-19 4:14 ` Jérémie Galarneau
2016-05-18 18:04 ` [lttng-dev] [PATCH lttng-tools 08/10] Add environment variable to allow abort on error Mathieu Desnoyers
2016-05-19 4:45 ` Jérémie Galarneau
2016-05-18 18:04 ` [lttng-dev] [PATCH lttng-tools 09/10] test: kernel tracing destroy flush behavior with tracefile rotation Mathieu Desnoyers
2016-05-19 4:45 ` Jérémie Galarneau [this message]
2016-05-18 18:04 ` [lttng-dev] [PATCH lttng-tools 10/10] test: UST " Mathieu Desnoyers
2016-05-19 4:46 ` Jérémie Galarneau
[not found] ` <1463594659-10964-2-git-send-email-mathieu.desnoyers@efficios.com>
2016-05-19 2:57 ` [lttng-dev] [PATCH lttng-tools 01/10] Fix: bad file descriptors on close after rotation error Jérémie Galarneau
[not found] ` <1463594659-10964-3-git-send-email-mathieu.desnoyers@efficios.com>
2016-05-19 4:09 ` [lttng-dev] [PATCH lttng-tools 02/10] Fix: UST should not generate packet at destroy after stop Jérémie Galarneau
[not found] ` <1463594659-10964-4-git-send-email-mathieu.desnoyers@efficios.com>
2016-05-19 4:09 ` [lttng-dev] [PATCH lttng-tools 03/10] Fix: kernel tracing: flush " Jérémie Galarneau
[not found] ` <1463594659-10964-5-git-send-email-mathieu.desnoyers@efficios.com>
2016-05-19 4:12 ` [lttng-dev] [PATCH lttng-tools 04/10] Fix: ust-consumer: flush empty packets on snapshot channel Jérémie Galarneau
[not found] ` <1463594659-10964-6-git-send-email-mathieu.desnoyers@efficios.com>
2016-05-19 4:12 ` [lttng-dev] [PATCH lttng-tools 05/10] Fix: bogus mask on error.h PRINT types Jérémie Galarneau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CA+jJMxs4qJaXYNBPsDU8j-1UoUnMuKjhmzgBZfDr-eOmOsLFsA@mail.gmail.com \
--to=jeremie.galarneau@efficios.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox