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

Message ID 1464619683-31035-1-git-send-email-antoine.tremblay@ericsson.com
State New, archived
Headers

Commit Message

Antoine Tremblay May 30, 2016, 2:48 p.m. UTC
  In this v3:

- Fixed test interleaving

Note that I also fixed patch 3/5 to match this new setting.

--

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 | 38 +++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
  

Comments

Pedro Alves May 30, 2016, 3:06 p.m. UTC | #1
On 05/30/2016 03:48 PM, Antoine Tremblay wrote:
> In this v3:
> 
> - Fixed test interleaving

Thanks, much more readable, IMO.

This is OK.

Thanks,
Pedro Alves
  

Patch

diff --git a/gdb/testsuite/gdb.trace/trace-condition.exp b/gdb/testsuite/gdb.trace/trace-condition.exp
index b7427ca..ca3232f 100644
--- a/gdb/testsuite/gdb.trace/trace-condition.exp
+++ b/gdb/testsuite/gdb.trace/trace-condition.exp
@@ -138,23 +138,61 @@  foreach trace_command { "trace" "ftrace" } {
 
     # Test various operations to cover as many opcodes as possible.
     test_tracepoints $trace_command "21 + 21 == 42" 10
+    test_tracepoints $trace_command "21 + 21 == 11" 0
+
     test_tracepoints $trace_command "42 - 21 == 21" 10
+    test_tracepoints $trace_command "42 - 21 == 11" 0
+
     test_tracepoints $trace_command "21 * 2 == 42" 10
+    test_tracepoints $trace_command "21 * 2 == 11" 0
+
     test_tracepoints $trace_command "21 << 1 == 42" 10
+    test_tracepoints $trace_command "21 << 1 == 11" 0
+
     test_tracepoints $trace_command "42 >> 1 == 21" 10
+    test_tracepoints $trace_command "42 >> 1 == 11" 0
+
     test_tracepoints $trace_command "-(21 << 1) == -42" 10
+    test_tracepoints $trace_command "-(21 << 1) == -11" 0
+
     test_tracepoints $trace_command "-42 >> 1 == -21" 10
+    test_tracepoints $trace_command "-42 >> 1 == -11" 0
+
     test_tracepoints $trace_command "(0xabababab & 0x0000ffff) == 0xabab" 10
+    test_tracepoints $trace_command "(0xabababab & 0x0000ffff) == 0xffff" 0
+
     test_tracepoints $trace_command "(0xabababab | 0x0000ffff) == 0xababffff" 10
+    test_tracepoints $trace_command "(0xabababab | 0x0000ffff) == 0xeeeedddd" 0
+
     test_tracepoints $trace_command "(0xaaaaaaaa ^ 0x55555555) == 0xffffffff" 10
+    test_tracepoints $trace_command "(0xaaaaaaaa ^ 0x55555555) == 0xaaaaaaaa" 0
+
     test_tracepoints $trace_command "~0xaaaaaaaa == 0x55555555" 10
+    test_tracepoints $trace_command "~0xaaaaaaaa == 0x11111111" 0
+
     test_tracepoints $trace_command "21 < 42" 10
+    test_tracepoints $trace_command "61 < 42" 0
+
     test_tracepoints $trace_command "42 <= 42" 10
+    test_tracepoints $trace_command "42 <= 11" 0
+
     test_tracepoints $trace_command "42 >= 42" 10
+    test_tracepoints $trace_command "11 >= 42" 0
+
     test_tracepoints $trace_command "42 > 21" 10
+    test_tracepoints $trace_command "11 > 21" 0
+
     test_tracepoints $trace_command "(21 < 42 ? 0 : 1) == 0" 10 18955_i386_failure
+    test_tracepoints $trace_command "(66 < 42 ? 0 : 1) == 0" 0 18955_i386_failure
+
     test_tracepoints $trace_command "(42 <= 42 ? 0 : 1) == 0" 10
+    test_tracepoints $trace_command "(66 <= 42 ? 0 : 1) == 0" 0
+
     test_tracepoints $trace_command "(42 >= 42 ? 0 : 1) == 0" 10
+    test_tracepoints $trace_command "(11 >= 42 ? 0 : 1) == 0" 0
+
     test_tracepoints $trace_command "(42 > 21 ? 0 : 1) == 0" 10 18955_i386_failure
+    test_tracepoints $trace_command "(11 > 21 ? 0 : 1) == 0" 0 18955_i386_failure
+
     test_tracepoints $trace_command "\$trace_timestamp >= 0" 10
 }