Tests: Rename the tools tests runners to test_<test name>
authorChristian Babeux <christian.babeux@efficios.com>
Fri, 22 Feb 2013 04:11:53 +0000 (23:11 -0500)
committerChristian Babeux <christian.babeux@efficios.com>
Fri, 22 Feb 2013 18:00:30 +0000 (13:00 -0500)
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
25 files changed:
tests/regression/tools/filtering/Makefile.am
tests/regression/tools/filtering/invalid-filters [deleted file]
tests/regression/tools/filtering/runall
tests/regression/tools/filtering/test_invalid_filter [new file with mode: 0755]
tests/regression/tools/filtering/test_unsupported_op [new file with mode: 0755]
tests/regression/tools/filtering/test_valid_filter [new file with mode: 0755]
tests/regression/tools/filtering/unsupported-ops [deleted file]
tests/regression/tools/filtering/valid-filters [deleted file]
tests/regression/tools/health/health_thread_exit [deleted file]
tests/regression/tools/health/health_thread_stall [deleted file]
tests/regression/tools/health/health_tp_fail [deleted file]
tests/regression/tools/health/runall
tests/regression/tools/health/test_thread_exit [new file with mode: 0755]
tests/regression/tools/health/test_thread_stall [new file with mode: 0755]
tests/regression/tools/health/test_tp_fail [new file with mode: 0755]
tests/regression/tools/streaming/Makefile.am
tests/regression/tools/streaming/high_throughput_limits [deleted file]
tests/regression/tools/streaming/run-kernel [deleted file]
tests/regression/tools/streaming/run-ust [deleted file]
tests/regression/tools/streaming/runall
tests/regression/tools/streaming/test_high_throughput_limits [new file with mode: 0755]
tests/regression/tools/streaming/test_kernel [new file with mode: 0755]
tests/regression/tools/streaming/test_uri_switch [new file with mode: 0755]
tests/regression/tools/streaming/test_ust [new file with mode: 0755]
tests/regression/tools/streaming/uri_switch [deleted file]

index e1e715da49f23a9fdf129f607fcce1c3316a0f71..23bce0005c3ffc72cd605123c56192b8e8431261 100644 (file)
@@ -14,5 +14,5 @@ gen_ust_events_SOURCES = gen-ust-events.c tp.c tp.h
 gen_ust_events_LDADD = -llttng-ust
 endif
 
-noinst_SCRIPTS = runall unsupported-ops invalid-filters valid-filters babelstats.pl
-EXTRA_DIST = runall unsupported-ops invalid-filters valid-filters babelstats.pl
+noinst_SCRIPTS = runall test_unsupported_op test_invalid_filter test_valid_filter babelstats.pl
+EXTRA_DIST = runall test_unsupported_op test_invalid_filter test_valid_filter babelstats.pl
diff --git a/tests/regression/tools/filtering/invalid-filters b/tests/regression/tools/filtering/invalid-filters
deleted file mode 100755 (executable)
index 48db698..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License, version 2 only, as
-# published by the Free Software Foundation.
-#
-# This program 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
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-TEST_DESC="Filtering - Invalid filters"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-LTTNG_BIN="lttng"
-SESSION_NAME="filter-invalid"
-EVENT_NAME="bogus"
-ENABLE_EVENT_STDERR="/tmp/invalid-filters-stderr"
-TRACE_PATH=$(mktemp -d)
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-function enable_ust_lttng_event_filter
-{
-       sess_name="$1"
-       event_name="$2"
-       filter="$3"
-       echo -n "Enabling lttng event with filtering and invalid filter "
-
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event $event_name -s $sess_name -u --filter "$filter" 2> $ENABLE_EVENT_STDERR 1> /dev/null
-
-       # Enable must fail
-       if [ $? -eq 0 ]; then
-               print_fail
-               return 1
-       else
-               print_ok
-               return 0
-       fi
-}
-
-function test_invalid_filter
-{
-       test_invalid_filter="$1"
-
-       echo ""
-       echo -e "=== Testing filter expression with invalid filter"
-       echo -e "Filter: $test_invalid_filter"
-
-       # Create session
-       create_lttng_session $SESSION_NAME $TRACE_PATH
-
-       # Apply filter
-       enable_ust_lttng_event_filter $SESSION_NAME $EVENT_NAME "$test_invalid_filter"
-
-       # Destroy session
-       destroy_lttng_session $SESSION_NAME
-}
-
-function test_bytecode_limit
-{
-       # Current bytecode limitation is 65536 bytes long.
-       # Generate a huge bytecode with some perl-fu
-       BYTECODE_LIMIT=`perl -e 'print "intfield" . " && 1" x5460'`
-
-       echo ""
-       echo -e "=== Testing filter bytecode limits (64KiB)"
-
-       # Create session
-       create_lttng_session $SESSION_NAME $TRACE_PATH
-
-       # Apply filter
-       enable_ust_lttng_event_filter $SESSION_NAME $EVENT_NAME "$BYTECODE_LIMIT"
-
-       # Destroy session
-       destroy_lttng_session $SESSION_NAME
-}
-
-IFS=$'\n'
-INVALID_FILTERS=(
-               # Unsupported ops
-               "intfield*1"
-               "intfield/1"
-               "intfield+1"
-               "intfield-1"
-               "intfield>>1"
-               "intfield<<1"
-               "intfield&1"
-               "intfield|1"
-               "intfield^1"
-               "~intfield"
-               "1+11111-3333+1"
-               "(1+2)*(55*666)"
-               "1+2*55*666"
-               "asdf + 1 > 1"
-               "asdfas < 2332 || asdf + 1 > 1"
-               "!+-+++-------+++++++++++-----!!--!44+1"
-               "aaa||(gg)+(333----1)"
-               "1+1"
-               # Unmatched parenthesis
-               "((((((((((((((intfield)))))))))))))"
-               '0 || ("abc" != "def")) && (3 < 4)'
-               # Field dereference
-               "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a"
-               "a->"
-               "a-->a"
-               "a->a"
-               "a.b.c->d.e.f+1"
-               "!a.f.d"
-               "asdf.asdfsd.sadf < 4"
-               "asdfasdf->asdfasdf < 2"
-               # String can't be root node
-               "\"somestring\""
-               # Unary op on string not allowed
-               "!\"somestring\""
-               # Comparison with string type not allowed
-               "\"somestring\" > 42"
-               "\"somestring\" > 42.0"
-               "42 > \"somestring\""
-               "42.0 > \"somestring\""
-               # Logical operator with string type not allowed
-               "\"somestring\" || 1"
-               "1 || \"somestring\""
-               # Nesting of binary operator not allowed
-               "1 | (1 | (1 | 1))"
-               "1 > (1 > (1 > 1))"
-               )
-
-start_lttng_sessiond
-for FILTER in ${INVALID_FILTERS[@]};
-do
-       test_invalid_filter "$FILTER"
-done
-
-test_bytecode_limit
-
-unset IFS
-stop_lttng_sessiond
-
-rm -f $ENABLE_EVENT_STDERR
-rm -rf $TRACE_PATH
index c92e399885595d9ce388e239ec5607e3890401bd..cda9799ef2aa2b3a4b533150637d832b05e654b4 100755 (executable)
@@ -2,7 +2,7 @@
 
 DIR=$(dirname $0)
 
-tests=( $DIR/unsupported-ops $DIR/invalid-filters $DIR/valid-filters )
+tests=( $DIR/test_unsupported_op $DIR/test_invalid_filter $DIR/test_valid_filter )
 exit_code=0
 
 function start_tests ()
