All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH lttng-tools] tests: Implement tests for lttng-ust LTTNG_UST_BLOCKING_RETRY_TIMEOUT
       [not found] <1478645952-29542-1-git-send-email-mathieu.desnoyers@efficios.com>
@ 2016-12-01 22:59 ` Jérémie Galarneau
  0 siblings, 0 replies; 2+ messages in thread
From: Jérémie Galarneau @ 2016-12-01 22:59 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Carlos O'Donell, lttng-dev, Jeremie Galarneau

Merged in master with a couple of changes.

Jérémie

On 8 November 2016 at 17:59, Mathieu Desnoyers
<mathieu.desnoyers@efficios.com> wrote:
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> CC: "Carlos O'Donell" <carlos@redhat.com>
> ---
>  configure.ac                                |   1 +
>  tests/fast_regression                       |   1 +
>  tests/regression/ust/Makefile.am            |   2 +-
>  tests/regression/ust/blocking/Makefile.am   |  16 +++
>  tests/regression/ust/blocking/test_blocking | 155 ++++++++++++++++++++++++++++
>  5 files changed, 174 insertions(+), 1 deletion(-)
>  create mode 100644 tests/regression/ust/blocking/Makefile.am
>  create mode 100755 tests/regression/ust/blocking/test_blocking
>
> diff --git a/configure.ac b/configure.ac
> index f56a170..06b7e4b 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1021,6 +1021,7 @@ AC_CONFIG_FILES([
>         tests/regression/ust/clock-override/Makefile
>         tests/regression/ust/type-declarations/Makefile
>         tests/regression/ust/rotation-destroy-flush/Makefile
> +       tests/regression/ust/blocking/Makefile
>         tests/stress/Makefile
>         tests/unit/Makefile
>         tests/unit/ini_config/Makefile
> diff --git a/tests/fast_regression b/tests/fast_regression
> index 23211f4..bbce068 100644
> --- a/tests/fast_regression
> +++ b/tests/fast_regression
> @@ -29,6 +29,7 @@ regression/ust/python-logging/test_python_logging
>  regression/ust/getcpu-override/test_getcpu_override
>  regression/ust/clock-override/test_clock_override
>  regression/ust/rotation-destroy-flush/test_rotation_destroy_flush
> +regression/ust/blocking/test_blocking
>  regression/ust/test_event_basic
>  regression/ust/test_event_tracef
>  regression/ust/test_event_perf
> diff --git a/tests/regression/ust/Makefile.am b/tests/regression/ust/Makefile.am
> index 7686251..06cf97a 100644
> --- a/tests/regression/ust/Makefile.am
> +++ b/tests/regression/ust/Makefile.am
> @@ -3,7 +3,7 @@ SUBDIRS = nprocesses high-throughput low-throughput before-after multi-session \
>                 overlap buffers-pid linking daemon exit-fast fork libc-wrapper \
>                 periodical-metadata-flush java-jul java-log4j python-logging \
>                 getcpu-override clock-override type-declarations \
> -               rotation-destroy-flush
> +               rotation-destroy-flush blocking
>
>  if HAVE_OBJCOPY
>  SUBDIRS += baddr-statedump ust-dl
> diff --git a/tests/regression/ust/blocking/Makefile.am b/tests/regression/ust/blocking/Makefile.am
> new file mode 100644
> index 0000000..178cc45
> --- /dev/null
> +++ b/tests/regression/ust/blocking/Makefile.am
> @@ -0,0 +1,16 @@
> +noinst_SCRIPTS = test_blocking
> +EXTRA_DIST = test_blocking
> +
> +all-local:
> +       @if [ x"$(srcdir)" != x"$(builddir)" ]; then \
> +               for script in $(EXTRA_DIST); do \
> +                       cp -f $(srcdir)/$$script $(builddir); \
> +               done; \
> +       fi
> +
> +clean-local:
> +       @if [ x"$(srcdir)" != x"$(builddir)" ]; then \
> +               for script in $(EXTRA_DIST); do \
> +                       rm -f $(builddir)/$$script; \
> +               done; \
> +       fi
> diff --git a/tests/regression/ust/blocking/test_blocking b/tests/regression/ust/blocking/test_blocking
> new file mode 100755
> index 0000000..a856046
> --- /dev/null
> +++ b/tests/regression/ust/blocking/test_blocking
> @@ -0,0 +1,155 @@
> +#!/bin/bash
> +#
> +# Copyright (C) - 2015 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
> +# Copyright (C) - 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> +#
> +# 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; version 2.1 of the License.
> +#
> +# 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
> +TEST_DESC="UST - Blocking mode"
> +
> +CURDIR=$(dirname $0)/
> +TESTDIR=$CURDIR/../../..
> +SESSION_NAME="blocking"
> +
> +TESTAPP_PATH="$TESTDIR/utils/testapp"
> +TESTAPP_NAME="gen-ust-events"
> +TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
> +EVENT_NAME="tp:tptest"
> +
> +NUM_TESTS=35

Updated to reflect changes below.

> +
> +source $TESTDIR/utils/utils.sh
> +
> +# MUST set TESTDIR before calling those functions
> +# Run app on CPU 0 to ensure we only write in a single ring buffer.
> +function run_app()
> +{
> +       taskset 0x00000001 $TESTAPP_BIN $NUM_EVENT
> +       ok $? "Application done"
> +}
> +
> +function test_ust_implicit_no_blocking()
> +{
> +       NUM_EVENT=500000
> +       diag "UST implicit non-blocking mode (default): will hang if fails"
> +
> +       # Test without the plugin
> +       start_lttng_sessiond
> +       create_lttng_session_no_output $SESSION_NAME
> +       enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
> +       start_lttng_tracing_ok $SESSION_NAME
> +       run_app
> +       stop_lttng_tracing_ok $SESSION_NAME
> +       destroy_lttng_session_ok $SESSION_NAME

stop_lttng_sessiond

> +
> +       ok 0 "Does not hang"
> +}
> +
> +function test_ust_explicit_no_blocking()
> +{
> +       NUM_EVENT=500000
> +       diag "UST explicit non-blocking mode: will hang if fails"
> +
> +       # Test without the plugin
> +       start_lttng_sessiond
> +       create_lttng_session_no_output $SESSION_NAME
> +       enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
> +       start_lttng_tracing_ok $SESSION_NAME
> +       LTTNG_UST_BLOCKING_RETRY_TIMEOUT=0 run_app
> +       stop_lttng_tracing_ok $SESSION_NAME
> +       destroy_lttng_session_ok $SESSION_NAME

stop_lttng_sessiond

> +
> +       ok 0 "Does not hang"
> +}
> +
> +function test_ust_timeout_no_blocking()
> +{
> +       NUM_EVENT=12500
> +       diag "UST 1ms timeout retry mode: will hang if fails"
> +
> +       start_lttng_sessiond
> +       create_lttng_session_no_output $SESSION_NAME
> +       enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
> +       start_lttng_tracing_ok $SESSION_NAME
> +       # retry timeout 1ms
> +       LTTNG_UST_BLOCKING_RETRY_TIMEOUT=1 run_app
> +       stop_lttng_tracing_ok $SESSION_NAME
> +       destroy_lttng_session_ok $SESSION_NAME

stop_lttng_sessiond

> +
> +       ok 0 "Does not hang"
> +}
> +
> +function test_ust_snapshot_no_blocking()
> +{
> +       NUM_EVENT=500000
> +       diag "UST blocking mode: don't block in snapshot mode"
> +
> +       # Test without the plugin
> +       start_lttng_sessiond
> +       create_lttng_session_ok $SESSION_NAME $TRACE_PATH --snapshot
> +       enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
> +       start_lttng_tracing_ok $SESSION_NAME
> +       LTTNG_UST_BLOCKING_RETRY_TIMEOUT=-1 run_app
> +       stop_lttng_tracing_ok $SESSION_NAME
> +       destroy_lttng_session_ok $SESSION_NAME

stop_lttng_sessiond

> +
> +       ok 0 "Does not hang"
> +}
> +
> +function test_ust_blocking_no_discard()
> +{
> +       NUM_EVENT=500000
> +       diag "UST blocking mode: no event discarded"
> +
> +       # Test without the plugin
> +       start_lttng_sessiond
> +       create_lttng_session_ok $SESSION_NAME $TRACE_PATH
> +       enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
> +       start_lttng_tracing_ok $SESSION_NAME
> +       # infinite retry timeout
> +       LTTNG_UST_BLOCKING_RETRY_TIMEOUT=-1 run_app
> +       stop_lttng_tracing_ok $SESSION_NAME
> +       destroy_lttng_session_ok $SESSION_NAME

stop_lttng_sessiond

> +
> +       nr_events=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
> +
> +       test $nr_events -eq $NUM_EVENT
> +       ok $? "No event lost with UST blocking mode: found $nr_events expect $NUM_EVENT"
> +}
> +
> +plan_tests $NUM_TESTS
> +
> +print_test_banner "$TEST_DESC"
> +
> +TESTS=(
> +       "test_ust_implicit_no_blocking"
> +       "test_ust_explicit_no_blocking"
> +       "test_ust_timeout_no_blocking"
> +       "test_ust_snapshot_no_blocking"
> +       "test_ust_blocking_no_discard"
> +)
> +
> +TEST_COUNT=${#TESTS[@]}
> +i=0
> +
> +while [ "$i" -lt "$TEST_COUNT" ]; do
> +
> +       TRACE_PATH=$(mktemp -d)
> +
> +       # Execute test
> +       ${TESTS[$i]}
> +
> +       rm -rf $TRACE_PATH
> +
> +       let "i++"
> +done
> --
> 2.1.4
>



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH lttng-tools] tests: Implement tests for lttng-ust LTTNG_UST_BLOCKING_RETRY_TIMEOUT
@ 2016-11-08 22:59 Mathieu Desnoyers
  0 siblings, 0 replies; 2+ messages in thread
From: Mathieu Desnoyers @ 2016-11-08 22:59 UTC (permalink / raw)
  To: jgalar; +Cc: Carlos O'Donell, lttng-dev

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: "Carlos O'Donell" <carlos@redhat.com>
---
 configure.ac                                |   1 +
 tests/fast_regression                       |   1 +
 tests/regression/ust/Makefile.am            |   2 +-
 tests/regression/ust/blocking/Makefile.am   |  16 +++
 tests/regression/ust/blocking/test_blocking | 155 ++++++++++++++++++++++++++++
 5 files changed, 174 insertions(+), 1 deletion(-)
 create mode 100644 tests/regression/ust/blocking/Makefile.am
 create mode 100755 tests/regression/ust/blocking/test_blocking

diff --git a/configure.ac b/configure.ac
index f56a170..06b7e4b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1021,6 +1021,7 @@ AC_CONFIG_FILES([
 	tests/regression/ust/clock-override/Makefile
 	tests/regression/ust/type-declarations/Makefile
 	tests/regression/ust/rotation-destroy-flush/Makefile
+	tests/regression/ust/blocking/Makefile
 	tests/stress/Makefile
 	tests/unit/Makefile
 	tests/unit/ini_config/Makefile
diff --git a/tests/fast_regression b/tests/fast_regression
index 23211f4..bbce068 100644
--- a/tests/fast_regression
+++ b/tests/fast_regression
@@ -29,6 +29,7 @@ regression/ust/python-logging/test_python_logging
 regression/ust/getcpu-override/test_getcpu_override
 regression/ust/clock-override/test_clock_override
 regression/ust/rotation-destroy-flush/test_rotation_destroy_flush
+regression/ust/blocking/test_blocking
 regression/ust/test_event_basic
 regression/ust/test_event_tracef
 regression/ust/test_event_perf
diff --git a/tests/regression/ust/Makefile.am b/tests/regression/ust/Makefile.am
index 7686251..06cf97a 100644
--- a/tests/regression/ust/Makefile.am
+++ b/tests/regression/ust/Makefile.am
@@ -3,7 +3,7 @@ SUBDIRS = nprocesses high-throughput low-throughput before-after multi-session \
 		overlap buffers-pid linking daemon exit-fast fork libc-wrapper \
 		periodical-metadata-flush java-jul java-log4j python-logging \
 		getcpu-override clock-override type-declarations \
-		rotation-destroy-flush
+		rotation-destroy-flush blocking
 
 if HAVE_OBJCOPY
 SUBDIRS += baddr-statedump ust-dl
diff --git a/tests/regression/ust/blocking/Makefile.am b/tests/regression/ust/blocking/Makefile.am
new file mode 100644
index 0000000..178cc45
--- /dev/null
+++ b/tests/regression/ust/blocking/Makefile.am
@@ -0,0 +1,16 @@
+noinst_SCRIPTS = test_blocking
+EXTRA_DIST = test_blocking
+
+all-local:
+	@if [ x"$(srcdir)" != x"$(builddir)" ]; then \
+		for script in $(EXTRA_DIST); do \
+			cp -f $(srcdir)/$$script $(builddir); \
+		done; \
+	fi
+
+clean-local:
+	@if [ x"$(srcdir)" != x"$(builddir)" ]; then \
+		for script in $(EXTRA_DIST); do \
+			rm -f $(builddir)/$$script; \
+		done; \
+	fi
diff --git a/tests/regression/ust/blocking/test_blocking b/tests/regression/ust/blocking/test_blocking
new file mode 100755
index 0000000..a856046
--- /dev/null
+++ b/tests/regression/ust/blocking/test_blocking
@@ -0,0 +1,155 @@
+#!/bin/bash
+#
+# Copyright (C) - 2015 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
+# Copyright (C) - 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+#
+# 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; version 2.1 of the License.
+#
+# 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
+TEST_DESC="UST - Blocking mode"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+SESSION_NAME="blocking"
+
+TESTAPP_PATH="$TESTDIR/utils/testapp"
+TESTAPP_NAME="gen-ust-events"
+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
+EVENT_NAME="tp:tptest"
+
+NUM_TESTS=35
+
+source $TESTDIR/utils/utils.sh
+
+# MUST set TESTDIR before calling those functions
+# Run app on CPU 0 to ensure we only write in a single ring buffer.
+function run_app()
+{
+	taskset 0x00000001 $TESTAPP_BIN $NUM_EVENT
+	ok $? "Application done"
+}
+
+function test_ust_implicit_no_blocking()
+{
+	NUM_EVENT=500000
+	diag "UST implicit non-blocking mode (default): will hang if fails"
+
+	# Test without the plugin
+	start_lttng_sessiond
+	create_lttng_session_no_output $SESSION_NAME
+	enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
+	start_lttng_tracing_ok $SESSION_NAME
+	run_app
+	stop_lttng_tracing_ok $SESSION_NAME
+	destroy_lttng_session_ok $SESSION_NAME
+
+	ok 0 "Does not hang"
+}
+
+function test_ust_explicit_no_blocking()
+{
+	NUM_EVENT=500000
+	diag "UST explicit non-blocking mode: will hang if fails"
+
+	# Test without the plugin
+	start_lttng_sessiond
+	create_lttng_session_no_output $SESSION_NAME
+	enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
+	start_lttng_tracing_ok $SESSION_NAME
+	LTTNG_UST_BLOCKING_RETRY_TIMEOUT=0 run_app
+	stop_lttng_tracing_ok $SESSION_NAME
+	destroy_lttng_session_ok $SESSION_NAME
+
+	ok 0 "Does not hang"
+}
+
+function test_ust_timeout_no_blocking()
+{
+	NUM_EVENT=12500
+	diag "UST 1ms timeout retry mode: will hang if fails"
+
+	start_lttng_sessiond
+	create_lttng_session_no_output $SESSION_NAME
+	enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
+	start_lttng_tracing_ok $SESSION_NAME
+	# retry timeout 1ms
+	LTTNG_UST_BLOCKING_RETRY_TIMEOUT=1 run_app
+	stop_lttng_tracing_ok $SESSION_NAME
+	destroy_lttng_session_ok $SESSION_NAME
+
+	ok 0 "Does not hang"
+}
+
+function test_ust_snapshot_no_blocking()
+{
+	NUM_EVENT=500000
+	diag "UST blocking mode: don't block in snapshot mode"
+
+	# Test without the plugin
+	start_lttng_sessiond
+	create_lttng_session_ok $SESSION_NAME $TRACE_PATH --snapshot
+	enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
+	start_lttng_tracing_ok $SESSION_NAME
+	LTTNG_UST_BLOCKING_RETRY_TIMEOUT=-1 run_app
+	stop_lttng_tracing_ok $SESSION_NAME
+	destroy_lttng_session_ok $SESSION_NAME
+
+	ok 0 "Does not hang"
+}
+
+function test_ust_blocking_no_discard()
+{
+	NUM_EVENT=500000
+	diag "UST blocking mode: no event discarded"
+
+	# Test without the plugin
+	start_lttng_sessiond
+	create_lttng_session_ok $SESSION_NAME $TRACE_PATH
+	enable_ust_lttng_event_ok $SESSION_NAME "$EVENT_NAME"
+	start_lttng_tracing_ok $SESSION_NAME
+	# infinite retry timeout
+	LTTNG_UST_BLOCKING_RETRY_TIMEOUT=-1 run_app
+	stop_lttng_tracing_ok $SESSION_NAME
+	destroy_lttng_session_ok $SESSION_NAME
+
+	nr_events=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
+
+	test $nr_events -eq $NUM_EVENT
+	ok $? "No event lost with UST blocking mode: found $nr_events expect $NUM_EVENT"
+}
+
+plan_tests $NUM_TESTS
+
+print_test_banner "$TEST_DESC"
+
+TESTS=(
+	"test_ust_implicit_no_blocking"
+	"test_ust_explicit_no_blocking"
+	"test_ust_timeout_no_blocking"
+	"test_ust_snapshot_no_blocking"
+	"test_ust_blocking_no_discard"
+)
+
+TEST_COUNT=${#TESTS[@]}
+i=0
+
+while [ "$i" -lt "$TEST_COUNT" ]; do
+
+	TRACE_PATH=$(mktemp -d)
+
+	# Execute test
+	${TESTS[$i]}
+
+	rm -rf $TRACE_PATH
+
+	let "i++"
+done
-- 
2.1.4

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-12-01 23:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1478645952-29542-1-git-send-email-mathieu.desnoyers@efficios.com>
2016-12-01 22:59 ` [PATCH lttng-tools] tests: Implement tests for lttng-ust LTTNG_UST_BLOCKING_RETRY_TIMEOUT Jérémie Galarneau
2016-11-08 22:59 Mathieu Desnoyers

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.