dedad4e3d2
This forces all tests that rely on stdio to be unbuffered, like
interrupt.exp was adjusted in 6f98576f
.
To recap, in some scenarios, GDB or GDBserver can be spawned with
input _not_ connected to a tty, and then tests that rely on stdio fail
with timeouts, because the inferior's stdout and stderr streams end up
fully buffered. Calling gdb_unbuffer_output forces output to be
unbuffered.
See https://sourceware.org/ml/gdb-patches/2015-02/msg00809.html and
https://sourceware.org/ml/gdb-patches/2015-02/msg00819.html.
Tested on x86_64 Fedora 20, native, and against a remote gdbserver
board file that connects to the target with ssh, with and without -t
(create pty).
gdb/testsuite/ChangeLog:
2015-07-29 Pedro Alves <palves@redhat.com>
* gdb.base/call-ar-st.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/call-rt-st.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/call-strs.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/call-strs.exp: Adjust to step over the
gdb_unbuffer_output call.
* gdb.base/catch-gdb-caused-signals.c: Include
"../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/dprintf.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/ending-run.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/run.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/shlib-call.exp: Adjust to step over the
gdb_unbuffer_output call.
* gdb.base/shmain.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/sizeof.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
* gdb.base/varargs.c: Include "../lib/unbuffer_output.c".
(main): Rename to ...
(test): ... this.
(main): Reimplement.
* gdb.base/varargs.exp: Run to test instead of to main.
* gdb.mi/mi-dprintf.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
50 lines
587 B
C
50 lines
587 B
C
/* A test */
|
|
|
|
#include "ss.h"
|
|
#include <stdio.h>
|
|
|
|
#include "../lib/unbuffer_output.c"
|
|
|
|
extern int structarg(struct s);
|
|
extern int pstructarg(struct s*);
|
|
extern int shr1(int);
|
|
extern int shr2(int);
|
|
extern float sg;
|
|
|
|
int eglob;
|
|
|
|
struct {
|
|
int a;
|
|
int b;
|
|
} s;
|
|
|
|
int g;
|
|
|
|
int local_structarg(struct s x)
|
|
{
|
|
return x.b;
|
|
}
|
|
|
|
int mainshr1(int g)
|
|
{
|
|
return 2*g;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
struct s y;
|
|
|
|
gdb_unbuffer_output ();
|
|
|
|
g = 1;
|
|
g = shr1(g);
|
|
g = shr2(g);
|
|
g = mainshr1(g);
|
|
sg = 1.1;
|
|
y.a = 3;
|
|
y.b = 4;
|
|
g = local_structarg(y);
|
|
g = structarg(y);
|
|
g = pstructarg(&y);
|
|
return 0;
|
|
}
|