Message ID | 20180517205041.23774-2-wallinux@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | Jérémie Galarneau |
Headers | show |
Series | [lttng-tools] Tests: Added autoloading session test cases | expand |
Merged in master, stable-2.10, and stable-2.9. Thanks! Jérémie On Thu, May 17, 2018 at 10:50:41PM +0200, Anders Wallin wrote: > lttng-sessiond can auto load sessions at startup; > - with "--load" option to lttng-sessiond, load one file > or all sessions files in that directory > - from session files in $LTTNG_HOME/.lttng/sessions/auto/ > - from session files in $sysconfdir/lttng/sessions/auto > > This test case validate the two first scenarios. > > Signed-off-by: Anders Wallin <wallinux at gmail.com> > --- > tests/fast_regression | 1 + > .../regression/tools/save-load/test_autoload | 107 ++++++++++++++++++ > 2 files changed, 108 insertions(+) > create mode 100755 tests/regression/tools/save-load/test_autoload > > diff --git a/tests/fast_regression b/tests/fast_regression > index bbce068f..2f02f872 100644 > --- a/tests/fast_regression > +++ b/tests/fast_regression > @@ -13,6 +13,7 @@ regression/tools/snapshots/test_ust_fast > regression/tools/snapshots/test_ust_streaming > regression/tools/save-load/test_save > regression/tools/save-load/test_load > +regression/tools/save-load/test_autoload > regression/tools/mi/test_mi > regression/tools/wildcard/test_event_wildcard > regression/tools/crash/test_crash > diff --git a/tests/regression/tools/save-load/test_autoload b/tests/regression/tools/save-load/test_autoload > new file mode 100755 > index 00000000..26193be6 > --- /dev/null > +++ b/tests/regression/tools/save-load/test_autoload > @@ -0,0 +1,107 @@ > +#!/bin/bash > +# > +# Copyright (C) - 2018 Anders Wallin <wallinux at gmail.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="Auto load session(s)" > + > +CURDIR=$(dirname $0)/ > +CONFIG_DIR="${CURDIR}/configuration" > +TESTDIR=$CURDIR/../../../ > +SESSIOND_BIN="lttng-sessiond" > +RELAYD_BIN="lttng-relayd" > +LTTNG_BIN="lttng" > +export LTTNG_SESSION_CONFIG_XSD_PATH=$(readlink -m ${TESTDIR}../src/common/config/) > + > +DIR=$(readlink -f $TESTDIR) > + > +NUM_TESTS=10 > + > +source $TESTDIR/utils/utils.sh > + > +# MUST set TESTDIR before calling those functions > +plan_tests $NUM_TESTS > + > +print_test_banner "$TEST_DESC" > + > +function test_auto_load_file() > +{ > + diag "Test auto load file" > + > + export LTTNG_HOME= > + > + start_lttng_sessiond $CURDIR/load-42.lttng > + list_lttng_with_opts load-42 > + stop_lttng_sessiond > +} > + > +function test_auto_load_dir() > +{ > + diag "Test auto load directory" > + > + export LTTNG_HOME= > + export LTTNG_DIR=$(mktemp -d) > + cp -f $CURDIR/load-42.lttng $LTTNG_DIR/ > + > + start_lttng_sessiond $LTTNG_DIR > + list_lttng_with_opts load-42 > + stop_lttng_sessiond > + > + rm -rf $LTTNG_DIR > +} > + > +function test_auto_load_lttng_home() > +{ > + diag "Test auto load by setting LTTNG_HOME" > + > + export LTTNG_HOME=$(mktemp -d) > + mkdir -p $LTTNG_HOME/.lttng/sessions/auto > + cp -f $CURDIR/load-42.lttng $LTTNG_HOME/.lttng/sessions/auto > + > + start_lttng_sessiond > + list_lttng_with_opts load-42 > + stop_lttng_sessiond > + > + rm -rf $LTTNG_HOME > +} > + > +TESTS=( > + test_auto_load_file > + test_auto_load_dir > + test_auto_load_lttng_home > +) > + > +# Need to be sure that no lttng-sessiond is running > +# - "stop_lttng_sessiond" is using the SESSIOND_PIDS created with > +# "start_lttng_sessiond" > +# - "sigstop_lttng_sessiond" keep lttng-runas dangling > +# - "stop_lttng_sessiond SIGKILL" will leave kernel modules loaded > +# The code below are killing all lttng-* programs and remove the > +# the lttng kernel modules > +SESSIOND_PIDS=$(pgrep $SESSIOND_MATCH) > +kill $SESSIOND_PIDS > +stop_lttng_sessiond > + > +for fct_test in ${TESTS[@]}; > +do > + TRACE_PATH=$(mktemp -d) > + > + ${fct_test} > + if [ $? -ne 0 ]; then > + break; > + fi > + # Only delete if successful > + rm -rf $TRACE_PATH > +done > -- > 2.17.0 > > _______________________________________________ > lttng-dev mailing list > lttng-dev at lists.lttng.org > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
diff --git a/tests/fast_regression b/tests/fast_regression index bbce068f..2f02f872 100644 --- a/tests/fast_regression +++ b/tests/fast_regression @@ -13,6 +13,7 @@ regression/tools/snapshots/test_ust_fast regression/tools/snapshots/test_ust_streaming regression/tools/save-load/test_save regression/tools/save-load/test_load +regression/tools/save-load/test_autoload regression/tools/mi/test_mi regression/tools/wildcard/test_event_wildcard regression/tools/crash/test_crash diff --git a/tests/regression/tools/save-load/test_autoload b/tests/regression/tools/save-load/test_autoload new file mode 100755 index 00000000..26193be6 --- /dev/null +++ b/tests/regression/tools/save-load/test_autoload @@ -0,0 +1,107 @@ +#!/bin/bash +# +# Copyright (C) - 2018 Anders Wallin <wallinux at gmail.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="Auto load session(s)" + +CURDIR=$(dirname $0)/ +CONFIG_DIR="${CURDIR}/configuration" +TESTDIR=$CURDIR/../../../ +SESSIOND_BIN="lttng-sessiond" +RELAYD_BIN="lttng-relayd" +LTTNG_BIN="lttng" +export LTTNG_SESSION_CONFIG_XSD_PATH=$(readlink -m ${TESTDIR}../src/common/config/) + +DIR=$(readlink -f $TESTDIR) + +NUM_TESTS=10 + +source $TESTDIR/utils/utils.sh + +# MUST set TESTDIR before calling those functions +plan_tests $NUM_TESTS + +print_test_banner "$TEST_DESC" + +function test_auto_load_file() +{ + diag "Test auto load file" + + export LTTNG_HOME= + + start_lttng_sessiond $CURDIR/load-42.lttng + list_lttng_with_opts load-42 + stop_lttng_sessiond +} + +function test_auto_load_dir() +{ + diag "Test auto load directory" + + export LTTNG_HOME= + export LTTNG_DIR=$(mktemp -d) + cp -f $CURDIR/load-42.lttng $LTTNG_DIR/ + + start_lttng_sessiond $LTTNG_DIR + list_lttng_with_opts load-42 + stop_lttng_sessiond + + rm -rf $LTTNG_DIR +} + +function test_auto_load_lttng_home() +{ + diag "Test auto load by setting LTTNG_HOME" + + export LTTNG_HOME=$(mktemp -d) + mkdir -p $LTTNG_HOME/.lttng/sessions/auto + cp -f $CURDIR/load-42.lttng $LTTNG_HOME/.lttng/sessions/auto + + start_lttng_sessiond + list_lttng_with_opts load-42 + stop_lttng_sessiond + + rm -rf $LTTNG_HOME +} + +TESTS=( + test_auto_load_file + test_auto_load_dir + test_auto_load_lttng_home +) + +# Need to be sure that no lttng-sessiond is running +# - "stop_lttng_sessiond" is using the SESSIOND_PIDS created with +# "start_lttng_sessiond" +# - "sigstop_lttng_sessiond" keep lttng-runas dangling +# - "stop_lttng_sessiond SIGKILL" will leave kernel modules loaded +# The code below are killing all lttng-* programs and remove the +# the lttng kernel modules +SESSIOND_PIDS=$(pgrep $SESSIOND_MATCH) +kill $SESSIOND_PIDS +stop_lttng_sessiond + +for fct_test in ${TESTS[@]}; +do + TRACE_PATH=$(mktemp -d) + + ${fct_test} + if [ $? -ne 0 ]; then + break; + fi + # Only delete if successful + rm -rf $TRACE_PATH +done
lttng-sessiond can auto load sessions at startup; - with "--load" option to lttng-sessiond, load one file or all sessions files in that directory - from session files in $LTTNG_HOME/.lttng/sessions/auto/ - from session files in $sysconfdir/lttng/sessions/auto This test case validate the two first scenarios. Signed-off-by: Anders Wallin <wallinux at gmail.com> --- tests/fast_regression | 1 + .../regression/tools/save-load/test_autoload | 107 ++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100755 tests/regression/tools/save-load/test_autoload