From fd4dfcecf4a21f7797d350e8dcd291c6f0c64e86 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Tue, 24 Jan 2012 11:49:49 -0500 Subject: [PATCH] Check kernel version for tests Test using the session daemon must be done on a kernel version 2.6.27 or higher for lttng-tools and lttng-ust requirements. Before starting a session daemon, tests validate the kernel version and stop them if the kernel is too old. This is *really* important for launchpad build system which compile and run our tests on 2.6.24 kernel. Signed-off-by: David Goulet --- tests/runall.sh | 34 ++++++++++++++++++++++++++++++---- tests/utils.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/tests/runall.sh b/tests/runall.sh index 08b390483..5e1c0f537 100755 --- a/tests/runall.sh +++ b/tests/runall.sh @@ -19,8 +19,11 @@ #### ADD TESTS HERE #### -test_suite=( test_sessions test_kernel_data_trace test_ust_data_trace - lttng/runall.sh ust-nevents/run ust-nprocesses/run ) +# A spawned session daemon is needed for those tests +test_with_sessiond=( lttng/runall.sh ust-nevents/run ust-nprocesses/run ) + +# No session daemon needed +test_no_sessiond=( test_sessions test_kernel_data_trace test_ust_data_trace ) #### END TESTS HERE #### @@ -28,12 +31,35 @@ TESTDIR=$(dirname $0) source $TESTDIR/utils.sh +## NO Session daemon ## +for bin in ${test_no_sessiond[@]}; +do + if [ ! -e $bin ]; then + echo -e "$bin not found, passing" + continue + fi + + ./$bin + # Test must return 0 to pass. + if [ $? -ne 0 ]; then + echo -e '\e[1;31mFAIL\e[0m' + echo "" + exit 1 + fi +done + +# With session daemon start_sessiond -if [ $? -ne 0 ]; then +out=$? +if [ $out -eq 2 ]; then + # Kernel version is not compatible. + exit 0 +elif [ $out -ne 0 ]; then + echo "NOT bad $?" exit 1 fi -for bin in ${test_suite[@]}; +for bin in ${test_with_sessiond[@]}; do if [ ! -e $bin ]; then echo -e "$bin not found, passing" diff --git a/tests/utils.sh b/tests/utils.sh index 1d8f2ebd0..01e8eae21 100644 --- a/tests/utils.sh +++ b/tests/utils.sh @@ -19,8 +19,34 @@ SESSIOND_BIN="lttng-sessiond" LTTNG_BIN="lttng" BABELTRACE_BIN="babeltrace" +# Minimal kernel version supported for session daemon tests +KERNEL_MAJOR_VERSION=2 +KERNEL_MINOR_VERSION=6 +KERNEL_PATCHLEVEL_VERSION=27 + +function validate_kernel_version () +{ + kern_version=($(uname -r | awk -F. '{ printf("%d.%d.%d\n",$1,$2,$3); }' | tr '.' '\n')) + if [ ${kern_version[0]} -gt $KERNEL_MAJOR_VERSION ]; then + return 0 + fi + if [ ${kern_version[1]} -gt $KERNEL_MINOR_VERSION ]; then + return 0 + fi + if [ ${kern_version[2]} -ge $KERNEL_PATCHLEVEL_VERSION ]; then + return 0 + fi + return 1 +} + function start_sessiond () { + validate_kernel_version + if [ $? -ne 0 ]; then + echo -e "\n*** Kernel to old for session daemon tests ***\n" + return 2 + fi + if [ -z $(pidof $SESSIOND_BIN) ]; then echo -n "Starting session daemon... " $TESTDIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --daemonize --quiet @@ -31,6 +57,8 @@ function start_sessiond () echo -e "\e[1;32mOK\e[0m" fi fi + + return 0 } function stop_sessiond () -- 2.34.1