[newlib-cygwin/main] Cygwin: CI: cygstress: update for stress-ng 0.21.04 and current Cygwin

Jon Turney via Cygwin-cvs <[email protected]> Thu, 16 Jul 2026 14:09:10 +0000 (GMT)
Newsgroups gmane.os.cygwin.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D6935312a0aa=
781a80b8243dbf085b35b44ebb53f

commit 6935312a0aa781a80b8243dbf085b35b44ebb53f
Author: Christian Franke <[email protected]>
Date:   Tue Jul 14 15:22:02 2026 +0200

    Cygwin: CI: cygstress: update for stress-ng 0.21.04 and current Cygwin
   =20
    Also fix the sort order of stress tests.
   =20
    Signed-off-by: Christian Franke <[email protected]>

Diff:
---
 winsup/testsuite/stress/cygstress | 82 +++++++++++++++++++++++++----------=
----
 1 file changed, 52 insertions(+), 30 deletions(-)

diff --git a/winsup/testsuite/stress/cygstress b/winsup/testsuite/stress/cy=
gstress
index 9b3fa2c07..80dfa795f 100755
--- a/winsup/testsuite/stress/cygstress
+++ b/winsup/testsuite/stress/cygstress
@@ -2,7 +2,7 @@
 #
 # Run stress-ng on Cygwin
 #
-# Copyright 2025 Christian Franke
+# Copyright 2025-26 Christian Franke
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -22,7 +22,7 @@ Usage: ${0##*/} [OPTION...] {CI|WORK|FAIL|test...}
   -f        force execution of tests tagged 'heavy' or 'admin'
   -n        print commands only (dry-run)
   -r N      run test set N times [default: 1]
-  -s PATH   stress-ng executable [default: stress-ng]
+  -s PATH   stress-ng executable [default: /usr/bin/stress-ng]
   -t N      run each test for at least N seconds [default: 5]
   -v        print stress-ng output always [default: on error only]
   -w N      start N workers for each test [default: 2]
@@ -36,7 +36,7 @@ EOF
 }
=20
 # Tags:
-# WORKS: works on Cygwin (3.7.0-0.192.gc85f42a4f3ee.x86_64) + stress-ng V0=
.19.02
+# WORKS: works on Cygwin 3.7.0-0.551.g383618c8902f.x86_64 + stress-ng 0.21=
.04
 # WORKS,CI: possibly suitable subset for Cygwin CI test.
 # FAILS: fails on Cygwin, see "TODO ..." for details.
 # heavy: heavy resource usage, may work, hang, freeze desktop, require res=
et, ...
@@ -46,6 +46,7 @@ EOF
 stress_tests=3D'
 # TEST [ARGS]   # Tag       # Comment
   access        # FAILS     # TODO undecided: "access 004 on chmod mode 40=
0 failed: 13 (Permission denied)"
+  acct          # -----     # requires acct(2)
   acl           # WORKS,CI  # (fixed in stress-ng 0.18.12)
   affinity      # WORKS
   af-alg        # -----     # requires AF_ALG
@@ -69,8 +70,8 @@ stress_tests=3D'
   bubblesort    # WORKS
=20
   cache         # WORKS
-  cacheline     # WORKS
   cachehammer   # WORKS
+  cacheline     # WORKS
   cap           # -----
   cgroup        # -----
   chattr        # -----
@@ -78,6 +79,7 @@ stress_tests=3D'
   chmod         # WORKS,CI
   chown         # FAILS     # TODO undecided: "fchown failed, errno=3D22 (=
Invalid argument)"
   chroot        # admin
+  chyperbolic   # WORKS
   clock         # WORKS,CI  # (fixed in stress-ng 0.18.12: "timer_create f=
ailed for timer ...
                             #  ... ''CLOCK_THREAD_CPUTIME_ID'', errno=3D13=
4")
                             # (fixed in Cygwin 3.7.0: "clock_settime was a=
ble to set an ...
@@ -88,9 +90,11 @@ stress_tests=3D'
   copy-file     # -----
   cpu           # WORKS
   cpu-online    # -----
-  cpu-sched     # FAILS     # TODO undecided: "child died: signal 9 ''SIGK=
ILL''"
+  cpu-sched     # FAILS     # TODO undecided: "child died: signal 9 ''SIGK=
ILL''" and/or processes left
                             # (fixed in Cygwin 3.6.0: signals lost after S=
IGSTOP)
+  crc           # WORKS
   crypt         # WORKS     # uses libcrypt
+  ctrig         # WORKS
   cyclic        # admin
