[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