Workaround WSL not supporting x87 in ucontext_t

This commit is contained in:
Justine Tunney 2022-11-02 03:03:32 -07:00
parent d6ff4c754e
commit fae0c0286f
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
8 changed files with 13 additions and 11 deletions

View file

@ -25,9 +25,11 @@
#include "libc/dce.h"
#include "libc/errno.h"
#include "libc/nexgen32e/nexgen32e.h"
#include "libc/runtime/internal.h"
#include "libc/runtime/runtime.h"
#include "libc/sysv/consts/sa.h"
#include "libc/sysv/consts/sig.h"
#include "libc/sysv/consts/uc.h"
#include "libc/testlib/testlib.h"
#include "third_party/xed/x86.h"
@ -196,6 +198,8 @@ TEST(sigaction, autoZombieSlayer) {
// verify it works
ASSERT_NE(-1, (pid = fork()));
if (!pid) _Exit(0);
// XXX: WSL does the wrong thing here.
if (__is_wsl()) usleep(10);
ASSERT_SYS(ECHILD, -1, wait(0));
// clean up
ASSERT_SYS(0, 0, sigaction(SIGCHLD, &sa, 0));

View file

@ -325,10 +325,13 @@ TEST(ShowCrashReports, testDivideByZero) {
_gc(IndentLines(output, -1, 0, 4)));
__die();
}
if (!strstr(output, "3.141")) {
fprintf(stderr, "ERROR: crash report didn't have fpu register\n%s\n",
_gc(IndentLines(output, -1, 0, 4)));
__die();
// XXX: WSL doesn't save and restore x87 registers to ucontext_t
if (!__is_wsl()) {
if (!strstr(output, "3.141")) {
fprintf(stderr, "ERROR: crash report didn't have fpu register\n%s\n",
_gc(IndentLines(output, -1, 0, 4)));
__die();
}
}
if (!strstr(output, "0f0e0d0c0b0a09080706050403020100")) {
fprintf(stderr, "ERROR: crash report didn't have sse register\n%s\n",