=20
   daemon        # WORKS
@@ -109,17 +113,18 @@ stress_tests=3D'
   dynlib        # -----
=20
   easy-opcode   # WORKS
-  eigen         # WORKS     # uses libeigen (C++ template lib)
   efivar        # -----
+  eigen         # WORKS     # uses libeigen (C++ template lib)
   enosys        # -----
   env           # heavy     # creates very large environment until OOM
   epoll         # -----
+  eth-sniff     # -----     # requires <net/ethernet.h>, ...
   eventfd       # -----
-  exec          # WORKS,CI
+  exec          # WORKS,CI  # TODO stress-ng: "open ... failed, errno=3D2"=
 if started from PATH
   exit-group    # -----     # requires exit_group(2)
   expmath       # WORKS
=20
-  factor        # FAILS     # uses libgmp; TODO undecided: "terminated on =
signal 11 ''SIGSEGV''"
+  factor        # WORKS     # uses libgmp; (fixed in ?: "terminated on sig=
nal 11 ''SIGSEGV''")
   fallocate     # WORKS,CI
   fanotify      # -----
   far-branch    # WORKS
@@ -134,10 +139,11 @@ stress_tests=3D'
   fiemap        # -----
   fifo          # WORKS
   file-ioctl    # WORKS,CI
+  filehole      # WORKS,CI
   filename      # FAILS     # TODO Cygwin: high surrogate at the end of th=
e string is lost, please see:
                             #   https://sourceware.org/pipermail/cygwin/20=
25-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
+  filename --filename-opts utf8 # WORKS,CI # restricts filenames to UTF-8 =
charset
   filerace      # heavy     # uses many [p]write() commands
                             # TODO undecided: watchdog timeout may be too =
short
   flipflop      # WORKS
@@ -148,6 +154,7 @@ stress_tests=3D'
   forkheavy     # heavy     # forks until process table is full
   fp            # WORKS,CI
   fp-error      # WORKS,CI
+  fp-misc       # WORKS,CI
   fpunch        # WORKS,CI  # (fixed in stress-ng 0.19.00: lseek() on shar=
ed fd)
   fractal       # WORKS
   fsize         # heavy     # creates large files until disk is full
@@ -157,6 +164,7 @@ stress_tests=3D'
   funcret       # WORKS
   futex         # -----
=20
+  gamma         # WORKS
   get           # WORKS
   getdent       # -----
   getrandom     # -----
@@ -178,13 +186,13 @@ stress_tests=3D'
   inotify       # -----     # requires inotify_*(2)
   insertionsort # WORKS
   intmath       # WORKS
-  io            # WORKS
+  io            # WORKS     # (fixed in stress-ng 0.21.04:: "rmdir '...' f=
ailed, errno=3D2")
   iomix         # WORKS
   ioport        # -----
   ioprio        # -----
   io-uring      # -----
   ipsec-mb      # -----     # requires libipsec-mb
-  itimer        # WORKS,CI
+  itimer        # -----     # requires ITIMER_PROF
=20
   jpeg          # WORKS     # uses libjpeg
   judy          # -----     # requires libJudy (ORPHANED)
@@ -205,7 +213,7 @@ stress_tests=3D'
   llc-affinity  # WORKS
   loadavg       # WORKS
   locka         # WORKS
-  lockbus       # WORKS
+  lockbus       # FAILS     # TODO Cygwin: processes left
   lockf         # WORKS,CI  # (fixed in Cygwin 3.5.5: "NtCreateEvent(lock)=
: 0xC000003" and ...
                             #  "can''t handle more than 910 locks per file=
")
   lockmix       # WORKS
@@ -238,11 +246,12 @@ stress_tests=3D'
   mmap          # WORKS,CI
   mmapaddr      # WORKS
   mmapcow       # WORKS
-  mmapfork      # WORKS
   mmapfiles     # WORKS
   mmapfixed     # WORKS
+  mmapfork      # WORKS
   mmaphuge      # -----
   mmapmany      # WORKS
+  mmaprandom    # -----     # requires deprecated <sys/tree.h>, RB_GENERAT=
E does not compile
   mmaptorture   # heavy
   module        # -----
   monte-carlo   # WORKS
@@ -260,7 +269,7 @@ stress_tests=3D'
   munmap        # -----
   mutex         # WORKS
=20
-  nanosleep     # WORKS,CI  # (fixed in ?: "detected 1 unexpected nanoslee=
p underruns")
+  nanosleep     # FAILS     # TODO undecided: "detected 1 unexpected nanos=
leep underruns"
   netdev        # -----
   netlink-proc  # -----
   netlink-task  # -----
