Fix: bytecode test should be in UST_FILTERS, not UST_STR_FILTERS
[lttng-tools.git] / tests / regression / tools / filtering / test_valid_filter
index 319204ccf7b4a0549ad5a866f768eae1ecde7972..cfd8de3bfbe189b994f02e2bbdf0a76a866833f6 100755 (executable)
@@ -1,31 +1,20 @@
 #!/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=1074
-NUM_KERNEL_TESTS=1008
+NUM_UST_TESTS=1122
+NUM_KERNEL_TESTS=1056
 NUM_TESTS=$(($NUM_UST_TESTS+$NUM_KERNEL_TESTS+$NUM_GLOBAL_TESTS))
 
 source $TESTDIR/utils/utils.sh
@@ -706,11 +695,29 @@ UST_FILTERS=(
        true_statement
        "-1==~0"
 
-       true_statement
-       "1<<1==2"       # C99 operator priority: comparator before bitwise
+       true_statement  # unsigned bitwise ops
+       "~0>>4==0x0fffffffffffffff"
 
        has_no_event
-       "!(1<<1==2)"    # C99 operator priority: comparator before bitwise
+       "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"
@@ -826,6 +833,16 @@ UST_FILTERS=(
        has_no_event
        "0 == \$ctx.vtid.blah"
 
+       # check that bytecode linker refuses to link against a
+       # non-string array.
+       has_no_event
+       'arrfield1 != "dontmatch"'
+
+       # check that bytecode linker refuses to link against a
+       # non-string sequence.
+       has_no_event
+       'seqfield1 != "dontmatch"'
+
        END
 )
 
@@ -1167,11 +1184,29 @@ KERNEL_FILTERS=(
        true_statement
        "-1==~0"
 
-       true_statement
-       "1<<1==2"       # C99 operator priority: comparator before bitwise
+       true_statement  # unsigned bitwise ops
+       "~0>>4==0x0fffffffffffffff"
+
+       has_no_event
+       "1<<-1"
 
        has_no_event
-       "!(1<<1==2)"    # C99 operator priority: comparator before bitwise
+       "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"
@@ -1401,6 +1436,16 @@ KERNEL_FILTERS=(
        has_no_event
        'stringfield == "test\*"'
 
+       # check that bytecode linker refuses to link against a
+       # non-string array.
+       has_no_event
+       'arrfield1 != "dontmatch"'
+
+       # check that bytecode linker refuses to link against a
+       # non-string sequence.
+       has_no_event
+       'seqfield1 != "dontmatch"'
+
        ${KIRK_KRAUSS_TESTS[@]}
 
        END
@@ -1440,7 +1485,7 @@ skip $isroot "Root access is needed. Skipping all kernel valid filter tests." $N
                i=$(( i + 2 ))
        done
 
-       rmmod lttng-test
+       modprobe --remove lttng-test
 }
 
 stop_lttng_sessiond
This page took 0.024514 seconds and 4 git commands to generate.