gdb/testsuite: Fix py-format-string.exp on big-endian platforms
authorAndreas Arnez <arnez@linux.ibm.com>
Wed, 2 Oct 2019 18:01:44 +0000 (20:01 +0200)
committerAndreas Arnez <arnez@linux.ibm.com>
Wed, 2 Oct 2019 18:01:44 +0000 (20:01 +0200)
commit9ef62df072d85d9cd0fadc90a3bd7f05e32ba9fd
tree0ef2aa87e970152cbb3d55fa92ec03dd9afbdbf2
parent37f6a7f456a8da051698dcd753cc0b026f92e054
gdb/testsuite: Fix py-format-string.exp on big-endian platforms

GDB's py-format-string test case depends on endianness.  In particular it
relies on the first byte of the machine representation of 42 (as an int)
to be 42 as well.  While this is indeed the case for little-endian
machines, big-endian machines store a zero in the first byte instead.  The
wrong assumption leads to lots of FAILs on such architectures.

Fix this by filling the affected union with bytes of the same value, such
that endianness does not matter.  Use the value 42, to keep the character
in the first byte unchanged.

gdb/testsuite/ChangeLog:

* gdb.python/py-format-string.c (string.h): New include.
(main): Fill a_struct_with_union.the_union.an_int with bytes of
the same value, for endianness-independence.
* gdb.python/py-format-string.exp (default_regexp_dict)
(test_pretty_structs, test_format): Adjust expected output to the
changed initialization.
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-format-string.c
gdb/testsuite/gdb.python/py-format-string.exp