tests: Move to kernel style SPDX license identifiers
[lttng-tools.git] / tests / regression / tools / filtering / test_unsupported_op
1 #!/bin/bash
2 #
3 # Copyright (C) 2012 Christian Babeux <christian.babeux@efficios.com>
4 #
5 # SPDX-License-Identifier: GPL-2.0-only
6 #
7
8 TEST_DESC="Filtering - Unsupported operators"
9
10 CURDIR=$(dirname $0)/
11 TESTDIR=$CURDIR/../../..
12 SESSION_NAME="filter-unsupported-ops"
13 EVENT_NAME="bogus"
14 ENABLE_EVENT_STDERR="/tmp/unsupported-ops-enable"
15 TRACE_PATH=$(mktemp -d)
16 NUM_GLOBAL_TESTS=2
17 NUM_UST_TESTS=20
18 NUM_KERNEL_TESTS=20
19 NUM_TESTS=$(($NUM_UST_TESTS+$NUM_KERNEL_TESTS+$NUM_GLOBAL_TESTS))
20
21 source $TESTDIR/utils/utils.sh
22
23 function enable_lttng_event_filter_unsupported
24 {
25 domain="$1"
26 sess_name="$2"
27 event_name="$3"
28 filter="$4"
29
30 enable_cmd="$TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event"
31 $enable_cmd $event_name -s $sess_name $domain --filter "$filter" 2> $ENABLE_EVENT_STDERR 1> /dev/null
32
33 # Enable must fail
34 if [ $? -eq 0 ]; then
35 fail "Enable lttng event with filtering and unsupported operator"
36 return 1
37 else
38 pass "Enable lttng event with filtering and unsupported operator"
39 return 0
40 fi
41 }
42
43 function test_unsupported_op
44 {
45 domain="$1"
46 test_op_str="$2"
47 test_op_tkn="$3"
48
49 diag "Test filter expression with unsupported operator $test_op_str ($test_op_tkn)"
50
51 # Create session
52 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
53
54 # Create filter
55 if [ "$test_op_str" == "UNARY_BIN_NOT" ]; then
56 TEST_FILTER="${test_op_tkn}1"
57 else
58 TEST_FILTER="intfield $test_op_tkn 1"
59 fi
60
61 # Apply filter
62 enable_lttng_event_filter_unsupported $domain $SESSION_NAME $EVENT_NAME "$TEST_FILTER"
63
64 # Test stderr for unsupported operator
65
66 grep -i -q "not[[:space:]]\+supported" $ENABLE_EVENT_STDERR
67
68 if [ $? -eq 1 ]; then
69 fail "Unsupported operator test $test_op_str ($test_op_tkn)"
70 return 1
71 else
72 pass "Unsupported operator test $test_op_str ($test_op_tkn)"
73 fi
74
75 # Destroy session
76 destroy_lttng_session_ok $SESSION_NAME
77 return 0
78 }
79
80 plan_tests $NUM_TESTS
81
82 print_test_banner "$TEST_DESC"
83
84 # Unsupported operators
85 OP_STR=("MUL" "DIV" "MOD" "PLUS" "MINUS")
86
87 OP_TKN=("*" "/" "%" "+" "-")
88
89 OP_COUNT=${#OP_STR[@]}
90
91 start_lttng_sessiond
92
93 diag "Test UST unsupported filter operations"
94
95 i=0
96 while [ "$i" -lt "$OP_COUNT" ]; do
97 test_unsupported_op -u "${OP_STR[$i]}" "${OP_TKN[$i]}"
98
99 if [ $? -eq 1 ]; then
100 exit 1
101 fi
102
103 let "i++"
104 done
105
106 if [ "$(id -u)" == "0" ]; then
107 isroot=1
108 else
109 isroot=0
110 fi
111
112 skip $isroot "Root access is needed. Skipping all kernel unsupported filter operations tests." $NUM_KERNEL_TESTS ||
113 {
114 diag "Test kernel unsupported filter operations"
115
116 i=0
117 while [ "$i" -lt "$OP_COUNT" ]; do
118 test_unsupported_op -k "${OP_STR[$i]}" "${OP_TKN[$i]}"
119
120 if [ $? -eq 1 ]; then
121 exit 1
122 fi
123
124 let "i++"
125 done
126 }
127
128 stop_lttng_sessiond
129
130 # Cleanup
131 rm -f $ENABLE_EVENT_STDERR
132 rm -rf $TRACE_PATH
This page took 0.032598 seconds and 4 git commands to generate.