Commit | Line | Data |
---|---|---|
5ed358a4 CB |
1 | #!/bin/bash |
2 | # | |
9d16b343 | 3 | # Copyright (C) 2012 Christian Babeux <christian.babeux@efficios.com> |
5ed358a4 | 4 | # |
9d16b343 | 5 | # SPDX-License-Identifier: GPL-2.0-only |
5ed358a4 | 6 | # |
5ed358a4 CB |
7 | |
8 | TEST_DESC="Filtering - Unsupported operators" | |
9 | ||
10 | CURDIR=$(dirname $0)/ | |
9ac429ef | 11 | TESTDIR=$CURDIR/../../.. |
5ed358a4 CB |
12 | SESSION_NAME="filter-unsupported-ops" |
13 | EVENT_NAME="bogus" | |
14 | ENABLE_EVENT_STDERR="/tmp/unsupported-ops-enable" | |
33e55711 | 15 | TRACE_PATH=$(mktemp --tmpdir -d tmp.test_filtering_unsupported_ops_trace_path.XXXXXX) |
f6788fc4 | 16 | NUM_GLOBAL_TESTS=2 |
116d3c01 MD |
17 | NUM_UST_TESTS=20 |
18 | NUM_KERNEL_TESTS=20 | |
f6788fc4 MD |
19 | NUM_TESTS=$(($NUM_UST_TESTS+$NUM_KERNEL_TESTS+$NUM_GLOBAL_TESTS)) |
20 | ||
9ac429ef | 21 | source $TESTDIR/utils/utils.sh |
5ed358a4 | 22 | |
f6788fc4 | 23 | function enable_lttng_event_filter_unsupported |
5ed358a4 | 24 | { |
f6788fc4 MD |
25 | domain="$1" |
26 | sess_name="$2" | |
27 | event_name="$3" | |
28 | filter="$4" | |
5ed358a4 | 29 | |
5ed358a4 | 30 | enable_cmd="$TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event" |
f6788fc4 | 31 | $enable_cmd $event_name -s $sess_name $domain --filter "$filter" 2> $ENABLE_EVENT_STDERR 1> /dev/null |
5ed358a4 CB |
32 | |
33 | # Enable must fail | |
34 | if [ $? -eq 0 ]; then | |
03276eea | 35 | fail "Enable lttng event with filtering and unsupported operator" |
5ed358a4 CB |
36 | return 1 |
37 | else | |
03276eea | 38 | pass "Enable lttng event with filtering and unsupported operator" |
5ed358a4 CB |
39 | return 0 |
40 | fi | |
41 | } | |
42 | ||
43 | function test_unsupported_op | |
44 | { | |
f6788fc4 MD |
45 | domain="$1" |
46 | test_op_str="$2" | |
47 | test_op_tkn="$3" | |
5ed358a4 | 48 | |
03276eea | 49 | diag "Test filter expression with unsupported operator $test_op_str ($test_op_tkn)" |
5ed358a4 CB |
50 | |
51 | # Create session | |
bf6ae429 | 52 | create_lttng_session_ok $SESSION_NAME $TRACE_PATH |
5ed358a4 CB |
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 | |
f6788fc4 | 62 | enable_lttng_event_filter_unsupported $domain $SESSION_NAME $EVENT_NAME "$TEST_FILTER" |
5ed358a4 CB |
63 | |
64 | # Test stderr for unsupported operator | |
03276eea | 65 | |
5ed358a4 CB |
66 | grep -i -q "not[[:space:]]\+supported" $ENABLE_EVENT_STDERR |
67 | ||
68 | if [ $? -eq 1 ]; then | |
03276eea | 69 | fail "Unsupported operator test $test_op_str ($test_op_tkn)" |
5ed358a4 CB |
70 | return 1 |
71 | else | |
03276eea | 72 | pass "Unsupported operator test $test_op_str ($test_op_tkn)" |
5ed358a4 CB |
73 | fi |
74 | ||
75 | # Destroy session | |
67b4c664 | 76 | destroy_lttng_session_ok $SESSION_NAME |
5ed358a4 CB |
77 | return 0 |
78 | } | |
79 | ||
03276eea CB |
80 | plan_tests $NUM_TESTS |
81 | ||
e3bef725 CB |
82 | print_test_banner "$TEST_DESC" |
83 | ||
5ed358a4 | 84 | # Unsupported operators |
116d3c01 | 85 | OP_STR=("MUL" "DIV" "MOD" "PLUS" "MINUS") |
5ed358a4 | 86 | |
116d3c01 | 87 | OP_TKN=("*" "/" "%" "+" "-") |
5ed358a4 CB |
88 | |
89 | OP_COUNT=${#OP_STR[@]} | |
5ed358a4 CB |
90 | |
91 | start_lttng_sessiond | |
92 | ||
f6788fc4 MD |
93 | diag "Test UST unsupported filter operations" |
94 | ||
95 | i=0 | |
5ed358a4 | 96 | while [ "$i" -lt "$OP_COUNT" ]; do |
f6788fc4 | 97 | test_unsupported_op -u "${OP_STR[$i]}" "${OP_TKN[$i]}" |
5ed358a4 CB |
98 | |
99 | if [ $? -eq 1 ]; then | |
100 | exit 1 | |
101 | fi | |
102 | ||
103 | let "i++" | |
104 | done | |
105 | ||
f6788fc4 MD |
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 | ||
5ed358a4 CB |
128 | stop_lttng_sessiond |
129 | ||
130 | # Cleanup | |
131 | rm -f $ENABLE_EVENT_STDERR | |
132 | rm -rf $TRACE_PATH |