diff --git a/tests/regression/tools/filtering/test_invalid_filter b/tests/regression/tools/filtering/test_invalid_filter
new file mode 100755 (executable)
index 0000000..48db698
--- /dev/null
@@ -0,0 +1,150 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License, version 2 only, as
+# published by the Free Software Foundation.
+#
+# This program 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
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+TEST_DESC="Filtering - Invalid filters"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+LTTNG_BIN="lttng"
+SESSION_NAME="filter-invalid"
+EVENT_NAME="bogus"
+ENABLE_EVENT_STDERR="/tmp/invalid-filters-stderr"
+TRACE_PATH=$(mktemp -d)
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+function enable_ust_lttng_event_filter
+{
+       sess_name="$1"
+       event_name="$2"
+       filter="$3"
+       echo -n "Enabling lttng event with filtering and invalid filter "
+
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event $event_name -s $sess_name -u --filter "$filter" 2> $ENABLE_EVENT_STDERR 1> /dev/null
+
+       # Enable must fail
+       if [ $? -eq 0 ]; then
+               print_fail
+               return 1
+       else
+               print_ok
+               return 0
+       fi
+}
+
+function test_invalid_filter
+{
+       test_invalid_filter="$1"
+
+       echo ""
+       echo -e "=== Testing filter expression with invalid filter"
+       echo -e "Filter: $test_invalid_filter"
+
+       # Create session
+       create_lttng_session $SESSION_NAME $TRACE_PATH
+
+       # Apply filter
+       enable_ust_lttng_event_filter $SESSION_NAME $EVENT_NAME "$test_invalid_filter"
+
+       # Destroy session
+       destroy_lttng_session $SESSION_NAME
+}
+
+function test_bytecode_limit
+{
+       # Current bytecode limitation is 65536 bytes long.
+       # Generate a huge bytecode with some perl-fu
+       BYTECODE_LIMIT=`perl -e 'print "intfield" . " && 1" x5460'`
+
+       echo ""
+       echo -e "=== Testing filter bytecode limits (64KiB)"
+
+       # Create session
+       create_lttng_session $SESSION_NAME $TRACE_PATH
+
+       # Apply filter
+       enable_ust_lttng_event_filter $SESSION_NAME $EVENT_NAME "$BYTECODE_LIMIT"
+
+       # Destroy session
+       destroy_lttng_session $SESSION_NAME
+}
+
+IFS=$'\n'
+INVALID_FILTERS=(
+               # Unsupported ops
+               "intfield*1"
+               "intfield/1"
+               "intfield+1"
+               "intfield-1"
+               "intfield>>1"
+               "intfield<<1"
+               "intfield&1"
+               "intfield|1"
+               "intfield^1"
+               "~intfield"
+               "1+11111-3333+1"
+               "(1+2)*(55*666)"
+               "1+2*55*666"
+               "asdf + 1 > 1"
+               "asdfas < 2332 || asdf + 1 > 1"
+               "!+-+++-------+++++++++++-----!!--!44+1"
+               "aaa||(gg)+(333----1)"
+               "1+1"
+               # Unmatched parenthesis
+               "((((((((((((((intfield)))))))))))))"
+               '0 || ("abc" != "def")) && (3 < 4)'
+               # Field dereference
+               "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a"
+               "a->"
+               "a-->a"
+               "a->a"
+               "a.b.c->d.e.f+1"
+               "!a.f.d"
+               "asdf.asdfsd.sadf < 4"
+               "asdfasdf->asdfasdf < 2"
+               # String can't be root node
+               "\"somestring\""
+               # Unary op on string not allowed
+               "!\"somestring\""
+               # Comparison with string type not allowed
+               "\"somestring\" > 42"
+               "\"somestring\" > 42.0"
+               "42 > \"somestring\""
+               "42.0 > \"somestring\""
+               # Logical operator with string type not allowed
+               "\"somestring\" || 1"
+               "1 || \"somestring\""
+               # Nesting of binary operator not allowed
+               "1 | (1 | (1 | 1))"
+               "1 > (1 > (1 > 1))"
+               )
+
+start_lttng_sessiond
+for FILTER in ${INVALID_FILTERS[@]};
+do
+       test_invalid_filter "$FILTER"
+done
+
+test_bytecode_limit
+
+unset IFS
+stop_lttng_sessiond
+
+rm -f $ENABLE_EVENT_STDERR
+rm -rf $TRACE_PATH
diff --git a/tests/regression/tools/filtering/test_unsupported_op b/tests/regression/tools/filtering/test_unsupported_op
new file mode 100755 (executable)
index 0000000..9fac9de
--- /dev/null
@@ -0,0 +1,114 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License, version 2 only, as
+# published by the Free Software Foundation.
+#
+# This program 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
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+TEST_DESC="Filtering - Unsupported operators"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+LTTNG_BIN="lttng"
+SESSION_NAME="filter-unsupported-ops"
+EVENT_NAME="bogus"
+ENABLE_EVENT_STDERR="/tmp/unsupported-ops-enable"
+TRACE_PATH=$(mktemp -d)
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+function enable_ust_lttng_event_filter_unsupported
+{
+       sess_name=$1
+       event_name=$2
+       filter=$3
+
+       echo -n "Enabling lttng event with filtering and unsupported operator "
+       enable_cmd="$TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event"
+       $enable_cmd $event_name -s $sess_name -u --filter "$filter" 2> $ENABLE_EVENT_STDERR 1> /dev/null
+
+       # Enable must fail
+       if [ $? -eq 0 ]; then
+               print_fail
+               return 1
+       else
+               print_ok
+               return 0
+       fi
+}
+
+function test_unsupported_op
+{
+       test_op_str=$1
+       test_op_tkn=$2
+
+       echo ""
+       echo -e "=== Testing filter expression with unsupported operator $test_op_str ($test_op_tkn)"
+
+       # Create session
+       create_lttng_session $SESSION_NAME $TRACE_PATH
+
+       # Create filter
+       if [ "$test_op_str" == "UNARY_BIN_NOT" ]; then
+               TEST_FILTER="${test_op_tkn}1"
+       else
+               TEST_FILTER="intfield $test_op_tkn 1"
+       fi
+
+       # Apply filter
+       enable_ust_lttng_event_filter_unsupported $SESSION_NAME $EVENT_NAME "$TEST_FILTER"
+
+       # Test stderr for unsupported operator
+       echo -n "Unsupported operator test $test_op_str ($test_op_tkn) "
+       grep -i -q "not[[:space:]]\+supported" $ENABLE_EVENT_STDERR
+
+       if [ $? -eq 1 ]; then
+               print_fail
+               return 1
+       else
+               print_ok
+       fi
+
+       # Destroy session
+       destroy_lttng_session $SESSION_NAME
+       return 0
+}
+
+# Unsupported operators
+OP_STR=("MUL" "DIV" "MOD" "PLUS" "MINUS" "LSHIFT" "RSHIFT"
+       "BIN_AND" "BIN_OR" "BIN_XOR" "UNARY_BIN_NOT")
+
+OP_TKN=("*" "/" "%" "+" "-" "<<" ">>" "&" "|" "^" "~")
+
+OP_COUNT=${#OP_STR[@]}
+i=0
+
+start_lttng_sessiond
+
+while [ "$i" -lt "$OP_COUNT" ]; do
+       test_unsupported_op "${OP_STR[$i]}" "${OP_TKN[$i]}"
+
+       if [ $? -eq 1 ]; then
+               exit 1
+       fi
+
+       let "i++"
+done
+
+stop_lttng_sessiond
+
+# Cleanup
+rm -f $ENABLE_EVENT_STDERR
+rm -rf $TRACE_PATH
diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter
new file mode 100755 (executable)
index 0000000..067d205
--- /dev/null
@@ -0,0 +1,417 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License, version 2 only, as
+# published by the Free Software Foundation.
+#
+# This program 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
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+TEST_DESC="Filtering - Valid filters"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+LTTNG_BIN="lttng"
+BIN_NAME="gen-ust-events"
+STATS_BIN="babelstats.pl"
+SESSION_NAME="valid_filter"
+EVENT_NAME="tp:tptest"
+NR_ITER=100
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+if [ ! -x "$CURDIR/$BIN_NAME" ]; then
+       echo -e "No UST nevents binary detected. Passing."
+       exit 0
+fi
+
+function enable_ust_lttng_event_filter()
+{
+       sess_name="$1"
+       event_name="$2"
+       filter="$3"
+       echo -n "Enabling lttng event with filtering "
+
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event $event_name -s $sess_name -u --filter "$filter" 2>&1 >/dev/null
+
+       if [ $? -eq 0 ]; then
+               print_ok
+               return 0
+       else
+               print_fail
+               return 1
+       fi
+}
+
+function run_apps
+{
+       ./$CURDIR/$BIN_NAME $NR_ITER & >/dev/null 2>&1
+}
+
+function wait_apps
+{
+       echo "Waiting for applications to end"
+       while [ -n "$(pidof $BIN_NAME)" ]; do
+               echo -n "."
+               sleep 1
+       done
+       echo ""
+}
+
+function test_valid_filter
+{
+       filter="$1"
+       validator="$2"
+
+       echo ""
+       echo -e "=== Testing valid filter: $1"
+
+       trace_path=$(mktemp -d)
+
+       # Create session
+       create_lttng_session $SESSION_NAME $trace_path
+
+       # Enable filter
+       enable_ust_lttng_event_filter $SESSION_NAME $EVENT_NAME $filter
+
+       # Trace apps
+       start_lttng_tracing $SESSION_NAME
+       run_apps
+       wait_apps
+       stop_lttng_tracing $SESSION_NAME
+
+       # Destroy session
+       destroy_lttng_session $SESSION_NAME
+
+       echo -n "Validating filter output "
+       stats=`babeltrace $trace_path | $CURDIR/$STATS_BIN --tracepoint $EVENT_NAME`
+
+       rm -rf $trace_path
+
+       $validator "$stats"
+
+       if [ $? -eq 0 ]; then
+               print_ok
+#              rm -rf $trace_path
+               return 0
+       else
+               print_fail
+               return 1
+       fi
+}
+
+function validate_min_max
+{
+       stats="$1"
+       field=$2
+       expected_min=$3
+       expected_max=$4
+
+       echo $stats | grep -q "$field $expected_min $expected_max"
+
+       return $?
+}
+
+function validator_intfield
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "1" "99"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "intfield2" "0x1" "0x63"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "longfield" "1" "99"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "netintfield" "1" "99"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "netintfieldhex" "0x1" "0x63"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "floatfield" "2222" "2222"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "doublefield" "2" "2"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_gt
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "2" "99"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_ge
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "1" "99"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_lt
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "0" "1"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_le
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "0" "2"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_eq
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "1" "1"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_ne
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "0" "98"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_not
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "0" "0"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_gt_and_longfield_gt
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "43" "99"
+       status=$(($status|$?))
+       validate_min_max "$stats" "longfield" "43" "99"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_ge_and_longfield_le
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "42" "42"
+       status=$(($status|$?))
+       validate_min_max "$stats" "longfield" "42" "42"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_intfield_lt_or_longfield_gt
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "0" "99"
+       status=$(($status|$?))
+       validate_min_max "$stats" "longfield" "0" "99"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_mixed_str_or_int_and_int
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "34" "99"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "stringfield" "\"test\"" "\"test\""
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_mixed_int_double
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "0" "42"
+       status=$(($status|$?))
+
+       return $status
+}
+
+function validator_true_statement
+{
+       stats="$1"
+       status=0
+
+       validate_min_max "$stats" "intfield" "0" "99"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "intfield2" "0x0" "0x63"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "longfield" "0" "99"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "netintfield" "0" "99"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "netintfieldhex" "0x0" "0x63"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "floatfield" "2222" "2222"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "doublefield" "2" "2"
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "stringfield" "\"test\"" "\"test\""
+       status=$(($status|$?))
+
+       validate_min_max "$stats" "stringfield2" ""\*"" ""\*""
+       status=$(($status|$?))
+
+       return $status
+}
+
+IFS=$'\n'
+
+issue_356_filter="intfield > 0 && intfield > 1 && "
+issue_356_filter+="intfield > 2 && intfield > 3 && "
+issue_356_filter+="intfield > 4 && intfield > 5 && "
+issue_356_filter+="intfield > 6 && intfield > 7 && "
+issue_356_filter+="intfield > 8 || intfield > 0"
+
+# One to one mapping between filters and validators
+
+FILTERS=("intfield"                                                     #1
+        "intfield > 1"                                                 #2
+        "intfield >= 1"                                                #3
+        "intfield < 2"                                                 #4
+        "intfield <= 2"                                                #5
+        "intfield == 1"                                                #6
+        "intfield != 99"                                               #7
+        "!intfield"                                                    #8
+        "-intfield"                                                    #9
+        "--intfield"                                                   #10
+        "+intfield"                                                    #11
+        "++intfield"                                                   #12
+        "intfield > 1 && longfield > 42"                               #13
+        "intfield >= 42 && longfield <= 42"                            #14
+        "intfield < 1 || longfield > 98"                               #15
+        "(stringfield == \"test\" || intfield != 10) && intfield > 33" #16
+        "intfield < 42.4242424242"                                     #17
+        "\"test\" == \"test\""                                         #18 #Issue #342
+        "stringfield == \"test\""                                      #19
+        "stringfield == \"t*\""                                        #20
+        "stringfield == \"*\""                                         #21
+        $issue_356_filter                                              #22 #Issue #356
+        "intfield < 0xDEADBEEF"                                        #23
+        "intfield < 0x2"                                               #24
+        "intfield < 02"                                                #25
+        "stringfield2 == \"\\\*\""                                     #26
+        "1.0 || intfield || 1.0"                                       #27
+        "1 < intfield"                                                 #28
+)
+
+VALIDATOR=("validator_intfield"                     #1
+          "validator_intfield_gt"                  #2
+          "validator_intfield_ge"                  #3
+          "validator_intfield_lt"                  #4
+          "validator_intfield_le"                  #5
+          "validator_intfield_eq"                  #6
+          "validator_intfield_ne"                  #7
+          "validator_intfield_not"                 #8
+          "validator_intfield"                     #9
+          "validator_intfield"                     #10
+          "validator_intfield"                     #11
+          "validator_intfield"                     #12
+          "validator_intfield_gt_and_longfield_gt" #13
+          "validator_intfield_ge_and_longfield_le" #14
+          "validator_intfield_lt_or_longfield_gt"  #15
+          "validator_mixed_str_or_int_and_int"     #16
+          "validator_mixed_int_double"             #17
+          "validator_true_statement"               #18
+          "validator_true_statement"               #19
+          "validator_true_statement"               #20
+          "validator_true_statement"               #21
+          "validator_intfield"                     #22
+          "validator_true_statement"               #23
+          "validator_intfield_lt"                  #24
+          "validator_intfield_lt"                  #25
+          "validator_true_statement"               #26
+          "validator_true_statement"               #27
+          "validator_intfield_gt"                  #28
+)
+
+FILTER_COUNT=${#FILTERS[@]}
+i=0
+
+start_lttng_sessiond
+
+while [ "$i" -lt "$FILTER_COUNT" ]; do
+
+       test_valid_filter "${FILTERS[$i]}" "${VALIDATOR[$i]}"
+
+       if [ $? -eq 1 ]; then
+               stop_lttng_sessiond
+               exit 1
+       fi
+
+       let "i++"
+done
+
+stop_lttng_sessiond
diff --git a/tests/regression/tools/filtering/unsupported-ops b/tests/regression/tools/filtering/unsupported-ops
deleted file mode 100755 (executable)
index 9fac9de..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License, version 2 only, as
-# published by the Free Software Foundation.
-#
-# This program 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
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-TEST_DESC="Filtering - Unsupported operators"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-LTTNG_BIN="lttng"
-SESSION_NAME="filter-unsupported-ops"
-EVENT_NAME="bogus"
-ENABLE_EVENT_STDERR="/tmp/unsupported-ops-enable"
-TRACE_PATH=$(mktemp -d)
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-function enable_ust_lttng_event_filter_unsupported
-{
-       sess_name=$1
-       event_name=$2
-       filter=$3
-
-       echo -n "Enabling lttng event with filtering and unsupported operator "
-       enable_cmd="$TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event"
-       $enable_cmd $event_name -s $sess_name -u --filter "$filter" 2> $ENABLE_EVENT_STDERR 1> /dev/null
-
-       # Enable must fail
-       if [ $? -eq 0 ]; then
-               print_fail
-               return 1
-       else
-               print_ok
-               return 0
-       fi
-}
-
-function test_unsupported_op
-{
-       test_op_str=$1
-       test_op_tkn=$2
-
-       echo ""
-       echo -e "=== Testing filter expression with unsupported operator $test_op_str ($test_op_tkn)"
-
-       # Create session
-       create_lttng_session $SESSION_NAME $TRACE_PATH
-
-       # Create filter
-       if [ "$test_op_str" == "UNARY_BIN_NOT" ]; then
-               TEST_FILTER="${test_op_tkn}1"
-       else
-               TEST_FILTER="intfield $test_op_tkn 1"
-       fi
-
-       # Apply filter
-       enable_ust_lttng_event_filter_unsupported $SESSION_NAME $EVENT_NAME "$TEST_FILTER"
-
-       # Test stderr for unsupported operator
-       echo -n "Unsupported operator test $test_op_str ($test_op_tkn) "
-       grep -i -q "not[[:space:]]\+supported" $ENABLE_EVENT_STDERR
-
-       if [ $? -eq 1 ]; then
-               print_fail
-               return 1
-       else
-               print_ok
-       fi
-
-       # Destroy session
-       destroy_lttng_session $SESSION_NAME
-       return 0
-}
-
-# Unsupported operators
-OP_STR=("MUL" "DIV" "MOD" "PLUS" "MINUS" "LSHIFT" "RSHIFT"
-       "BIN_AND" "BIN_OR" "BIN_XOR" "UNARY_BIN_NOT")
-
-OP_TKN=("*" "/" "%" "+" "-" "<<" ">>" "&" "|" "^" "~")
-
-OP_COUNT=${#OP_STR[@]}
-i=0
-
-start_lttng_sessiond
-
-while [ "$i" -lt "$OP_COUNT" ]; do
-       test_unsupported_op "${OP_STR[$i]}" "${OP_TKN[$i]}"
-
-       if [ $? -eq 1 ]; then
-               exit 1
-       fi
-
-       let "i++"
-done
-
-stop_lttng_sessiond
-
-# Cleanup
-rm -f $ENABLE_EVENT_STDERR
-rm -rf $TRACE_PATH
diff --git a/tests/regression/tools/filtering/valid-filters b/tests/regression/tools/filtering/valid-filters
deleted file mode 100755 (executable)
index 067d205..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License, version 2 only, as
-# published by the Free Software Foundation.
-#
-# This program 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
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-TEST_DESC="Filtering - Valid filters"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-LTTNG_BIN="lttng"
-BIN_NAME="gen-ust-events"
-STATS_BIN="babelstats.pl"
-SESSION_NAME="valid_filter"
-EVENT_NAME="tp:tptest"
-NR_ITER=100
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -x "$CURDIR/$BIN_NAME" ]; then
-       echo -e "No UST nevents binary detected. Passing."
-       exit 0
-fi
-
-function enable_ust_lttng_event_filter()
-{
-       sess_name="$1"
-       event_name="$2"
-       filter="$3"
-       echo -n "Enabling lttng event with filtering "
-
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event $event_name -s $sess_name -u --filter "$filter" 2>&1 >/dev/null
-
-       if [ $? -eq 0 ]; then
-               print_ok
-               return 0
-       else
-               print_fail
-               return 1
-       fi
-}
-
-function run_apps
-{
-       ./$CURDIR/$BIN_NAME $NR_ITER & >/dev/null 2>&1
-}
-
-function wait_apps
-{
-       echo "Waiting for applications to end"
-       while [ -n "$(pidof $BIN_NAME)" ]; do
-               echo -n "."
-               sleep 1
-       done
-       echo ""
-}
-
-function test_valid_filter
-{
-       filter="$1"
-       validator="$2"
-
-       echo ""
-       echo -e "=== Testing valid filter: $1"
-
-       trace_path=$(mktemp -d)
-
-       # Create session
-       create_lttng_session $SESSION_NAME $trace_path
-
-       # Enable filter
-       enable_ust_lttng_event_filter $SESSION_NAME $EVENT_NAME $filter
-
-       # Trace apps
-       start_lttng_tracing $SESSION_NAME
-       run_apps
-       wait_apps
-       stop_lttng_tracing $SESSION_NAME
-
-       # Destroy session
-       destroy_lttng_session $SESSION_NAME
-
-       echo -n "Validating filter output "
-       stats=`babeltrace $trace_path | $CURDIR/$STATS_BIN --tracepoint $EVENT_NAME`
-
-       rm -rf $trace_path
-
-       $validator "$stats"
-
-       if [ $? -eq 0 ]; then
-               print_ok
-#              rm -rf $trace_path
-               return 0
-       else
-               print_fail
-               return 1
-       fi
-}
-
-function validate_min_max
-{
-       stats="$1"
-       field=$2
-       expected_min=$3
-       expected_max=$4
-
-       echo $stats | grep -q "$field $expected_min $expected_max"
-
-       return $?
-}
-
-function validator_intfield
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "1" "99"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "intfield2" "0x1" "0x63"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "longfield" "1" "99"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "netintfield" "1" "99"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "netintfieldhex" "0x1" "0x63"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "floatfield" "2222" "2222"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "doublefield" "2" "2"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_gt
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "2" "99"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_ge
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "1" "99"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_lt
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "0" "1"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_le
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "0" "2"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_eq
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "1" "1"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_ne
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "0" "98"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_not
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "0" "0"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_gt_and_longfield_gt
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "43" "99"
-       status=$(($status|$?))
-       validate_min_max "$stats" "longfield" "43" "99"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_ge_and_longfield_le
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "42" "42"
-       status=$(($status|$?))
-       validate_min_max "$stats" "longfield" "42" "42"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_intfield_lt_or_longfield_gt
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "0" "99"
-       status=$(($status|$?))
-       validate_min_max "$stats" "longfield" "0" "99"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_mixed_str_or_int_and_int
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "34" "99"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "stringfield" "\"test\"" "\"test\""
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_mixed_int_double
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "0" "42"
-       status=$(($status|$?))
-
-       return $status
-}
-
-function validator_true_statement
-{
-       stats="$1"
-       status=0
-
-       validate_min_max "$stats" "intfield" "0" "99"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "intfield2" "0x0" "0x63"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "longfield" "0" "99"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "netintfield" "0" "99"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "netintfieldhex" "0x0" "0x63"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "floatfield" "2222" "2222"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "doublefield" "2" "2"
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "stringfield" "\"test\"" "\"test\""
-       status=$(($status|$?))
-
-       validate_min_max "$stats" "stringfield2" ""\*"" ""\*""
-       status=$(($status|$?))
-
-       return $status
-}
-
-IFS=$'\n'
-
-issue_356_filter="intfield > 0 && intfield > 1 && "
-issue_356_filter+="intfield > 2 && intfield > 3 && "
-issue_356_filter+="intfield > 4 && intfield > 5 && "
-issue_356_filter+="intfield > 6 && intfield > 7 && "
-issue_356_filter+="intfield > 8 || intfield > 0"
-
-# One to one mapping between filters and validators
-
-FILTERS=("intfield"                                                     #1
-        "intfield > 1"                                                 #2
-        "intfield >= 1"                                                #3
-        "intfield < 2"                                                 #4
-        "intfield <= 2"                                                #5
-        "intfield == 1"                                                #6
-        "intfield != 99"                                               #7
-        "!intfield"                                                    #8
-        "-intfield"                                                    #9
-        "--intfield"                                                   #10
-        "+intfield"                                                    #11
-        "++intfield"                                                   #12
-        "intfield > 1 && longfield > 42"                               #13
-        "intfield >= 42 && longfield <= 42"                            #14
-        "intfield < 1 || longfield > 98"                               #15
-        "(stringfield == \"test\" || intfield != 10) && intfield > 33" #16
-        "intfield < 42.4242424242"                                     #17
-        "\"test\" == \"test\""                                         #18 #Issue #342
-        "stringfield == \"test\""                                      #19
-        "stringfield == \"t*\""                                        #20
-        "stringfield == \"*\""                                         #21
-        $issue_356_filter                                              #22 #Issue #356
-        "intfield < 0xDEADBEEF"                                        #23
-        "intfield < 0x2"                                               #24
-        "intfield < 02"                                                #25
-        "stringfield2 == \"\\\*\""                                     #26
-        "1.0 || intfield || 1.0"                                       #27
-        "1 < intfield"                                                 #28
-)
-
-VALIDATOR=("validator_intfield"                     #1
-          "validator_intfield_gt"                  #2
-          "validator_intfield_ge"                  #3
-          "validator_intfield_lt"                  #4
-          "validator_intfield_le"                  #5
-          "validator_intfield_eq"                  #6
-          "validator_intfield_ne"                  #7
-          "validator_intfield_not"                 #8
-          "validator_intfield"                     #9
-          "validator_intfield"                     #10
-          "validator_intfield"                     #11
-          "validator_intfield"                     #12
-          "validator_intfield_gt_and_longfield_gt" #13
-          "validator_intfield_ge_and_longfield_le" #14
-          "validator_intfield_lt_or_longfield_gt"  #15
-          "validator_mixed_str_or_int_and_int"     #16
-          "validator_mixed_int_double"             #17
-          "validator_true_statement"               #18
-          "validator_true_statement"               #19
-          "validator_true_statement"               #20
-          "validator_true_statement"               #21
-          "validator_intfield"                     #22
-          "validator_true_statement"               #23
-          "validator_intfield_lt"                  #24
-          "validator_intfield_lt"                  #25
-          "validator_true_statement"               #26
-          "validator_true_statement"               #27
-          "validator_intfield_gt"                  #28
-)
-
-FILTER_COUNT=${#FILTERS[@]}
-i=0
-
-start_lttng_sessiond
-
-while [ "$i" -lt "$FILTER_COUNT" ]; do
-
-       test_valid_filter "${FILTERS[$i]}" "${VALIDATOR[$i]}"
-
-       if [ $? -eq 1 ]; then
-               stop_lttng_sessiond
-               exit 1
-       fi
-
-       let "i++"
-done
-
-stop_lttng_sessiond
diff --git a/tests/regression/tools/health/health_thread_exit b/tests/regression/tools/health/health_thread_exit
deleted file mode 100755 (executable)
index 79e0e05..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License, version 2 only, as
-# published by the Free Software Foundation.
-#
-# This program 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
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-TEST_DESC="Health check - Thread exit"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-LTTNG_BIN="lttng"
-SESSION_NAME="health_thread_exit"
-EVENT_NAME="bogus"
-HEALTH_CHECK_BIN="health_check"
-SESSIOND_PRELOAD=".libs/libhealthexit.so"
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -f "$CURDIR/$SESSIOND_PRELOAD" ]; then
-       echo -e "libhealthexit.so not available for this test. Skipping."
-       exit 0
-fi
-
-function test_thread_exit
-{
-       test_thread_exit_name="$1"
-       test_thread_exit_code="$2"
-
-       echo ""
-       echo -e "=== Testing health failure with ${test_thread_exit_name}"
-
-       # Activate testpoints
-       export LTTNG_TESTPOINT_ENABLE=1
-
-       # Activate specific thread exit
-       export ${test_thread_exit_name}_EXIT=1
-
-       # Spawn sessiond with preload healthexit lib
-       export LD_PRELOAD="$CURDIR/$SESSIOND_PRELOAD"
-       start_lttng_sessiond
-
-       # Cleanup some env. var.
-       unset LD_PRELOAD
-       unset ${test_thread_exit_name}_EXIT
-
-       # Check initial health status
-       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
-
-       echo -n "Validating thread ${test_thread_exit_name} failure... "
-
-       # Wait
-       sleep 25
-
-       # Check health status, exit code should indicate failure
-       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
-
-       health_check_exit_code=$?
-
-       if [ $health_check_exit_code -eq $test_thread_exit_code ]; then
-               print_ok
-               stop_lttng_sessiond
-       else
-               print_fail
-               echo -e "Health returned: $health_check_exit_code\n"
-
-               stop_lttng_sessiond
-               return 1
-       fi
-}
-
-THREAD=("LTTNG_THREAD_MANAGE_CLIENTS"
-       "LTTNG_THREAD_MANAGE_APPS"
-       "LTTNG_THREAD_REG_APPS"
-       "LTTNG_THREAD_MANAGE_KERNEL")
-
-# Exit code value to indicate specific thread failure
-EXIT_CODE=(1 2 4 8)
-
-THREAD_COUNT=${#THREAD[@]}
-i=0
-while [ "$i" -lt "$THREAD_COUNT" ]; do
-       test_thread_exit "${THREAD[$i]}" "${EXIT_CODE[$i]}"
-
-       if [ $? -eq 1 ]; then
-               exit 1
-       fi
-
-       let "i++"
-done
-
-# Special case manage consumer, need to spawn consumer via commands.
-#"LTTNG_THREAD_MANAGE_CONSUMER"
diff --git a/tests/regression/tools/health/health_thread_stall b/tests/regression/tools/health/health_thread_stall
deleted file mode 100755 (executable)
index dc9d850..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License, version 2 only, as
-# published by the Free Software Foundation.
-#
-# This program 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
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-TEST_DESC="Health check - Thread stall"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-LTTNG_BIN="lttng"
-SESSION_NAME="health_thread_stall"
-EVENT_NAME="bogus"
-HEALTH_CHECK_BIN="health_check"
-SESSIOND_PRELOAD=".libs/libhealthstall.so"
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -f "$CURDIR/$SESSIOND_PRELOAD" ]; then
-       echo -e "libhealthstall.so not available for this test. Skipping."
-       exit 0
-fi
-
-function test_thread_stall
-{
-       test_thread_stall_name="$1"
-       test_thread_exit_code="$2"
-
-       echo ""
-       echo -e "=== Testing health failure with ${test_thread_stall_name}"
-
-       # Activate testpoints
-       export LTTNG_TESTPOINT_ENABLE=1
-
-       # Activate specific thread exit
-       export ${test_thread_stall_name}_STALL=1
-
-       # Spawn sessiond with preload healthexit lib
-       export LD_PRELOAD="$CURDIR/$SESSIOND_PRELOAD"
-       start_lttng_sessiond
-
-       # Cleanup some env. var.
-       unset LD_PRELOAD
-       unset ${test_thread_stall_name}_STALL
-
-       # Check initial health status
-       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
-
-       echo -n "Validating that ${test_thread_stall_name} is stalled... "
-
-       # Wait
-       sleep 25
-
-       # Check health status, exit code should indicate failure
-       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
-
-       health_check_exit_code=$?
-
-       if [ $health_check_exit_code -eq $test_thread_exit_code ]; then
-               print_ok
-       else
-               print_fail
-               echo -e "Health returned: $health_check_exit_code\n"
-
-               stop_lttng_sessiond
-               return 1
-       fi
-
-       echo -n "Validating that ${test_thread_stall_name} is no longer stalled... "
-
-       # Wait
-       sleep 40
-
-       # Check health status, exit code should now pass
-       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
-
-       health_check_exit_code=$?
-
-       if [ $health_check_exit_code -eq 0 ]; then
-               print_ok
-               stop_lttng_sessiond
-       else
-               print_fail
-               echo -e "Health returned: $health_check_exit_code\n"
-               stop_lttng_sessiond
-               return 1
-       fi
-
-
-}
-
-THREAD=("LTTNG_THREAD_MANAGE_CLIENTS"
-       "LTTNG_THREAD_MANAGE_APPS"
-# This thread is a little bit tricky to stall,
-# need to send some commands and setup an app.
-#      "LTTNG_THREAD_REG_APPS"
-       "LTTNG_THREAD_MANAGE_KERNEL")
-
-# Exit code value to indicate specific thread failure
-EXIT_CODE=(1
-          2
-#         4
-          8)
-
-THREAD_COUNT=${#THREAD[@]}
-i=0
-while [ "$i" -lt "$THREAD_COUNT" ]; do
-       test_thread_stall "${THREAD[$i]}" "${EXIT_CODE[$i]}"
-
-       if [ $? -eq 1 ]; then
-               exit 1
-       fi
-
-       let "i++"
-done
diff --git a/tests/regression/tools/health/health_tp_fail b/tests/regression/tools/health/health_tp_fail
deleted file mode 100755 (executable)
index 0b474fa..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License, version 2 only, as
-# published by the Free Software Foundation.
-#
-# This program 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
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-TEST_DESC="Health check - Testpoint failure"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-LTTNG_BIN="lttng"
-SESSION_NAME="health_tp_fail"
-EVENT_NAME="bogus"
-HEALTH_CHECK_BIN="health_check"
-SESSIOND_PRELOAD=".libs/libhealthtpfail.so"
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -f "$CURDIR/$SESSIOND_PRELOAD" ]; then
-       echo -e "libhealthtpfail.so not available for this test. Skipping."
-       exit 0
-fi
-
-function test_tp_fail
-{
-       test_tp_fail_name="$1"
-       test_tp_fail_code="$2"
-
-       echo ""
-       echo -e "=== Testing health failure with ${test_tp_fail_name}"
-
-       # Activate testpoints
-       export LTTNG_TESTPOINT_ENABLE=1
-
-       # Activate specific testpoint failure
-       export ${test_tp_fail_name}_TP_FAIL=1
-
-       # Spawn sessiond with preload healthexit lib
-       export LD_PRELOAD="$CURDIR/$SESSIOND_PRELOAD"
-       start_lttng_sessiond
-
-       # Cleanup some env. var.
-       unset LD_PRELOAD
-       unset ${test_tp_fail_name}_TP_FAIL
-
-       echo -n "Validating thread ${test_tp_fail_name} failure... "
-
-       # Check health status, exit code should indicate failure
-       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
-
-       health_check_exit_code=$?
-
-       if [ $health_check_exit_code -eq $test_tp_fail_code ]; then
-               print_ok
-               stop_lttng_sessiond
-       else
-               print_fail
-               echo -e "Health returned: $health_check_exit_code\n"
-
-               stop_lttng_sessiond
-               return 1
-       fi
-}
-
-THREAD=("LTTNG_THREAD_MANAGE_CLIENTS"
-       "LTTNG_THREAD_MANAGE_APPS"
-       "LTTNG_THREAD_MANAGE_KERNEL")
-
-# Exit code value to indicate specific thread failure
-EXIT_CODE=(1 2 8)
-
-THREAD_COUNT=${#THREAD[@]}
-i=0
-while [ "$i" -lt "$THREAD_COUNT" ]; do
-       test_tp_fail "${THREAD[$i]}" "${EXIT_CODE[$i]}"
-
-       if [ $? -eq 1 ]; then
-               exit 1
-       fi
-
-       let "i++"
-done
-
-# Special case manage consumer, need to spawn consumer via commands.
-#"LTTNG_THREAD_MANAGE_CONSUMER"
index d1c8b34468b11a2d87d15a76d02839802622cdb7..0ed0c8e830a2a9158391665da96e1afd5b0a20a9 100755 (executable)
@@ -2,7 +2,7 @@
 
 DIR=$(dirname $0)
 
-tests=( $DIR/health_thread_exit $DIR/health_thread_stall $DIR/health_tp_fail)
+tests=( $DIR/test_thread_exit $DIR/test_thread_stall $DIR/test_tp_fail)
 exit_code=0
 
 function start_tests ()
diff --git a/tests/regression/tools/health/test_thread_exit b/tests/regression/tools/health/test_thread_exit
new file mode 100755 (executable)
index 0000000..79e0e05
--- /dev/null
@@ -0,0 +1,105 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License, version 2 only, as
+# published by the Free Software Foundation.
+#
+# This program 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
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+TEST_DESC="Health check - Thread exit"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+LTTNG_BIN="lttng"
+SESSION_NAME="health_thread_exit"
+EVENT_NAME="bogus"
+HEALTH_CHECK_BIN="health_check"
+SESSIOND_PRELOAD=".libs/libhealthexit.so"
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+if [ ! -f "$CURDIR/$SESSIOND_PRELOAD" ]; then
+       echo -e "libhealthexit.so not available for this test. Skipping."
+       exit 0
+fi
+
+function test_thread_exit
+{
+       test_thread_exit_name="$1"
+       test_thread_exit_code="$2"
+
+       echo ""
+       echo -e "=== Testing health failure with ${test_thread_exit_name}"
+
+       # Activate testpoints
+       export LTTNG_TESTPOINT_ENABLE=1
+
+       # Activate specific thread exit
+       export ${test_thread_exit_name}_EXIT=1
+
+       # Spawn sessiond with preload healthexit lib
+       export LD_PRELOAD="$CURDIR/$SESSIOND_PRELOAD"
+       start_lttng_sessiond
+
+       # Cleanup some env. var.
+       unset LD_PRELOAD
+       unset ${test_thread_exit_name}_EXIT
+
+       # Check initial health status
+       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
+
+       echo -n "Validating thread ${test_thread_exit_name} failure... "
+
+       # Wait
+       sleep 25
+
+       # Check health status, exit code should indicate failure
+       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
+
+       health_check_exit_code=$?
+
+       if [ $health_check_exit_code -eq $test_thread_exit_code ]; then
+               print_ok
+               stop_lttng_sessiond
+       else
+               print_fail
+               echo -e "Health returned: $health_check_exit_code\n"
+
+               stop_lttng_sessiond
+               return 1
+       fi
+}
+
+THREAD=("LTTNG_THREAD_MANAGE_CLIENTS"
+       "LTTNG_THREAD_MANAGE_APPS"
+       "LTTNG_THREAD_REG_APPS"
+       "LTTNG_THREAD_MANAGE_KERNEL")
+
+# Exit code value to indicate specific thread failure
+EXIT_CODE=(1 2 4 8)
+
+THREAD_COUNT=${#THREAD[@]}
+i=0
+while [ "$i" -lt "$THREAD_COUNT" ]; do
+       test_thread_exit "${THREAD[$i]}" "${EXIT_CODE[$i]}"
+
+       if [ $? -eq 1 ]; then
+               exit 1
+       fi
+
+       let "i++"
+done
+
+# Special case manage consumer, need to spawn consumer via commands.
+#"LTTNG_THREAD_MANAGE_CONSUMER"
diff --git a/tests/regression/tools/health/test_thread_stall b/tests/regression/tools/health/test_thread_stall
new file mode 100755 (executable)
index 0000000..dc9d850
--- /dev/null
@@ -0,0 +1,128 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License, version 2 only, as
+# published by the Free Software Foundation.
+#
+# This program 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
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+TEST_DESC="Health check - Thread stall"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+LTTNG_BIN="lttng"
+SESSION_NAME="health_thread_stall"
+EVENT_NAME="bogus"
+HEALTH_CHECK_BIN="health_check"
+SESSIOND_PRELOAD=".libs/libhealthstall.so"
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+if [ ! -f "$CURDIR/$SESSIOND_PRELOAD" ]; then
+       echo -e "libhealthstall.so not available for this test. Skipping."
+       exit 0
+fi
+
+function test_thread_stall
+{
+       test_thread_stall_name="$1"
+       test_thread_exit_code="$2"
+
+       echo ""
+       echo -e "=== Testing health failure with ${test_thread_stall_name}"
+
+       # Activate testpoints
+       export LTTNG_TESTPOINT_ENABLE=1
+
+       # Activate specific thread exit
+       export ${test_thread_stall_name}_STALL=1
+
+       # Spawn sessiond with preload healthexit lib
+       export LD_PRELOAD="$CURDIR/$SESSIOND_PRELOAD"
+       start_lttng_sessiond
+
+       # Cleanup some env. var.
+       unset LD_PRELOAD
+       unset ${test_thread_stall_name}_STALL
+
+       # Check initial health status
+       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
+
+       echo -n "Validating that ${test_thread_stall_name} is stalled... "
+
+       # Wait
+       sleep 25
+
+       # Check health status, exit code should indicate failure
+       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
+
+       health_check_exit_code=$?
+
+       if [ $health_check_exit_code -eq $test_thread_exit_code ]; then
+               print_ok
+       else
+               print_fail
+               echo -e "Health returned: $health_check_exit_code\n"
+
+               stop_lttng_sessiond
+               return 1
+       fi
+
+       echo -n "Validating that ${test_thread_stall_name} is no longer stalled... "
+
+       # Wait
+       sleep 40
+
+       # Check health status, exit code should now pass
+       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
+
+       health_check_exit_code=$?
+
+       if [ $health_check_exit_code -eq 0 ]; then
+               print_ok
+               stop_lttng_sessiond
+       else
+               print_fail
+               echo -e "Health returned: $health_check_exit_code\n"
+               stop_lttng_sessiond
+               return 1
+       fi
+
+
+}
+
+THREAD=("LTTNG_THREAD_MANAGE_CLIENTS"
+       "LTTNG_THREAD_MANAGE_APPS"
+# This thread is a little bit tricky to stall,
+# need to send some commands and setup an app.
+#      "LTTNG_THREAD_REG_APPS"
+       "LTTNG_THREAD_MANAGE_KERNEL")
+
+# Exit code value to indicate specific thread failure
+EXIT_CODE=(1
+          2
+#         4
+          8)
+
+THREAD_COUNT=${#THREAD[@]}
+i=0
+while [ "$i" -lt "$THREAD_COUNT" ]; do
+       test_thread_stall "${THREAD[$i]}" "${EXIT_CODE[$i]}"
+
+       if [ $? -eq 1 ]; then
+               exit 1
+       fi
+
+       let "i++"
+done
diff --git a/tests/regression/tools/health/test_tp_fail b/tests/regression/tools/health/test_tp_fail
new file mode 100755 (executable)
index 0000000..0b474fa
--- /dev/null
@@ -0,0 +1,98 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License, version 2 only, as
+# published by the Free Software Foundation.
+#
+# This program 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
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+TEST_DESC="Health check - Testpoint failure"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+LTTNG_BIN="lttng"
+SESSION_NAME="health_tp_fail"
+EVENT_NAME="bogus"
+HEALTH_CHECK_BIN="health_check"
+SESSIOND_PRELOAD=".libs/libhealthtpfail.so"
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+if [ ! -f "$CURDIR/$SESSIOND_PRELOAD" ]; then
+       echo -e "libhealthtpfail.so not available for this test. Skipping."
+       exit 0
+fi
+
+function test_tp_fail
+{
+       test_tp_fail_name="$1"
+       test_tp_fail_code="$2"
+
+       echo ""
+       echo -e "=== Testing health failure with ${test_tp_fail_name}"
+
+       # Activate testpoints
+       export LTTNG_TESTPOINT_ENABLE=1
+
+       # Activate specific testpoint failure
+       export ${test_tp_fail_name}_TP_FAIL=1
+
+       # Spawn sessiond with preload healthexit lib
+       export LD_PRELOAD="$CURDIR/$SESSIOND_PRELOAD"
+       start_lttng_sessiond
+
+       # Cleanup some env. var.
+       unset LD_PRELOAD
+       unset ${test_tp_fail_name}_TP_FAIL
+
+       echo -n "Validating thread ${test_tp_fail_name} failure... "
+
+       # Check health status, exit code should indicate failure
+       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
+
+       health_check_exit_code=$?
+
+       if [ $health_check_exit_code -eq $test_tp_fail_code ]; then
+               print_ok
+               stop_lttng_sessiond
+       else
+               print_fail
+               echo -e "Health returned: $health_check_exit_code\n"
+
+               stop_lttng_sessiond
+               return 1
+       fi
+}
+
+THREAD=("LTTNG_THREAD_MANAGE_CLIENTS"
+       "LTTNG_THREAD_MANAGE_APPS"
+       "LTTNG_THREAD_MANAGE_KERNEL")
+
+# Exit code value to indicate specific thread failure
+EXIT_CODE=(1 2 8)
+
+THREAD_COUNT=${#THREAD[@]}
+i=0
+while [ "$i" -lt "$THREAD_COUNT" ]; do
+       test_tp_fail "${THREAD[$i]}" "${EXIT_CODE[$i]}"
+
+       if [ $? -eq 1 ]; then
+               exit 1
+       fi
+
+       let "i++"
+done
+
+# Special case manage consumer, need to spawn consumer via commands.
+#"LTTNG_THREAD_MANAGE_CONSUMER"
index ddd092592a7f15c62cd11b88092320b079c52a76..1949f669b3687a494a20427056f9ffa809da489c 100644 (file)
@@ -14,5 +14,5 @@ gen_ust_events_SOURCES = gen-ust-events.c tp.c tp.h
 gen_ust_events_LDADD = -llttng-ust
 endif
 
-noinst_SCRIPTS = runall run-ust run-kernel uri_switch
-EXTRA_DIST = runall run-ust run-kernel uri_switch
+noinst_SCRIPTS = runall test_ust test_kernel test_uri_switch test_high_throughput_limits
+EXTRA_DIST = runall test_ust test_kernel test_uri_switch test_high_throughput_limits
diff --git a/tests/regression/tools/streaming/high_throughput_limits b/tests/regression/tools/streaming/high_throughput_limits
deleted file mode 100755 (executable)
index e2f094d..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
-#                      David Goulet <dgoulet@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="Streaming - High throughput with bandwidth limits"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-NR_APP_ITER=10
-NR_ITER=1000000
-BIN_NAME="gen-ust-events"
-SESSION_NAME="high-throughput"
-EVENT_NAME="tp:tptest"
-SESSIOND_CTRL_PORT=5342
-SESSIOND_DATA_PORT=5343
-DEFAULT_IF="lo"
-
-TRACE_PATH=$(mktemp -d)
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -x "$CURDIR/$BIN_NAME" ]; then
-       echo -e "No UST nevents binary detected. Passing."
-       exit 0
-fi
-
-if [ "$(id -u)" != "0" ]; then
-       echo "This test must be running as root to set bandwidth limits. Aborting"
-       # Exit status 0 so the tests can continue
-       exit 0
-fi
-
-function set_bw_limit
-{
-       limit=$1
-       ctrlportlimit=$(($limit/10))
-       # failsafe to have at least 1kbit/s for control (in the case where $1 < 10)
-       [ $ctrlportlimit = 0 ] && ctrlportlimit=1
-       # if $1 < 10, we might bust the limit set here, but the
-       # parent qdisc (1:) will always limit us to the right max value
-       dataportlimit=$((9*${ctrlportlimit}))
-
-       echo -n "Setting bandwidth limits to ${limit}kbits, (${ctrlportlimit} for control and ${dataportlimit} for data)... "
-       tc qdisc add dev $DEFAULT_IF root handle 1: htb default 15 >/dev/null 2>&1
-
-       # the total bandwidth is the limit set by the user
-       tc class add dev $DEFAULT_IF parent 1: classid 1:1 htb rate ${limit}kbit ceil ${limit}kbit >/dev/null 2>&1
-       # 1/10 of the bandwidth guaranteed and traffic prioritized for the control port
-       tc class add dev $DEFAULT_IF parent 1:1 classid 1:10 htb rate ${ctrlportlimit}kbit ceil ${limit}kbit prio 1 >/dev/null 2>&1
-       # 9/10 of the bandwidth guaranteed and can borrow up to the total bandwidth (if unused)
-       tc class add dev $DEFAULT_IF parent 1:1 classid 1:11 htb rate ${dataportlimit}kbit ceil ${limit}kbit prio 2 >/dev/null 2>&1
-
-       # filter to assign control traffic to the 1:10 class
-       tc filter add dev $DEFAULT_IF parent 1: protocol ip u32 match ip dport $SESSIOND_CTRL_PORT 0xffff flowid 1:10 >/dev/null 2>&1
-       # filter to assign data traffic to the 1:11 class
-       tc filter add dev $DEFAULT_IF parent 1: protocol ip u32 match ip dport $SESSIOND_DATA_PORT 0xffff flowid 1:11 >/dev/null 2>&1
-       print_ok
-}
-
-function reset_bw_limit
-{
-       echo -n "Resetting bandwidth limits... "
-       tc qdisc del dev $DEFAULT_IF root >/dev/null 2>&1
-       print_ok
-}
-
-function create_lttng_session_with_uri
-{
-       sess_name=$1
-       uri=$2
-       # Create session with custom URI
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN create -U $uri $sess_name >/dev/null 2>&1
-}
-
-function enable_lttng_consumer
-{
-       uri=$1
-       # Create session with custom URI
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-consumer -u $uri >/dev/null 2>&1
-}
-
-function run_apps
-{
-       for i in `seq 1 $NR_APP_ITER`; do
-               # With bandwidth limitation, unfortunately, application easily timeout
-               # due to very slow communication between the consumer and relayd making
-               # the status reply from the consumer quite slow thus delaying the
-               # registration done message.
-               LTTNG_UST_REGISTER_TIMEOUT=-1 ./$CURDIR/$BIN_NAME $NR_ITER & >/dev/null 2>&1
-       done
-}
-
-function wait_apps
-{
-       echo "Waiting for applications to end"
-       while [ -n "$(pidof $BIN_NAME)" ]; do
-               echo -n "."
-               sleep 1
-       done
-       echo ""
-}
-
-function test_high_throughput
-{
-       NETWORK_URI="net://localhost"
-       create_lttng_session_with_uri $SESSION_NAME $NETWORK_URI
-       enable_lttng_consumer $NETWORK_URI
-       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
-       run_apps
-       wait_apps
-
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
-       validate_event_count
-}
-
-function validate_event_count
-{
-
-       TEMP_FILE=$(mktemp)
-       TEMP_FILE_2=$(mktemp)
-
-       traced=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
-       babeltrace $TRACE_PATH >/dev/null 2>$TEMP_FILE_2
-
-       cat $TEMP_FILE_2 | cut -f4 -d " " >$TEMP_FILE
-
-       dropped=0
-       while read line;
-       do
-               let dropped=$dropped+$line
-       done < $TEMP_FILE
-
-       let total=$dropped+$traced
-       let wanted=$NR_APP_ITER*$NR_ITER
-
-       if [ $wanted -ne $total ]; then
-               echo -n "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... "
-               print_fail
-               return 1
-       else
-               echo -n "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... "
-               print_ok
-
-               # Cleanup only if everything is ok and passes.
-               rm -rf $TRACE_PATH
-               rm $TEMP_FILE $TEMP_FILE_2
-
-               return 0
-       fi
-}
-
-function interrupt_cleanup()
-{
-       echo -en "\n*** Exiting ***\n"
-       stop_lttng_relayd
-       stop_lttng_sessiond
-       reset_bw_limit
-       exit 1
-}
-
-# Catch sigint and try to cleanup limits
-trap interrupt_cleanup SIGINT
-
-BW_LIMITS=(3200 1600 800 400 200 100 50 25)
-for BW in ${BW_LIMITS[@]};
-do
-       echo ""
-       echo -e "=== Testing high-throughput with bandwidth limit set to ${BW}kbits"
-       set_bw_limit $BW
-
-       start_lttng_sessiond
-       start_lttng_relayd "-o $TRACE_PATH"
-       test_high_throughput
-       result=$?
-       stop_lttng_relayd
-       stop_lttng_sessiond
-       reset_bw_limit
-
-       if [ $result -ne 0 ]; then
-               exit 1
-       fi
-done
diff --git a/tests/regression/tools/streaming/run-kernel b/tests/regression/tools/streaming/run-kernel
deleted file mode 100755 (executable)
index f8b813d..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 David Goulet <dgoulet@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="Streaming - Kernel tracing"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-EVENT_NAME="sched_switch"
-PID_RELAYD=0
-SESSION_NAME=""
-
-TRACE_PATH=$(mktemp -d)
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ "$(id -u)" != "0" ]; then
-       echo "This test must be running as root. Aborting"
-       # Exit status 0 so the tests can continue
-       exit 0
-fi
-
-# LTTng kernel modules check
-out=`ls /lib/modules/$(uname -r)/extra | grep lttng`
-if [ -z "$out" ]; then
-       echo "LTTng modules not detected. Aborting kernel tests!"
-       echo ""
-       # Exit status 0 so the tests can continue
-       exit 0
-fi
-
-function lttng_create_session_uri
-{
-       echo -n "Creating session $SESSION_NAME... "
-       # Create session with default path
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $SESSION_NAME -U net://localhost >/dev/null 2>&1
-       if [ $? -eq 1 ]; then
-               print_fail
-               return 1
-       else
-               print_ok
-       fi
-}
-
-function test_kernel_before_start ()
-{
-       echo -e "\n=== Testing kernel streaming with event enable BEFORE start\n"
-       lttng_create_session_uri
-       lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
-       # Give a second
-       sleep 1
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
-
-       # We can not predict _yet_ when the trace is available so we have to do a
-       # arbitratry sleep to validate the trace.
-       echo -n "Waiting 3 seconds for the trace to be written on disk "
-       for i in `seq 1 3`; do
-               echo -n "."
-               sleep 1
-       done
-       echo ""
-}
-
-# Deactivated since this feature is not yet available where we can enable
-# an event AFTERE tracing has started.
-function test_kernel_after_start ()
-{
-       echo -e "\n=== Testing kernel streaming with event enable AFTER start\n"
-       lttng_create_session_uri
-       start_lttng_tracing $SESSION_NAME
-       lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME
-       # Give a second
-       sleep 1
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
-}
-
-start_lttng_sessiond
-start_lttng_relayd "-o $TRACE_PATH"
-
-tests=( test_kernel_before_start )
-
-for fct_test in ${tests[@]};
-do
-       SESSION_NAME=$(randstring 16 0)
-       ${fct_test}
-
-       # Validate test
-       validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME*
-       if [ $? -eq 0 ]; then
-               # Only delete if successful
-               rm -rf $TRACE_PATH
-       else
-               break
-       fi
-done
-
-echo ""
-stop_lttng_sessiond
-stop_lttng_relayd
-
-
-exit $out
diff --git a/tests/regression/tools/streaming/run-ust b/tests/regression/tools/streaming/run-ust
deleted file mode 100755 (executable)
index 6e6e5a7..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 David Goulet <dgoulet@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="Streaming - User space tracing"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-BIN_NAME="gen-ust-events"
-SESSION_NAME="stream"
-EVENT_NAME="tp:tptest"
-PID_RELAYD=0
-
-TRACE_PATH=$(mktemp -d)
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -x "$CURDIR/$BIN_NAME" ]; then
-       echo -e "No UST nevents binary detected. Passing."
-       exit 0
-fi
-
-function lttng_create_session_uri
-{
-       # Create session with default path
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $SESSION_NAME -U net://localhost >/dev/null 2>&1
-}
-
-function wait_apps
-{
-       echo -n "Waiting for applications to end"
-       while [ -n "$(pidof $BIN_NAME)" ]; do
-               echo -n "."
-               sleep 0.5
-       done
-       echo ""
-}
-
-# MUST set TESTDIR before calling those functions
-
-function test_ust_before_start ()
-{
-       echo -e "\n=== Testing UST streaming BEFORE tracing starts\n"
-       lttng_create_session_uri
-       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
-
-       # Run 5 times with a 1 second delay
-       ./$CURDIR/$BIN_NAME 5 1000000 >/dev/null 2>&1 &
-
-       start_lttng_tracing $SESSION_NAME
-
-       wait_apps
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
-}
-
-function test_ust_after_start ()
-{
-       echo -e "\n=== Testing UST streaming AFTER tracing starts\n"
-       lttng_create_session_uri
-       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
-
-       # Run 5 times with a 1 second delay
-       ./$CURDIR/$BIN_NAME 5 1000000 >/dev/null 2>&1 &
-
-       wait_apps
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
-}
-
-start_lttng_sessiond
-start_lttng_relayd "-o $TRACE_PATH"
-
-tests=( test_ust_before_start test_ust_after_start )
-
-for fct_test in ${tests[@]};
-do
-       SESSION_NAME=$(randstring 16 0)
-       ${fct_test}
-
-       # Validate test
-       validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME*
-       if [ $? -eq 0 ]; then
-               # Only delete if successful
-               rm -rf $TRACE_PATH
-       else
-               break
-       fi
-done
-
-echo ""
-stop_lttng_sessiond
-stop_lttng_relayd
-
-exit $out
index dbf5228ce524a630d50e9b7b0145c3243db977bc..809449bf397c21ac9242f74d0f05262d1b5f55f1 100755 (executable)
@@ -2,7 +2,7 @@
 
 DIR=$(dirname $0)
 
-tests=( $DIR/unit_tests $DIR/run-kernel $DIR/run-ust )
+tests=( $DIR/test_uri_switch $DIR/test_kernel $DIR/test_ust )
 exit_code=0
 
 function start_tests ()
diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits
new file mode 100755 (executable)
index 0000000..e2f094d
--- /dev/null
@@ -0,0 +1,200 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+#                      David Goulet <dgoulet@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="Streaming - High throughput with bandwidth limits"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+NR_APP_ITER=10
+NR_ITER=1000000
+BIN_NAME="gen-ust-events"
+SESSION_NAME="high-throughput"
+EVENT_NAME="tp:tptest"
+SESSIOND_CTRL_PORT=5342
+SESSIOND_DATA_PORT=5343
+DEFAULT_IF="lo"
+
+TRACE_PATH=$(mktemp -d)
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+if [ ! -x "$CURDIR/$BIN_NAME" ]; then
+       echo -e "No UST nevents binary detected. Passing."
+       exit 0
+fi
+
+if [ "$(id -u)" != "0" ]; then
+       echo "This test must be running as root to set bandwidth limits. Aborting"
+       # Exit status 0 so the tests can continue
+       exit 0
+fi
+
+function set_bw_limit
+{
+       limit=$1
+       ctrlportlimit=$(($limit/10))
+       # failsafe to have at least 1kbit/s for control (in the case where $1 < 10)
+       [ $ctrlportlimit = 0 ] && ctrlportlimit=1
+       # if $1 < 10, we might bust the limit set here, but the
+       # parent qdisc (1:) will always limit us to the right max value
+       dataportlimit=$((9*${ctrlportlimit}))
+
+       echo -n "Setting bandwidth limits to ${limit}kbits, (${ctrlportlimit} for control and ${dataportlimit} for data)... "
+       tc qdisc add dev $DEFAULT_IF root handle 1: htb default 15 >/dev/null 2>&1
+
+       # the total bandwidth is the limit set by the user
+       tc class add dev $DEFAULT_IF parent 1: classid 1:1 htb rate ${limit}kbit ceil ${limit}kbit >/dev/null 2>&1
+       # 1/10 of the bandwidth guaranteed and traffic prioritized for the control port
+       tc class add dev $DEFAULT_IF parent 1:1 classid 1:10 htb rate ${ctrlportlimit}kbit ceil ${limit}kbit prio 1 >/dev/null 2>&1
+       # 9/10 of the bandwidth guaranteed and can borrow up to the total bandwidth (if unused)
+       tc class add dev $DEFAULT_IF parent 1:1 classid 1:11 htb rate ${dataportlimit}kbit ceil ${limit}kbit prio 2 >/dev/null 2>&1
+
+       # filter to assign control traffic to the 1:10 class
+       tc filter add dev $DEFAULT_IF parent 1: protocol ip u32 match ip dport $SESSIOND_CTRL_PORT 0xffff flowid 1:10 >/dev/null 2>&1
+       # filter to assign data traffic to the 1:11 class
+       tc filter add dev $DEFAULT_IF parent 1: protocol ip u32 match ip dport $SESSIOND_DATA_PORT 0xffff flowid 1:11 >/dev/null 2>&1
+       print_ok
+}
+
+function reset_bw_limit
+{
+       echo -n "Resetting bandwidth limits... "
+       tc qdisc del dev $DEFAULT_IF root >/dev/null 2>&1
+       print_ok
+}
+
+function create_lttng_session_with_uri
+{
+       sess_name=$1
+       uri=$2
+       # Create session with custom URI
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN create -U $uri $sess_name >/dev/null 2>&1
+}
+
+function enable_lttng_consumer
+{
+       uri=$1
+       # Create session with custom URI
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-consumer -u $uri >/dev/null 2>&1
+}
+
+function run_apps
+{
+       for i in `seq 1 $NR_APP_ITER`; do
+               # With bandwidth limitation, unfortunately, application easily timeout
+               # due to very slow communication between the consumer and relayd making
+               # the status reply from the consumer quite slow thus delaying the
+               # registration done message.
+               LTTNG_UST_REGISTER_TIMEOUT=-1 ./$CURDIR/$BIN_NAME $NR_ITER & >/dev/null 2>&1
+       done
+}
+
+function wait_apps
+{
+       echo "Waiting for applications to end"
+       while [ -n "$(pidof $BIN_NAME)" ]; do
+               echo -n "."
+               sleep 1
+       done
+       echo ""
+}
+
+function test_high_throughput
+{
+       NETWORK_URI="net://localhost"
+       create_lttng_session_with_uri $SESSION_NAME $NETWORK_URI
+       enable_lttng_consumer $NETWORK_URI
+       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
+       start_lttng_tracing $SESSION_NAME
+       run_apps
+       wait_apps
+
+       stop_lttng_tracing $SESSION_NAME
+       destroy_lttng_session $SESSION_NAME
+       validate_event_count
+}
+
+function validate_event_count
+{
+
+       TEMP_FILE=$(mktemp)
+       TEMP_FILE_2=$(mktemp)
+
+       traced=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
+       babeltrace $TRACE_PATH >/dev/null 2>$TEMP_FILE_2
+
+       cat $TEMP_FILE_2 | cut -f4 -d " " >$TEMP_FILE
+
+       dropped=0
+       while read line;
+       do
+               let dropped=$dropped+$line
+       done < $TEMP_FILE
+
+       let total=$dropped+$traced
+       let wanted=$NR_APP_ITER*$NR_ITER
+
+       if [ $wanted -ne $total ]; then
+               echo -n "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... "
+               print_fail
+               return 1
+       else
+               echo -n "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... "
+               print_ok
+
+               # Cleanup only if everything is ok and passes.
+               rm -rf $TRACE_PATH
+               rm $TEMP_FILE $TEMP_FILE_2
+
+               return 0
+       fi
+}
+
+function interrupt_cleanup()
+{
+       echo -en "\n*** Exiting ***\n"
+       stop_lttng_relayd
+       stop_lttng_sessiond
+       reset_bw_limit
+       exit 1
+}
+
+# Catch sigint and try to cleanup limits
+trap interrupt_cleanup SIGINT
+
+BW_LIMITS=(3200 1600 800 400 200 100 50 25)
+for BW in ${BW_LIMITS[@]};
+do
+       echo ""
+       echo -e "=== Testing high-throughput with bandwidth limit set to ${BW}kbits"
+       set_bw_limit $BW
+
+       start_lttng_sessiond
+       start_lttng_relayd "-o $TRACE_PATH"
+       test_high_throughput
+       result=$?
+       stop_lttng_relayd
+       stop_lttng_sessiond
+       reset_bw_limit
+
+       if [ $result -ne 0 ]; then
+               exit 1
+       fi
+done
diff --git a/tests/regression/tools/streaming/test_kernel b/tests/regression/tools/streaming/test_kernel
new file mode 100755 (executable)
index 0000000..f8b813d
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 David Goulet <dgoulet@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="Streaming - Kernel tracing"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+EVENT_NAME="sched_switch"
+PID_RELAYD=0
+SESSION_NAME=""
+
+TRACE_PATH=$(mktemp -d)
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+if [ "$(id -u)" != "0" ]; then
+       echo "This test must be running as root. Aborting"
+       # Exit status 0 so the tests can continue
+       exit 0
+fi
+
+# LTTng kernel modules check
+out=`ls /lib/modules/$(uname -r)/extra | grep lttng`
+if [ -z "$out" ]; then
+       echo "LTTng modules not detected. Aborting kernel tests!"
+       echo ""
+       # Exit status 0 so the tests can continue
+       exit 0
+fi
+
+function lttng_create_session_uri
+{
+       echo -n "Creating session $SESSION_NAME... "
+       # Create session with default path
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $SESSION_NAME -U net://localhost >/dev/null 2>&1
+       if [ $? -eq 1 ]; then
+               print_fail
+               return 1
+       else
+               print_ok
+       fi
+}
+
+function test_kernel_before_start ()
+{
+       echo -e "\n=== Testing kernel streaming with event enable BEFORE start\n"
+       lttng_create_session_uri
+       lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME
+       start_lttng_tracing $SESSION_NAME
+       # Give a second
+       sleep 1
+       stop_lttng_tracing $SESSION_NAME
+       destroy_lttng_session $SESSION_NAME
+
+       # We can not predict _yet_ when the trace is available so we have to do a
+       # arbitratry sleep to validate the trace.
+       echo -n "Waiting 3 seconds for the trace to be written on disk "
+       for i in `seq 1 3`; do
+               echo -n "."
+               sleep 1
+       done
+       echo ""
+}
+
+# Deactivated since this feature is not yet available where we can enable
+# an event AFTERE tracing has started.
+function test_kernel_after_start ()
+{
+       echo -e "\n=== Testing kernel streaming with event enable AFTER start\n"
+       lttng_create_session_uri
+       start_lttng_tracing $SESSION_NAME
+       lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME
+       # Give a second
+       sleep 1
+       stop_lttng_tracing $SESSION_NAME
+       destroy_lttng_session $SESSION_NAME
+}
+
+start_lttng_sessiond
+start_lttng_relayd "-o $TRACE_PATH"
+
+tests=( test_kernel_before_start )
+
+for fct_test in ${tests[@]};
+do
+       SESSION_NAME=$(randstring 16 0)
+       ${fct_test}
+
+       # Validate test
+       validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME*
+       if [ $? -eq 0 ]; then
+               # Only delete if successful
+               rm -rf $TRACE_PATH
+       else
+               break
+       fi
+done
+
+echo ""
+stop_lttng_sessiond
+stop_lttng_relayd
+
+
+exit $out
diff --git a/tests/regression/tools/streaming/test_uri_switch b/tests/regression/tools/streaming/test_uri_switch
new file mode 100755 (executable)
index 0000000..06a3fbc
--- /dev/null
@@ -0,0 +1,217 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+#                      David Goulet <dgoulet@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="Streaming - URI switching"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+BIN_NAME="gen-ust-events"
+SESSION_NAME="stream"
+EVENT_NAME="tp:tptest"
+PID_RELAYD=0
+
+TRACE_PATH=$(mktemp -d)
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+if [ ! -x "$CURDIR/$BIN_NAME" ]; then
+       echo -e "No UST nevents binary detected. Skipping."
+       exit 0
+fi
+
+function lttng_create_session
+{
+       URI=$1
+       # Create session with custom URI
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN create -U $URI $SESSION_NAME >/dev/null 2>&1
+}
+
+function lttng_enable_consumer
+{
+       URI=$1
+       # Create session with custom URI
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-consumer -u $URI >/dev/null 2>&1
+}
+
+function run_apps
+{
+    # Run 5 times with a 1 second delay
+    COUNT=5
+    APP_DELAY=1000000
+    ./$CURDIR/$BIN_NAME $COUNT $APP_DELAY >/dev/null 2>&1 &
+
+}
+
+function wait_apps
+{
+       echo -n "Waiting for applications to end"
+       while [ -n "$(pidof $BIN_NAME)" ]; do
+               echo -n "."
+               sleep 0.5
+       done
+       echo ""
+}
+
+function test_uri_switch_localhost_folder
+{
+       IPVER=$1
+       echo -e "\n=== Testing switch of localhost folder ($IPVER)\n"
+
+       if [ "$IPVER" == "IPv6" ]; then
+           BASE_URI="net6://localhost"
+       else
+           BASE_URI="net://localhost"
+       fi
+
+       RANDCOUNT=10
+       RAND=""
+       i=1
+
+       lttng_create_session $BASE_URI
+
+       echo -e "Randomizing output folder on $BASE_URI..."
+       while [ "$i" -le $RANDCOUNT ]
+       do
+           RAND=$(randstring 16 0)
+           lttng_enable_consumer "$BASE_URI/$RAND"
+           let "i += 1"
+       done
+
+       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
+       start_lttng_tracing $SESSION_NAME
+       run_apps
+       wait_apps
+       stop_lttng_tracing $SESSION_NAME
+       destroy_lttng_session $SESSION_NAME
+       validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$RAND
+
+       if [ $? -eq 0 ]; then
+       # Only delete if successful
+           rm -rf $TRACE_PATH
+       fi
+}
+
+function test_uri_switch_file_network
+{
+       IPVER=$1
+       echo ""
+       echo -e "=== Testing switch file -> network ($IPVER)"
+
+       TMP_PATH=$(mktemp -d)
+       FILE_URI="file://$TMP_PATH"
+
+       if [ "$IPVER" == "IPv6" ]; then
+           NETWORK_URIS=("net6://localhost" "net6://[::1]")
+       else
+           NETWORK_URIS=("net://localhost" "net://127.0.0.1")
+       fi
+
+       NET_PATHS=("foo/bar" "OohEehOohAhAahTingTangWallaWallaBingBang" ".")
+
+       for NETWORK_URI in ${NETWORK_URIS[@]};
+       do
+           for NET_PATH in ${NET_PATHS[@]};
+           do
+               SESSION_NAME=$(randstring 16 0)
+               echo ""
+               echo "$FILE_URI -> $NETWORK_URI/$NET_PATH"
+
+               lttng_create_session $FILE_URI
+               lttng_enable_consumer "$NETWORK_URI/$NET_PATH"
+               enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
+               start_lttng_tracing $SESSION_NAME
+               run_apps
+               wait_apps
+               stop_lttng_tracing $SESSION_NAME
+               destroy_lttng_session $SESSION_NAME
+               validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$NET_PATH
+
+               if [ $? -eq 0 ]; then
+               # Only delete if successful
+                   rm -rf $TRACE_PATH
+               else
+                   break
+               fi
+           done
+       done
+       rm -rf $TMP_PATH
+}
+
+function test_uri_switch_network_file
+{
+IPVER=$1
+       echo ""
+       echo -e "=== Testing switch network ($IPVER) -> file"
+
+       if [ "$IPVER" == "IPv6" ]; then
+           NETWORK_URI="net6://localhost"
+       else
+           NETWORK_URI="net://localhost"
+       fi
+
+       FILE_PATHS=("." "foo/bar" "42")
+
+       for FILE_PATH in ${FILE_PATHS[@]};
+       do
+           TMP_PATH=$(mktemp -d)
+           FILE_URI="file://$TMP_PATH"
+           SESSION_NAME=$(randstring 16 0)
+
+           echo ""
+           echo "$NETWORK_URI -> $FILE_URI/$FILE_PATH"
+
+           lttng_create_session $NETWORK_URI
+           lttng_enable_consumer "$FILE_URI/$FILE_PATH"
+           enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
+           start_lttng_tracing $SESSION_NAME
+           run_apps
+           wait_apps
+           stop_lttng_tracing $SESSION_NAME
+           destroy_lttng_session $SESSION_NAME
+           validate_trace $EVENT_NAME $TMP_PATH/$FILE_PATH
+
+           if [ $? -eq 0 ]; then
+                       # Only delete if successful
+                       rm -rf $TMP_PATH
+           else
+                       break
+           fi
+       done
+}
+
+
+start_lttng_sessiond
+
+echo ""
+echo "=== Testing with IPv4"
+start_lttng_relayd "-o $TRACE_PATH"
+test_uri_switch_localhost_folder "IPv4"
+test_uri_switch_file_network "IPv4"
+test_uri_switch_network_file "IPv4"
+stop_lttng_relayd
+
+echo ""
+echo "=== Testing with IPv6"
+start_lttng_relayd "-o $TRACE_PATH -C tcp6://localhost:5342 -D tcp6://localhost:5343"
+test_uri_switch_localhost_folder "IPv6"
+test_uri_switch_file_network "IPv6"
+test_uri_switch_network_file "IPv6"
+stop_lttng_relayd
+
+stop_lttng_sessiond
diff --git a/tests/regression/tools/streaming/test_ust b/tests/regression/tools/streaming/test_ust
new file mode 100755 (executable)
index 0000000..6e6e5a7
--- /dev/null
@@ -0,0 +1,110 @@
+#!/bin/bash
+#
+# Copyright (C) - 2012 David Goulet <dgoulet@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="Streaming - User space tracing"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../../..
+BIN_NAME="gen-ust-events"
+SESSION_NAME="stream"
+EVENT_NAME="tp:tptest"
+PID_RELAYD=0
+
+TRACE_PATH=$(mktemp -d)
+
+source $TESTDIR/utils/utils.sh
+
+print_test_banner "$TEST_DESC"
+
+if [ ! -x "$CURDIR/$BIN_NAME" ]; then
+       echo -e "No UST nevents binary detected. Passing."
+       exit 0
+fi
+
+function lttng_create_session_uri
+{
+       # Create session with default path
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $SESSION_NAME -U net://localhost >/dev/null 2>&1
+}
+
+function wait_apps
+{
+       echo -n "Waiting for applications to end"
+       while [ -n "$(pidof $BIN_NAME)" ]; do
+               echo -n "."
+               sleep 0.5
+       done
+       echo ""
+}
+
+# MUST set TESTDIR before calling those functions
+
+function test_ust_before_start ()
+{
+       echo -e "\n=== Testing UST streaming BEFORE tracing starts\n"
+       lttng_create_session_uri
+       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
+
+       # Run 5 times with a 1 second delay
+       ./$CURDIR/$BIN_NAME 5 1000000 >/dev/null 2>&1 &
+
+       start_lttng_tracing $SESSION_NAME
+
+       wait_apps
+       stop_lttng_tracing $SESSION_NAME
+       destroy_lttng_session $SESSION_NAME
+}
+
+function test_ust_after_start ()
+{
+       echo -e "\n=== Testing UST streaming AFTER tracing starts\n"
+       lttng_create_session_uri
+       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
+       start_lttng_tracing $SESSION_NAME
+
+       # Run 5 times with a 1 second delay
+       ./$CURDIR/$BIN_NAME 5 1000000 >/dev/null 2>&1 &
+
+       wait_apps
+       stop_lttng_tracing $SESSION_NAME
+       destroy_lttng_session $SESSION_NAME
+}
+
+start_lttng_sessiond
+start_lttng_relayd "-o $TRACE_PATH"
+
+tests=( test_ust_before_start test_ust_after_start )
+
+for fct_test in ${tests[@]};
+do
+       SESSION_NAME=$(randstring 16 0)
+       ${fct_test}
+
+       # Validate test
+       validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME*
+       if [ $? -eq 0 ]; then
+               # Only delete if successful
+               rm -rf $TRACE_PATH
+       else
+               break
+       fi
+done
+
+echo ""
+stop_lttng_sessiond
+stop_lttng_relayd
+
+exit $out
diff --git a/tests/regression/tools/streaming/uri_switch b/tests/regression/tools/streaming/uri_switch
deleted file mode 100755 (executable)
index 06a3fbc..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
-#                      David Goulet <dgoulet@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="Streaming - URI switching"
-
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-BIN_NAME="gen-ust-events"
-SESSION_NAME="stream"
-EVENT_NAME="tp:tptest"
-PID_RELAYD=0
-
-TRACE_PATH=$(mktemp -d)
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -x "$CURDIR/$BIN_NAME" ]; then
-       echo -e "No UST nevents binary detected. Skipping."
-       exit 0
-fi
-
-function lttng_create_session
-{
-       URI=$1
-       # Create session with custom URI
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN create -U $URI $SESSION_NAME >/dev/null 2>&1
-}
-
-function lttng_enable_consumer
-{
-       URI=$1
-       # Create session with custom URI
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-consumer -u $URI >/dev/null 2>&1
-}
-
-function run_apps
-{
-    # Run 5 times with a 1 second delay
-    COUNT=5
-    APP_DELAY=1000000
-    ./$CURDIR/$BIN_NAME $COUNT $APP_DELAY >/dev/null 2>&1 &
-
-}
-
-function wait_apps
-{
-       echo -n "Waiting for applications to end"
-       while [ -n "$(pidof $BIN_NAME)" ]; do
-               echo -n "."
-               sleep 0.5
-       done
-       echo ""
-}
-
-function test_uri_switch_localhost_folder
-{
-       IPVER=$1
-       echo -e "\n=== Testing switch of localhost folder ($IPVER)\n"
-
-       if [ "$IPVER" == "IPv6" ]; then
-           BASE_URI="net6://localhost"
-       else
-           BASE_URI="net://localhost"
-       fi
-
-       RANDCOUNT=10
-       RAND=""
-       i=1
-
-       lttng_create_session $BASE_URI
-
-       echo -e "Randomizing output folder on $BASE_URI..."
-       while [ "$i" -le $RANDCOUNT ]
-       do
-           RAND=$(randstring 16 0)
-           lttng_enable_consumer "$BASE_URI/$RAND"
-           let "i += 1"
-       done
-
-       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
-       run_apps
-       wait_apps
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
-       validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$RAND
-
-       if [ $? -eq 0 ]; then
-       # Only delete if successful
-           rm -rf $TRACE_PATH
-       fi
-}
-
-function test_uri_switch_file_network
-{
-       IPVER=$1
-       echo ""
-       echo -e "=== Testing switch file -> network ($IPVER)"
-
-       TMP_PATH=$(mktemp -d)
-       FILE_URI="file://$TMP_PATH"
-
-       if [ "$IPVER" == "IPv6" ]; then
-           NETWORK_URIS=("net6://localhost" "net6://[::1]")
-       else
-           NETWORK_URIS=("net://localhost" "net://127.0.0.1")
-       fi
-
-       NET_PATHS=("foo/bar" "OohEehOohAhAahTingTangWallaWallaBingBang" ".")
-
-       for NETWORK_URI in ${NETWORK_URIS[@]};
-       do
-           for NET_PATH in ${NET_PATHS[@]};
-           do
-               SESSION_NAME=$(randstring 16 0)
-               echo ""
-               echo "$FILE_URI -> $NETWORK_URI/$NET_PATH"
-
-               lttng_create_session $FILE_URI
-               lttng_enable_consumer "$NETWORK_URI/$NET_PATH"
-               enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
-               start_lttng_tracing $SESSION_NAME
-               run_apps
-               wait_apps
-               stop_lttng_tracing $SESSION_NAME
-               destroy_lttng_session $SESSION_NAME
-               validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$NET_PATH
-
-               if [ $? -eq 0 ]; then
-               # Only delete if successful
-                   rm -rf $TRACE_PATH
-               else
-                   break
-               fi
-           done
-       done
-       rm -rf $TMP_PATH
-}
-
-function test_uri_switch_network_file
-{
-IPVER=$1
-       echo ""
-       echo -e "=== Testing switch network ($IPVER) -> file"
-
-       if [ "$IPVER" == "IPv6" ]; then
-           NETWORK_URI="net6://localhost"
-       else
-           NETWORK_URI="net://localhost"
-       fi
-
-       FILE_PATHS=("." "foo/bar" "42")
-
-       for FILE_PATH in ${FILE_PATHS[@]};
-       do
-           TMP_PATH=$(mktemp -d)
-           FILE_URI="file://$TMP_PATH"
-           SESSION_NAME=$(randstring 16 0)
-
-           echo ""
-           echo "$NETWORK_URI -> $FILE_URI/$FILE_PATH"
-
-           lttng_create_session $NETWORK_URI
-           lttng_enable_consumer "$FILE_URI/$FILE_PATH"
-           enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
-           start_lttng_tracing $SESSION_NAME
-           run_apps
-           wait_apps
-           stop_lttng_tracing $SESSION_NAME
-           destroy_lttng_session $SESSION_NAME
-           validate_trace $EVENT_NAME $TMP_PATH/$FILE_PATH
-
-           if [ $? -eq 0 ]; then
-                       # Only delete if successful
-                       rm -rf $TMP_PATH
-           else
-                       break
-           fi
-       done
-}
-
-
-start_lttng_sessiond
-
-echo ""
-echo "=== Testing with IPv4"
-start_lttng_relayd "-o $TRACE_PATH"
-test_uri_switch_localhost_folder "IPv4"
-test_uri_switch_file_network "IPv4"
-test_uri_switch_network_file "IPv4"
-stop_lttng_relayd
-
-echo ""
-echo "=== Testing with IPv6"
-start_lttng_relayd "-o $TRACE_PATH -C tcp6://localhost:5342 -D tcp6://localhost:5343"
-test_uri_switch_localhost_folder "IPv6"
-test_uri_switch_file_network "IPv6"
-test_uri_switch_network_file "IPv6"
-stop_lttng_relayd
-
-stop_lttng_sessiond
This page took 0.061081 seconds and 4 git commands to generate.