@@ -268,12 +277,15 @@ stress_tests=3D'
   nop           # WORKS
   null          # WORKS
   numa          # -----
+  numacopy      # -----
=20
   oom-pipe      # -----
   opcode        # -----
-  open          # WORKS,CI  # TODO undecided: "rmdir ... failed, errno=3D9=
0 (Directory not empty)"
+  open          # WORKS,CI  # (fixed in ?: "rmdir ... failed, errno=3D90 (=
Directory not empty)")
+  ovpn          # -----     # requires <linux/ovpn.h>
=20
   pagemove      # -----
+  pagescatter   # WORKS,CI  # (fixed in Cygwin 3.7.0: madvise() returns er=
ror number instead of -1)
   pageswap      # -----
   pci           # -----
   personality   # -----
@@ -290,7 +302,7 @@ stress_tests=3D'
   powmath       # WORKS
   prctl         # -----
   prefetch      # WORKS
-  prime         # FAILS     # uses libgmp; TODO undecided: "terminated on =
signal 11 ''SIGSEGV''"
+  prime         # WORKS     # uses libgmp; (fixed in ?: "terminated on sig=
nal 11 ''SIGSEGV''")
   prio-inv      # -----     # requires <pthread_nt.h>
   priv-instr    # WORKS,CI  # (fixed in Cygwin 3.7.0: crashes or hangs)
   procfs        # WORKS,CI  # (fixed in Cygwin 3.7.0: /proc/PID/maps may s=
egfault foreign processes
@@ -299,7 +311,7 @@ stress_tests=3D'
   pthread       # WORKS,CI
   ptr-chase     # WORKS
   ptrace        # -----
-  pty           # WORKS,CI  # TODO undecided: "tcflush TCOOFLUSH on follow=
er pty failed, errno=3D4"
+  pty           # FAILS     # TODO undecided: "tcflush TC(IO|OO|I)FLUSH on=
 follower pty failed, errno=3D4"
                             # (fixed in Cygwin 3.7.0: implement tcdrain/tc=
flow/TIOCINQ for pty)
                             # (fixed in Cygwin 3.6.1: "No pty allocated, e=
rrno=3D0")
   qsort         # WORKS
@@ -308,10 +320,10 @@ stress_tests=3D'
   race-sched    # WORKS
   radixsort     # WORKS     # uses libbsd
   ramfs         # -----
-  rawdev        # -----
   randlist      # WORKS
-  rawsock       # -----
+  rawdev        # -----
   rawpkt        # -----     # requires <linux/if_packet.h>, ...
+  rawsock       # -----
   rawudp        # -----
   rdrand        # WORKS
   readahead     # -----
@@ -326,6 +338,7 @@ stress_tests=3D'
   ring-pipe     # WORKS
   rlimit        # heavy
   rmap          # WORKS
+  rofs          # -----     # requires --rofs-dir (fixed in stress-ng 0.21=
.02: "SIGSEGV", "listxattr() ... failed")
   rotate        # WORKS
   rseq          # -----
   rtc           # -----     # requires /dev/rtc
@@ -337,18 +350,19 @@ stress_tests=3D'
   seccomp       # -----
   secretmem     # -----
   seek          # WORKS,CI
-  sem           # FAILS     # TODO Cygwin: "instance 0 corrupted bogo-ops =
counter, 556328 vs 556327"
-  sem-sysv      # FAILS     # TODO Cygwin: "aborted early, out of system r=
esources"
+  sem           # WORKS,CI  # (fixed in ?: "instance 0 corrupted bogo-ops =
counter, 556328 vs 556327")
+  sem-sysv      # -----     # WORKS if cygserver is running
   sendfile      # -----     # requires sendfile(2)
   session       # WORKS
-  set           # FAILS     # TODO stress-ng: "setrlimit failed, ..., expe=
cted -EPERM, instead got errno=3D22 (Invalid argument)"
+  set           # WORKS     # (fixed in stress-ng 0.18.06: "setrlimit fail=
ed, ..., expected -EPERM, instead got errno=3D22 ...")
   shellsort     # WORKS
-  shm           # WORKS,CI
+  shm           # WORKS,CI  # TODO stress-ng: bogus message "assuming kill=
ed by OOM killer, restarting again"
+                            # (fixed in Cygwin 3.6.1 + stress-ng 0.21.04 :=
 "ftruncate of shared memory failed")
   shm-sysv      # -----     # requires shmat(2), smdt(2)
   sigabrt       # WORKS,CI
