Fix the setjmp tests for mips.
authorElliott Hughes <enh@google.com>
Wed, 10 Dec 2014 17:31:04 +0000 (09:31 -0800)
committerElliott Hughes <enh@google.com>
Wed, 10 Dec 2014 19:48:19 +0000 (11:48 -0800)
commit1510a1c1ae1068ee75a1577ad1052fe5c3169816
treed9c94d9d23347eb7cb87338b508a3db80b3ff9d5
parent6a6845244cf9eb8fe21ecc012b7b45990adad7d8
Fix the setjmp tests for mips.

Although the LP32 mips sigset_t is large enough to represent all signals,
their jmp_buf is too small. This test succeeded on arm and x86 because the
RT signals were never in the 'expected' sigset_t, so the equality comparison
with the 'actual' sigset_t worked fine --- everyone was blind to the RT
signal. On mips the tests fail because the 'expected' sigset_t does contain
the RT signal but the 'actual' doesn't because the jmp_buf only saves and
restores the first 32 signals.

There are 32 free bits (currently used as padding) in the LP32 mips jmp_buf,
and they might choose to use those to provide better support than the other
two platforms, but I'll leave that to them. It will be easy to just remove
the #if defined(__LP64__) from this change in that case.

For mips64 it's not to late to increase the size of the jmp_buf and fix
the setjmp family, but since there are decisions to be made here for LP32,
I'll leave it all to Imagination folks...

Bug: 16918359
Change-Id: I6b723712fce0e9210dafa165d8599d950b2d3500
tests/setjmp_test.cpp