From ff86d8d0bd96d3660ad79aa6158fbeb9055652b2 Mon Sep 17 00:00:00 2001 From: Anders Wallin Date: Thu, 17 May 2018 22:50:41 +0200 Subject: [PATCH] Tests: add session auto-loading test cases MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 validates the two first scenarios. Signed-off-by: Anders Wallin Signed-off-by: Jérémie Galarneau --- src/common/config/session-config.c | 2 +- tests/fast_regression | 1 + .../regression/tools/save-load/test_autoload | 88 +++++++++++++++++++ 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100755 tests/regression/tools/save-load/test_autoload diff --git a/src/common/config/session-config.c b/src/common/config/session-config.c index ed836f17e..518fde70b 100644 --- a/src/common/config/session-config.c +++ b/src/common/config/session-config.c @@ -3032,7 +3032,7 @@ int load_session_from_path(const char *path, const char *session_name, errno = 0; result = readdir(directory); - /* Reached end of dir stream or error out */ + /* Reached end of dir stream or error out. */ if (!result) { if (errno) { PERROR("Failed to enumerate the contents of path \"%s\" while loading session, readdir returned", path); diff --git a/tests/fast_regression b/tests/fast_regression index f76b53dc2..0c44c5a23 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 000000000..35b5d7bd5 --- /dev/null +++ b/tests/regression/tools/save-load/test_autoload @@ -0,0 +1,88 @@ +#!/bin/bash +# +# Copyright (C) - 2018 Anders Wallin +# +# 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=9 + +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" + + 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" + + cp -f $CURDIR/load-42.lttng $LTTNG_DIR/ + + start_lttng_sessiond $LTTNG_DIR + list_lttng_with_opts load-42 + stop_lttng_sessiond +} + +function test_auto_load_lttng_home() +{ + diag "Test auto load by setting LTTNG_HOME" + + 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 +} + +TESTS=( + test_auto_load_file + test_auto_load_dir + test_auto_load_lttng_home +) + +for fct_test in ${TESTS[@]}; +do + export LTTNG_HOME=$(mktemp -d) + export LTTNG_DIR=$(mktemp -d) + + ${fct_test} + rm -rf $LTTNG_DIR + rm -rf $LTTNG_HOME + if [ $? -ne 0 ]; then + break; + fi +done -- 2.34.1