gdbserver short-circuit-argument-list failures
authorRichard Bunt <richard.bunt@arm.com>
Mon, 4 Mar 2019 15:08:51 +0000 (15:08 +0000)
committerRichard Bunt <richard.bunt@arm.com>
Mon, 4 Mar 2019 15:08:51 +0000 (15:08 +0000)
commit7b63ad86ab1a56812772f266b345ecaa494ece95
treec0cfffa9b783150a0c4d3a7f7bf4aa1ac623eac5
parentf5f20315116c43110c058ec9d787e20f901309f2
gdbserver short-circuit-argument-list failures

This patch fixes test case failures observed when running
short-circuit-argument-list.exp with gdb server boards. Thanks to Sergio
Durigan Junior for pointing this out.

Assertions failed with the native{,-extended}-gdbserver boards as the
standard output from the test program appears in a different location
than observed on non-gdbserver boards. This standard output was used to
determine whether a function, which had been logically short-circuited,
was called or not. Since the location of the standard out cannot be
relied upon to verify this, a new mechanism was needed.

The test program now records function calls in variables named the same
as the function with a "_called" suffix. These variables can then be
queried from the test case to verify the occurrence of a call.

A method to reset the call counts has been included in the test case, so
that any future assertions added to this test can ensure a fresh set of
initial values before proceeding. Not resetting values between groups of
assertions creates a dependency between them, which increases the
likelihood that a single failure causes subsequent assertions to fail.

Regression tested on x86_64, aarch64 and ppc64le.
Regression tested with Ada on x86_64.
Regression tested with the native{,-extended}-gdbserver boards on x86_64.
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp
gdb/testsuite/gdb.fortran/short-circuit-argument-list.f90