0f89d8b35fc1da70d277e10c5f1b2d851734a55d
[lttng-tools.git] / tests / ltt-sessiond / run.sh
1 #!/bin/bash
2 #
3 # Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
4 #
5 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License
7 # as published by the Free Software Foundation; either version 2
8 # of the License, or (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 #
19
20 PWD=$(dirname $0)
21
22 SESSIOND_CLIENT_SOCK_PATH="/tmp/.test-sessiond-client"
23 SESSIOND_APPS_SOCK_PATH="/tmp/.test-sessiond-apps"
24 SESSIOND_BIN="$PWD/../../ltt-sessiond/ltt-sessiond"
25 LTTNG_BIN="$PWD/../../lttng/lttng"
26 #SESSIOND_ARGS="-c $SESSIOND_CLIENT_SOCK_PATH -a $SESSIOND_APPS_SOCK_PATH"
27 SESSIOND_ARGS=""
28 SESSION_ID_REGEX=".[[:alnum:]]{8}"
29
30 function clean_exit()
31 {
32 echo "[+] Shuting down session daemon..."
33 kill -s SIGTERM $pid
34 exit $1
35 }
36
37 # Exec $1, check error code.
38 # If 0, return output, else, stop execution
39 # and return and error.
40 function check_ret_code()
41 {
42 if [ $1 -ne 0 ]; then
43 printf "\n!STOPPING!\n"
44 clean_exit 1
45 fi
46 }
47
48 # Create session with $1 and return output.
49 function lttng_create_session()
50 {
51 local command="$LTTNG_BIN -c $1"
52 local ret=$($command)
53 LTTNG_RET_CODE=$?
54
55 # Extract session UUID
56 if [[ "$ret" =~ $SESSION_ID_REGEX ]]; then
57 LTTNG_SESSION_ID="$BASH_REMATCH"
58 fi
59 }
60
61 # List sessions and return output.
62 function lttng_list_session()
63 {
64 local command="$LTTNG_BIN --list-sessions"
65 local ret=$(lttng_command "$command")
66
67 if [[ "$result" =~ $session_id ]]; then
68 printf "SUCCESS!\n"
69 else
70 printf "FAIL!\n"
71 printf "Missing $session_id!\n"
72 exit 1
73 fi
74 echo "$ret"
75 }
76
77 function test_destroy_session()
78 {
79 local command="$LTTNG_BIN -d $LTTNG_SESSION_ID"
80 local ret=$($command)
81 check_ret_code $LTTNG_RET_CODE
82 echo "[+] Destroy session: PASSED!"
83 }
84
85 function test_one_session()
86 {
87 lttng_create_session "test1"
88 check_ret_code $LTTNG_RET_CODE
89 echo "[+] Session creation: PASSED!"
90 }
91
92 function test_session_same_name()
93 {
94 lttng_create_session "test-same"
95 lttng_create_session "test-same"
96 if [ $LTTNG_RET_CODE -ne 0 ]; then
97 echo "[-] Session with the same name: FAILED!"
98 printf "Two session having the same name NOT ALLOWED\n"
99 clean_exit 1
100 fi
101 echo "[+] Session with the same name: PASSED!"
102 }
103
104 if [ ! -x $SESSIOND_BIN ]; then
105 echo "Please use make before test execution"
106 exit 1
107 fi
108
109 # Daemonized by the -d
110 ./$SESSIOND_BIN $SESSIOND_ARGS -d
111 echo "[+] Session daemon started"
112
113 pid=$(pidof lt-ltt-sessiond)
114 if [ -z "$pid" ]; then
115 echo "[-] Can't found session daemon"
116 ./$SESSIOND_BIN $SESSIOND_ARGS
117 exit 1
118 fi
119 echo "[+] Got the session daemon pid $pid"
120
121 printf "=== Starting tests ===\n"
122
123 test_one_session
124
125 test_destroy_session
126
127 test_session_same_name
128
129 clean_exit 0
130
This page took 0.030836 seconds and 3 git commands to generate.