[ltt-dev] [UST PATCH] New fast-exit test-case
Mathieu Desnoyers
compudj at krystal.dyndns.org
Tue May 17 09:48:56 EDT 2011
* Nils Carlson (nils.carlson at ericsson.com) wrote:
> A fast-exit test-case that just writes one marker and exits,
> tests that the consumer daemon maps the buffers before the
> program exits. Exiting is tested both by normal return
> and by commiting suicide (SIGKILL to self).
>
> Signed-off-by: Nils Carlson <nils.carlson at ericsson.com>
Thanks!
Acked-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> ---
> .gitignore | 1 +
> configure.ac | 1 +
> tests/Makefile.am | 2 +-
> tests/exit-fast/Makefile.am | 5 ++++
> tests/exit-fast/exit-fast.c | 39 +++++++++++++++++++++++++++++++++++
> tests/exit-fast/exit-fast.sh | 46 ++++++++++++++++++++++++++++++++++++++++++
> tests/runtests | 2 +
> 7 files changed, 95 insertions(+), 1 deletions(-)
> create mode 100644 tests/exit-fast/Makefile.am
> create mode 100644 tests/exit-fast/exit-fast.c
> create mode 100755 tests/exit-fast/exit-fast.sh
>
> diff --git a/.gitignore b/.gitignore
> index 4bc3814..5d1d9cd 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -40,3 +40,4 @@ tests/test-nevents/prog
> tests/trace_event/trace_event_test
> tests/tracepoint/benchmark/tracepoint_benchmark
> tests/tracepoint/tracepoint_test
> +tests/exit-fast/exit-fast
> diff --git a/configure.ac b/configure.ac
> index 1f3cb33..00df0c0 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -165,6 +165,7 @@ AC_CONFIG_FILES([
> tests/tracepoint/benchmark/Makefile
> tests/register_test/Makefile
> tests/libustctl_function_tests/Makefile
> + tests/exit-fast/Makefile
> libustinstr-malloc/Makefile
> libustfork/Makefile
> libustconsumer/Makefile
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index e4e06ce..43fb203 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -1,4 +1,4 @@
> -SUBDIRS = . hello hello2 basic basic_long fork simple_include snprintf test-nevents test-libustinstr-malloc dlopen same_line_marker trace_event register_test tracepoint libustctl_function_tests
> +SUBDIRS = . hello hello2 basic basic_long fork simple_include snprintf test-nevents test-libustinstr-malloc dlopen same_line_marker trace_event register_test tracepoint libustctl_function_tests exit-fast
>
> dist_noinst_SCRIPTS = test_loop runtests trace_matches
>
> diff --git a/tests/exit-fast/Makefile.am b/tests/exit-fast/Makefile.am
> new file mode 100644
> index 0000000..d34fbc2
> --- /dev/null
> +++ b/tests/exit-fast/Makefile.am
> @@ -0,0 +1,5 @@
> +AM_CPPFLAGS = -I$(top_srcdir)/include
> +
> +noinst_PROGRAMS = exit-fast
> +exit_fast_SOURCES = exit-fast.c
> +exit_fast_LDADD = $(top_builddir)/libust/libust.la $(top_builddir)/libust-initializer.o
> diff --git a/tests/exit-fast/exit-fast.c b/tests/exit-fast/exit-fast.c
> new file mode 100644
> index 0000000..84bb0c5
> --- /dev/null
> +++ b/tests/exit-fast/exit-fast.c
> @@ -0,0 +1,39 @@
> +/* Copyright (C) 2011 Nils Carlson
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library 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
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +
> +/* This test generates a single event and exits.
> + */
> +
> +#include <signal.h>
> +#include <string.h>
> +#include <ust/ust.h>
> +
> +int main(int argc, char *argv[])
> +{
> + int suicide = 0;
> +
> + if (argc > 1 && !strcmp(argv[1], "suicide")) {
> + suicide = 1;
> + }
> +
> + ust_marker(fast, "%d", 0xf330);
> +
> + if (suicide) {
> + kill(getpid(), SIGKILL);
> + }
> + return 0;
> +}
> diff --git a/tests/exit-fast/exit-fast.sh b/tests/exit-fast/exit-fast.sh
> new file mode 100755
> index 0000000..d10af57
> --- /dev/null
> +++ b/tests/exit-fast/exit-fast.sh
> @@ -0,0 +1,46 @@
> +#!/bin/bash
> +#
> +# Copyright 2011 Ericsson AB
> +#
> +# This file is part of the UST test-suite.
> +#
> +# The UST test-suite is free software: you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation, either version 2 of the License, or
> +# (at your option) any later version.
> +#
> +# The UST test-suite 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 the UST test-suite. If not, see <http://www.gnu.org/licenses/>.
> +
> +TESTDIR=$(dirname $0)/..
> +
> +source $TESTDIR/test_functions.sh
> +source $TESTDIR/tap.sh
> +
> +starttest "Exit-Fast"
> +
> +plan_tests 6
> +USTTRACE="$TESTDIR/../usttrace"
> +
> +diag "#"
> +diag "First run, normal exit"
> +diag "#"
> +
> +okx $USTTRACE -L $TESTDIR/exit-fast/exit-fast
> +trace_loc=$($USTTRACE -W)
> +trace_matches -N "fast" -n 1 "^ust.fast:" $trace_loc
> +check_trace_logs "$trace_loc"
> +
> +diag "#"
> +diag "Re-running, killing process"
> +diag "#"
> +
> +okx $USTTRACE -L $TESTDIR/exit-fast/exit-fast suicide
> +trace_loc=$($USTTRACE -W)
> +trace_matches -N "fast" -n 1 "^ust.fast:" $trace_loc
> +check_trace_logs "$trace_loc"
> diff --git a/tests/runtests b/tests/runtests
> index f686249..36ad12d 100755
> --- a/tests/runtests
> +++ b/tests/runtests
> @@ -48,6 +48,8 @@ simple_harness_run same_line_marker/same_line_marker.sh
>
> simple_harness_run libustctl_function_tests/libustctl_function_tests
>
> +simple_harness_run exit-fast/exit-fast.sh
> +
> echo "************************************"
> if [[ $tests_failed -eq 0 ]]; then
> echo "$0: All passed"
> --
> 1.7.2.5
>
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list