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.
This commit is contained in:
Antoine Tremblay 2016-05-30 11:24:44 -04:00
parent e385593eef
commit 7faeb45ae3
2 changed files with 42 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2016-05-30 Antoine Tremblay <antoine.tremblay@ericsson.com>
* gdb.trace/trace-condition.exp: Add counter-case tests.
2016-05-30 Jan Kratochvil <jan.kratochvil@redhat.com>
PR c++/15231

View File

@ -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
}