Jeremy Drake via Cygwin-patches wrote:
On Tue, 1 Jul 2025, Christian Franke wrote:
- fp # WORKS,CI
+ fp # FAILS # TODO Cygwin: "terminated on signal: 11" (x86_64
on arm64 only), please see:
+ #
https://sourceware.org/pipermail/cygwin/2025-June/258332.html
- memcpy # WORKS,CI # (fixed in Cygwin 3.6.1: crash due to set DF
in signal handler)
+ memcpy # FAILS # TODO Cygwin: "terminated on signal: 11" (x86_64
on arm64 only), please see:
+ #
https://sourceware.org/pipermail/cygwin/2025-June/258332.html
+ # (fixed in Cygwin 3.6.1: crash due to set DF in
signal handler)
These should be fixed now, by
b0a9b628aad8dd35892b9da3511c434d9a61d37f (or
cygwin-3.7.0-dev-161-gb0a9b628aad8)
Thanks for the positive feedback. Revised patch attached.
From c2f069977afd4d6d245e2a564c37f689cf76ac8e Mon Sep 17 00:00:00 2001
From: Christian Franke <christian.fra...@t-online.de>
Date: Wed, 2 Jul 2025 13:44:50 +0200
Subject: [PATCH] Cygwin: CI: cygstress: update for stress-ng 0.19.02 and
current Cygwin
Signed-off-by: Christian Franke <christian.fra...@t-online.de>
---
winsup/testsuite/stress/cygstress | 65 +++++++++++++++++--------------
1 file changed, 36 insertions(+), 29 deletions(-)
diff --git a/winsup/testsuite/stress/cygstress
b/winsup/testsuite/stress/cygstress
index 55412efa5..757d79def 100755
--- a/winsup/testsuite/stress/cygstress
+++ b/winsup/testsuite/stress/cygstress
@@ -31,9 +31,9 @@ EOF
}
# Tags:
-# WORKS: works on Cygwin (3.7.0-0.51.gd35cc82b5ec1)
+# WORKS: works on Cygwin (3.7.0-0.177.gb4e4cb4c8665.x86_64) + stress-ng
V0.19.02
# WORKS,CI: possibly suitable subset for Cygwin CI test.
-# FAILS: fails on Cygwin, see "TODO Cygwin" for details.
+# FAILS: fails on Cygwin, see "TODO ..." for details.
# heavy: heavy resource usage, may work, hang, freeze desktop, require reset,
...
# admin: requires administrator, may work or not, may be 'heavy' or not.
# -----: unsupported due to missing API, library, declaration, ...
@@ -75,6 +75,8 @@ stress_tests='
chroot # admin
clock # WORKS,CI # (fixed in stress-ng 0.18.12: "timer_create
failed for timer ...
# ... ''CLOCK_THREAD_CPUTIME_ID'', errno=134")
+ # (fixed in Cygwin 3.7.0: "clock_settime was able
to set an ...
+ # ... invalid negative time for timer
''CLOCK_REALTIME''")
clone # -----
close # FAILS # TODO Cygwin: close(2) is not thread-safe
context # WORKS,CI # (fixed in Cygwin 3.6.0: signals lost after
swapcontext)
@@ -102,24 +104,24 @@ stress_tests='
dynlib # -----
easy-opcode # WORKS
- eigen # WORKS
+ eigen # WORKS # uses libeigen (C++ template lib)
efivar # -----
enosys # -----
env # heavy # creates very large environment until OOM
epoll # -----
eventfd # -----
exec # WORKS,CI
- exit-group # -----
+ exit-group # ----- # requires exit_group(2)
expmath # WORKS
- factor # WORKS # uses libgmp
+ factor # FAILS # uses libgmp; TODO undecided: "terminated on
signal 11 ''SIGSEGV''"
fallocate # WORKS,CI
fanotify # -----
far-branch # WORKS
fault # WORKS
- fcntl # FAILS # TODO this script: fixed in stress-ng >0.18.12:
"F_SETLKW (F_WRLCK) failed: ...
- # ... errno=45 (Resource
deadlock avoided)"
+ fcntl # WORKS,CI # (fixed in stress-ng 0.19.00: "F_SETLKW (F_WRLCK)
failed: ... errno=45 ...)"
# (fixed in Cygwin 3.6.1: "ftruncate failed,
errno=21 (Is a directory)")
+ fd-abuse # FAILS # TODO Cygwin: hangs
fd-fork # WORKS,CI
fd-race # ----- # TODO stress-ng: drop restriction to Linux
# TODO Cygwin: close(2) is not thread-safe, see
also "close"
@@ -127,10 +129,11 @@ stress_tests='
fiemap # -----
fifo # WORKS
file-ioctl # WORKS,CI
- filename # FAILS # TODO Cygwin: creates files Cygwin cannot remove
later, please see:
- #
https://sourceware.org/pipermail/cygwin/2024-September/256451.html
+ filename # FAILS # TODO Cygwin: high surrogate at the end of the
string is lost, please see:
+ #
https://sourceware.org/pipermail/cygwin/2025-June/258386.html
+ # (fixed in Cygwin 3.7.0: lone high surrogate not
encoded correctly)
filename --filename-opts posix # WORKS,CI # restricts filenames to POSIX
charset
-# filerace # WORKS # TODO this script: added in stress-ng >0.18.12
+ filerace # WORKS,CI
flipflop # WORKS
flock # WORKS,CI
flushcache # WORKS
@@ -139,7 +142,7 @@ stress_tests='
forkheavy # heavy # forks until process table is full
fp # WORKS,CI
fp-error # WORKS,CI
- fpunch # FAILS # TODO this script: fixed in stress-ng >0.18.12
+ fpunch # WORKS,CI # (fixed in stress-ng 0.19.00: lseek() on shared
fd)
fractal # WORKS
fsize # heavy # creates large files until disk is full
fstat # WORKS,CI
@@ -228,6 +231,7 @@ stress_tests='
mlockmany # heavy # requires --pathological
mmap # WORKS,CI
mmapaddr # WORKS
+ mmapcow # WORKS
mmapfork # WORKS
mmapfiles # WORKS
mmapfixed # WORKS
@@ -237,8 +241,9 @@ stress_tests='
module # -----
monte-carlo # WORKS
mpfr # WORKS # uses libmpfr
- mprotect # FAILS # TODO Cygwin: crashes or hangs and then ignores
SIGKILL
- mq # FAILS # TODO undecided: "fail: ... mq_[timed]receive
failed, errno=1"
+ mprotect # WORKS,CI # (fixed in stress-ng 0.19.02: SIGALRM lost due to
siglongjmp)
+ # (fixed in Cygwin 3.7.0: crashes)
+ mq # FAILS # TODO undecided: "mq_[timed]receive failed,
errno=1"
# (fixed in Cygwin 3.5.6: crash on invalid mq fd)
mremap # -----
mseal # -----
@@ -249,18 +254,18 @@ stress_tests='
munmap # -----
mutex # WORKS
- nanosleep # FAILS # TODO undecided: "detected 1 unexpected nanosleep
underruns"
+ nanosleep # WORKS,CI # (fixed in ?: "detected 1 unexpected nanosleep
underruns")
netdev # -----
netlink-proc # -----
netlink-task # -----
- nice # heavy # TODO Cygwin: may change nice value of other
processes
+ nice # WORKS,CI # (fixed in stress-ng 0.19.01: changed nice value
of other processes)
nop # WORKS
null # WORKS
numa # -----
oom-pipe # -----
opcode # -----
- open # WORKS,CI
+ open # WORKS,CI # TODO undecided: "rmdir ... failed, errno=90
(Directory not empty)"
pagemove # -----
pageswap # -----
@@ -279,16 +284,18 @@ stress_tests='
powmath # WORKS
prctl # -----
prefetch # WORKS
- prime # WORKS # uses libgmp
+ prime # FAILS # uses libgmp; TODO undecided: "terminated on
signal 11 ''SIGSEGV''"
prio-inv # ----- # requires <pthread_nt.h>
- priv-instr # FAILS # TODO Cygwin: crashes or hangs, please see:
- #
https://sourceware.org/pipermail/cygwin/2025-March/257726.html
- procfs # ----- # TODO stress-ng: support /proc subset of Cygwin
+ priv-instr # WORKS,CI # (fixed in Cygwin 3.7.0: crashes or hangs)
+ procfs # heavy # TODO Cygwin: /proc/PID/maps segfaults foreign
processes due to
+ # possible bug in
RtlQueryProcessDebugInformation(), please see:
+ #
https://sourceware.org/pipermail/cygwin/2025-May/258213.html
pseek # WORKS,CI # (fixed in Cygwin 3.5.5: "pread: Bad file
descriptor")
pthread # WORKS,CI
ptr-chase # WORKS
ptrace # -----
- pty # WORKS,CI # (fixed in Cygwin 3.7.0: implement
tcdrain/tcflow/TIOCINQ for pty)
+ pty # WORKS,CI # TODO undecided: "tcflush TCOOFLUSH on follower
pty failed, errno=4"
+ # (fixed in Cygwin 3.7.0: implement
tcdrain/tcflow/TIOCINQ for pty)
# (fixed in Cygwin 3.6.1: "No pty allocated,
errno=0")
qsort # WORKS
quota # -----
@@ -337,22 +344,22 @@ stress_tests='
sigbus # FAILS # TODO Cygwin: "ftruncate file to a single page
failed, errno=13 (Permission denied)"
sigchld # FAILS # TODO Cygwin: hangs
sigfd # ----- # TODO Cygwin: "stressor terminated with
unexpected signal 11 ''SIGSEGV''"
- # (fixed in stress-ng >0.18.12: drop restriction
to glibc)
- sigfpe # FAILS # TODO undecided: "got SIGFPE error 15
(FPE_INTDEV), expecting 20 (FPE_FLTRES)"
+ # (fixed in stress-ng 0.19.02: drop restriction to
glibc)
+ sigfpe # WORKS,CI # (fixed in ?: "got SIGFPE error 15 (FPE_INTDEV),
expecting 20 (FPE_FLTRES)")
sighup # WORKS,CI
- sigill # FAILS # TODO Cygwin: "terminated on signal: 11",
possibly similar to "priv-instr"
+ sigill # WORKS,CI # (fixed in Cygwin 3.7.0: "terminated on signal:
11")
sigio # ----- # requires O_ASYNC
signal # WORKS,CI
signest # FAILS # TODO Cygwin: "terminated on signal: 11"
sigpending # WORKS,CI
- sigpipe # WORKS,CI
+ sigpipe # FAILS # TODO undecided: hangs in few cases
sigq # WORKS,CI
sigrt # WORKS,CI
- sigsegv # FAILS # TODO Cygwin: crashes or hangs, possibly similar
to "priv-instr"
+ sigsegv # WORKS,CI # (fixed in Cygwin 3.7.0: crashes or hangs)
sigsuspend # WORKS,CI
sigtrap # WORKS,CI
sigurg # WORKS,CI
- sigvtalrm # WORKS,CI
+ sigvtalrm # ----- # requires ITIMER_VIRTUAL
sigxcpu # FAILS # TODO stress-ng: "setrlimit failed, errno=22
(Invalid argument)"
sigxfsz # FAILS # TODO stress-ng: "setrlimit failed, errno=22
(Invalid argument)"
skiplist # WORKS
@@ -373,7 +380,7 @@ stress_tests='
stackmmap # WORKS
statmount # -----
str # WORKS
- stream # WORKS # (fixed in stress-ng >0.18.12: --stream-l3-size
set correctly)
+ stream # WORKS # (fixed in stress-ng 0.19.02: --stream-l3-size
set correctly)
swap # -----
switch # WORKS
symlink # WORKS,CI
@@ -386,7 +393,7 @@ stress_tests='
sysfs # -----
tee # ----- # requires tee(2)
- timer # WORKS,CI # TODO undecided: "1 timer settime calls failed"
+ timer # FAILS # TODO undecided: "1 timer settime calls failed"
timerfd # heavy # TODO undecided: may freeze desktop
time-warp # WORKS
tlb-shootdown # heavy
--
2.45.1