-  sigbus        # FAILS     # TODO Cygwin: "ftruncate file to a single pag=
e failed, errno=3D13 (Permission denied)"
+  sigbus        # FAILS     # TODO undecided: "ftruncate file to a single =
page failed, errno=3D13 (Permission denied)"
   sigchld       # FAILS     # TODO Cygwin: hangs
-  sigfd         # -----     # TODO Cygwin: "stressor terminated with unexp=
ected signal 11 ''SIGSEGV''"
+  sigfd         # FAILS     # TODO Cygwin: hangs
                             # (fixed in stress-ng 0.19.02: drop restrictio=
n to glibc)
   sigfpe        # WORKS,CI  # (fixed in ?: "got SIGFPE error 15 (FPE_INTDE=
V), expecting 20 (FPE_FLTRES)")
   sighup        # WORKS,CI
@@ -360,7 +374,9 @@ stress_tests=3D'
   sigpipe       # FAILS     # TODO undecided: hangs in few cases
   sigq          # WORKS,CI
   sigrt         # WORKS,CI
-  sigsegv       # WORKS,CI  # (fixed in Cygwin 3.7.0: crashes or hangs)
+  sigsegv       # WORKS,CI  # (fixed in stress-ng 0.21.04: "expecting faul=
t address 0x..., got 0xffffffffffffffff instead")
+                            # (fixed in Cygwin 3.7.0: crashes or hangs)
+  sigstop       # WORKS,CI
   sigsuspend    # WORKS,CI
   sigtrap       # WORKS,CI
   sigurg        # WORKS,CI
@@ -386,6 +402,7 @@ stress_tests=3D'
   statmount     # -----
   str           # WORKS
   stream        # WORKS     # (fixed in stress-ng 0.19.02: --stream-l3-siz=
e set correctly)
+  strnum        # WORKS
   swap          # -----
   switch        # WORKS
   symlink       # WORKS,CI
@@ -393,14 +410,16 @@ stress_tests=3D'
   syncload      # WORKS
   sysbadaddr    # heavy
   syscall       # FAILS     # TODO Cygwin: "terminated on signal: 11"
+  sysfs         # -----     # requires /sys
   sysinfo       # WORKS
   sysinval      # -----
-  sysfs         # -----
=20
   tee           # -----     # requires tee(2)
   timer         # FAILS     # TODO undecided: "1 timer settime calls faile=
d"
   timerfd       # heavy     # TODO undecided: may freeze desktop
+  timermix      # WORKS,CI  # (fixed in stress-ng 0.21.02: "setitimer fail=
ed, errno=3D22 (Invalid argument)")
   time-warp     # WORKS
+  tlb-numa      # -----     # requires mbind(2)
   tlb-shootdown # heavy
   tmpfs         # -----     # requires tmpfs filesystem
   touch         # WORKS
@@ -422,6 +441,7 @@ stress_tests=3D'
   usersyscall   # -----
   utime         # WORKS,CI
=20
+  varyload      # WORKS
   vdso          # -----
   veccmp        # WORKS
   vecfp         # WORKS
@@ -436,14 +456,15 @@ stress_tests=3D'
   vm-rw         # -----
   vm-segv       # WORKS
   vm-splice     # -----
-  vma           # WORKS
+  vma           # FAILS     # TODO Cygwin: "*** fatal error - Exception du=
ring process exit"
   vnni          # WORKS
=20
   wait          # FAILS     # TODO Cygwin: hangs in few cases
   waitcpu       # WORKS
   watchdog      # -----
   wcs           # WORKS
-  workload      # WORKS,CI  # (fixed in Cygwin 3.5.5: hang in mq_send/rece=
ive)
+  workload      # FAILS     # TODO Cygwin: hangs and/or SIGSEGV in few cas=
es
+                            # (fixed in Cygwin 3.5.5: hang in mq_send/rece=
ive)
=20
   x86cpuid      # WORKS
   x86syscall    # -----
@@ -456,7 +477,8 @@ stress_tests=3D'
   zombie        # WORKS,CI
 '
=20
-error_mode=3D"cont"; stress_ng=3D"stress-ng"
+stress_ng=3D"/usr/bin/stress-ng" # "--exec" fails if plain "stress-ng" is =
used
+error_mode=3D"cont"
 num_runs=3D1; timeout=3D5; workers=3D2
 dryrun=3Dfalse; force=3Dfalse; verbose=3Dfalse
 taskset=3D