#!/bin/bash
#
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+# 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.
+# SPDX-License-Identifier: GPL-2.0-only
#
-# 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"
STATS_BIN="$TESTDIR/utils/babelstats.pl"
SESSION_NAME="valid_filter"
NR_ITER=100
NUM_GLOBAL_TESTS=2
-NUM_UST_TESTS=906
-NUM_KERNEL_TESTS=840
+NUM_UST_TESTS=1110
+NUM_KERNEL_TESTS=1044
NUM_TESTS=$(($NUM_UST_TESTS+$NUM_KERNEL_TESTS+$NUM_GLOBAL_TESTS))
source $TESTDIR/utils/utils.sh
intfield
$issue_356_filter
+ true_statement
+ "1&1"
+
+ true_statement
+ "0|1"
+
+ true_statement
+ "0^1"
+
+ true_statement
+ "seqfield4[1]==2"
+
+ true_statement
+ "arrfield1[1]==2"
+
+ true_statement
+ "arrfield1[1]==2"
+
+ true_statement
+ "arrfield3[1]==2"
+
+ true_statement
+ "seqfield3[1]==2"
+
+ true_statement
+ "1 | (1 | (1 | 1))"
+
+ true_statement
+ "1 >= (1 >= (1 >= 1))"
+
+ true_statement
+ "(0x101 & 0x100) == 0x100"
+
+ true_statement
+ "(0x101 | 0x10100) == 0x10101"
+
+ true_statement
+ "(0xF00F0F ^ 0xFF0F00) == 0x0F000F"
+
+ true_statement
+ "(1 << 1) == 2"
+
+ true_statement
+ "(4 >> 1) == 2"
+
+ true_statement
+ "(1 << 8) == 256"
+
+ true_statement
+ "(262144 >> 16) == 4"
+
+ true_statement
+ "(~0 & 0xffff) == 0xffff"
+
+ true_statement
+ "(~0 & 0xffffffff) == 0xffffffff"
+
+ true_statement
+ "(~0 & 0xffffffffffffffff) == 0xffffffffffffffff"
+
+ true_statement
+ "-1==~0"
+
+ true_statement # unsigned bitwise ops
+ "~0>>4==0x0fffffffffffffff"
+
+ has_no_event
+ "1<<-1"
+
+ has_no_event
+ "1<<10000"
+
+ true_statement # comparator is signed, shift is unsigned
+ "(1<<63) < 0"
+
+ true_statement
+ "(1<<2!=4)==0" # operator priority: shift before equality
+
+ true_statement
+ "1&3==1" # operator priority: masks before equality
+
+ true_statement
+ "(3|1==3)==1" # operator priority: masks before equality
+
+ true_statement
+ "(2^1==3)==1" # operator priority: masks before equality
+
+ true_statement
+ "(1 << 32) == 4294967296"
+
+ true_statement
+ "(1 << 63) == 9223372036854775808"
+
+ true_statement
+ "(arrfield1[2] & 1) == 1"
+
+ true_statement
+ "(arrfield1[2] | 0x111000) == 0x111003"
+
+ true_statement
+ "(arrfield1[0] | arrfield1[1] | arrfield1[2]) == 0x3"
+
+ true_statement
+ "(seqfield4[2] & 1) == 1"
+
+ true_statement
+ "(seqfield4[2] | 0x111000) == 0x111003"
+
true_statement
"intfield < 0xDEADBEEF"
has_no_event
"0 == \$ctx.vtid.blah"
- has_no_event
- "\$ctx.44 == 0"
-
- has_no_event
- "0 == \$ctx.44"
-
END
)
intfield
$issue_356_filter
+ true_statement
+ "1&1"
+
+ true_statement
+ "0|1"
+
+ true_statement
+ "0^1"
+
+ true_statement
+ "seqfield4[1]==2"
+
+ true_statement
+ "arrfield1[1]==2"
+
+ true_statement
+ "arrfield1[1]==2"
+
+ true_statement
+ "arrfield3[1]==2"
+
+ true_statement
+ "seqfield3[1]==2"
+
+ true_statement
+ "1 | (1 | (1 | 1))"
+
+ true_statement
+ "1 >= (1 >= (1 >= 1))"
+
+ true_statement
+ "(0x101 & 0x100) == 0x100"
+
+ true_statement
+ "(0x101 | 0x10100) == 0x10101"
+
+ true_statement
+ "(0xF00F0F ^ 0xFF0F00) == 0x0F000F"
+
+ true_statement
+ "(1 << 1) == 2"
+
+ true_statement
+ "(4 >> 1) == 2"
+
+ true_statement
+ "(1 << 8) == 256"
+
+ true_statement
+ "(262144 >> 16) == 4"
+
+ true_statement
+ "(~0 & 0xffff) == 0xffff"
+
+ true_statement
+ "(~0 & 0xffffffff) == 0xffffffff"
+
+ true_statement
+ "(~0 & 0xffffffffffffffff) == 0xffffffffffffffff"
+
+ true_statement
+ "-1==~0"
+
+ true_statement # unsigned bitwise ops
+ "~0>>4==0x0fffffffffffffff"
+
+ has_no_event
+ "1<<-1"
+
+ has_no_event
+ "1<<10000"
+
+ true_statement # comparator is signed, shift is unsigned
+ "(1<<63) < 0"
+
+ true_statement
+ "(1<<2!=4)==0" # operator priority: shift before equality
+
+ true_statement
+ "1&3==1" # operator priority: masks before equality
+
+ true_statement
+ "(3|1==3)==1" # operator priority: masks before equality
+
+ true_statement
+ "(2^1==3)==1" # operator priority: masks before equality
+
+ true_statement
+ "(1 << 32) == 4294967296"
+
+ true_statement
+ "(1 << 63) == 9223372036854775808"
+
+ true_statement
+ "(arrfield1[2] & 1) == 1"
+
+ true_statement
+ "(arrfield1[2] | 0x111000) == 0x111003"
+
+ true_statement
+ "(arrfield1[0] | arrfield1[1] | arrfield1[2]) == 0x3"
+
+ true_statement
+ "(seqfield4[2] & 1) == 1"
+
+ true_statement
+ "(seqfield4[2] | 0x111000) == 0x111003"
+
true_statement
"intfield < 0xDEADBEEF"
has_no_event
"0 == \$ctx.vtid.blah"
- has_no_event
- "\$ctx.44 == 0"
-
- has_no_event
- "0 == \$ctx.44"
-
stringfield_has_events
'stringfield == "test"'