+++ /dev/null
-#!/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)
-
-NUM_TESTS=186
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -x "$CURDIR/$BIN_NAME" ]; then
- BAIL_OUT "No UST nevents binary detected. Skipping."
-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
- ok $? "Create session with uri $URI"
-}
-
-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
- ok $? "Enable consumer with uri $URI"
-}
-
-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
-{
- while [ -n "$(pidof $BIN_NAME)" ]; do
- sleep 0.5
- done
- pass "Wait for applications to end"
-}
-
-function test_uri_switch_localhost_folder
-{
- IPVER=$1
-
- diag "Test switch of localhost folder ($IPVER)"
-
- if [ "$IPVER" == "IPv6" ]; then
- BASE_URI="net6://localhost"
- else
- BASE_URI="net://localhost"
- fi
-
- RANDCOUNT=10
- RAND=""
- i=1
-
- lttng_create_session $BASE_URI
-
- while [ "$i" -le $RANDCOUNT ]
- do
- RAND=$(randstring 16 0)
- lttng_enable_consumer "$BASE_URI/$RAND"
- let "i += 1"
- done
-
- pass "Randomize output folder on $BASE_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_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
-
- diag "Test 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)
- diag "$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
- diag "Test 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)
-
- diag "$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
-}
-
-plan_tests $NUM_TESTS
-
-start_lttng_sessiond
-
-diag "Test 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
-
-diag "Test 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