This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 1/5] Add counter-cases for trace-condition.exp tests


In trace-condition.exp, tests are done by doing a conditional tracepoint
and validating that the trace contains all the frames that could be
collected if that condition is true.

E.g. test_tracepoints $trace_command "21 + 21 == 42" 10

This will always return true and collect the 10 frames possible to collect
with the test program.

However, if the condition evaluation is broken such that the condition is
unconditional we will not notice this problem.

This patch adds counter-cases to such conditions like so:

$trace_command "21 + 11 == 42" 0

This way such a problem would be noticed.

gdb/testsuite/ChangeLog:

	* gdb.trace/trace-condition.exp: Add counter-case tests.
---
 gdb/testsuite/gdb.trace/trace-condition.exp | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gdb/testsuite/gdb.trace/trace-condition.exp b/gdb/testsuite/gdb.trace/trace-condition.exp
index b7427ca..f9eaf31 100644
--- a/gdb/testsuite/gdb.trace/trace-condition.exp
+++ b/gdb/testsuite/gdb.trace/trace-condition.exp
@@ -157,4 +157,25 @@ foreach trace_command { "trace" "ftrace" } {
     test_tracepoints $trace_command "(42 >= 42 ? 0 : 1) == 0" 10
     test_tracepoints $trace_command "(42 > 21 ? 0 : 1) == 0" 10 18955_i386_failure
     test_tracepoints $trace_command "\$trace_timestamp >= 0" 10
+
+    # Counter-cases tests.
+    test_tracepoints $trace_command "21 + 21 == 11" 0
+    test_tracepoints $trace_command "42 - 21 == 11" 0
+    test_tracepoints $trace_command "21 * 2 == 11" 0
+    test_tracepoints $trace_command "21 << 1 == 11" 0
+    test_tracepoints $trace_command "42 >> 1 == 11" 0
+    test_tracepoints $trace_command "-(21 << 1) == -11" 0
+    test_tracepoints $trace_command "-42 >> 1 == -11" 0
+    test_tracepoints $trace_command "(0xabababab & 0x0000ffff) == 0xffff" 0
+    test_tracepoints $trace_command "(0xabababab | 0x0000ffff) == 0xeeeedddd" 0
+    test_tracepoints $trace_command "(0xaaaaaaaa ^ 0x55555555) == 0xaaaaaaaa" 0
+    test_tracepoints $trace_command "~0xaaaaaaaa == 0x11111111" 0
+    test_tracepoints $trace_command "61 < 42" 0
+    test_tracepoints $trace_command "42 <= 11" 0
+    test_tracepoints $trace_command "11 >= 42" 0
+    test_tracepoints $trace_command "11 > 21" 0
+    test_tracepoints $trace_command "(66 < 42 ? 0 : 1) == 0" 0 18955_i386_failure
+    test_tracepoints $trace_command "(66 <= 42 ? 0 : 1) == 0" 0
+    test_tracepoints $trace_command "(11 >= 42 ? 0 : 1) == 0" 0
+    test_tracepoints $trace_command "(11 > 21 ? 0 : 1) == 0" 0 18955_i386_failure
 }
-- 
2.8.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]