mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-23 05:42:29 +00:00
Workaround WSL not supporting x87 in ucontext_t
This commit is contained in:
parent
d6ff4c754e
commit
fae0c0286f
8 changed files with 13 additions and 11 deletions
|
@ -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));
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue