Filter: make bitwise and, or, xor higher prio than relational expressions
[lttng-tools.git] / tests / regression / tools / filtering / test_valid_filter
index a916b188441b8f97eaae026d085fc532227488d1..6503cba2435a789e79ea313b9001a71d0c5bcaf6 100755 (executable)
@@ -24,8 +24,8 @@ STATS_BIN="$TESTDIR/utils/babelstats.pl"
 SESSION_NAME="valid_filter"
 NR_ITER=100
 NUM_GLOBAL_TESTS=2
-NUM_UST_TESTS=1002
-NUM_KERNEL_TESTS=936
+NUM_UST_TESTS=1110
+NUM_KERNEL_TESTS=1044
 NUM_TESTS=$(($NUM_UST_TESTS+$NUM_KERNEL_TESTS+$NUM_GLOBAL_TESTS))
 
 source $TESTDIR/utils/utils.sh
@@ -674,28 +674,82 @@ UST_FILTERS=(
        "1 >= (1 >= (1 >= 1))"
 
        true_statement
-       "0x101 & 0x100 == 0x100"
+       "(0x101 & 0x100) == 0x100"
 
        true_statement
-       "0x101 | 0x10100 == 0x10101"
+       "(0x101 | 0x10100) == 0x10101"
 
        true_statement
-       "0xF00F0F ^ 0xFF0F00 == 0x0F000F"
+       "(0xF00F0F ^ 0xFF0F00) == 0x0F000F"
 
        true_statement
-       "arrfield1[2] & 1 == 1"
+       "(1 << 1) == 2"
 
        true_statement
-       "arrfield1[2] | 0x111000 == 0x111003"
+       "(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"
+       "(seqfield4[2] & 1) == 1"
 
        true_statement
-       "seqfield4[2] | 0x111000 == 0x111003"
+       "(seqfield4[2] | 0x111000) == 0x111003"
 
        true_statement
        "intfield < 0xDEADBEEF"
@@ -1099,28 +1153,82 @@ KERNEL_FILTERS=(
        "1 >= (1 >= (1 >= 1))"
 
        true_statement
-       "0x101 & 0x100 == 0x100"
+       "(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
-       "0x101 | 0x10100 == 0x10101"
+       "(1 << 32) == 4294967296"
 
        true_statement
-       "0xF00F0F ^ 0xFF0F00 == 0x0F000F"
+       "(1 << 63) == 9223372036854775808"
 
        true_statement
-       "arrfield1[2] & 1 == 1"
+       "(arrfield1[2] & 1) == 1"
 
        true_statement
-       "arrfield1[2] | 0x111000 == 0x111003"
+       "(arrfield1[2] | 0x111000) == 0x111003"
 
        true_statement
        "(arrfield1[0] | arrfield1[1] | arrfield1[2]) == 0x3"
 
        true_statement
-       "seqfield4[2] & 1 == 1"
+       "(seqfield4[2] & 1) == 1"
 
        true_statement
-       "seqfield4[2] | 0x111000 == 0x111003"
+       "(seqfield4[2] | 0x111000) == 0x111003"
 
        true_statement
        "intfield < 0xDEADBEEF"
This page took 0.025371 seconds and 4 git commands to generate.