diff --git a/tests/diagnostics.at b/tests/diagnostics.at
index 6c23ddb6..46af89c4 100644
--- a/tests/diagnostics.at
+++ b/tests/diagnostics.at
@@ -19,7 +19,7 @@ AT_BANNER([[Diagnostics.]])
# AT_TEST($1: TITLE, $2: GRAMMAR, $3: EXIT-STATUS, $4: OUTPUT-WITH-STYLE,
-# $5: EXTRA_ENV
+# $5: EXTRA_ENV, $6: SKIP-IF)
# -----------------------------------------------------------------------
# Run Bison on GRAMMAR with debugging style enabled, and expect
# OUTPUT-WITH-STYLE as diagnostics.
@@ -33,6 +33,9 @@ AT_KEYWORDS([diagnostics])
locale=`locale -a | $EGREP '^en_US\.(UTF-8|utf8)$' | sed 1q`
AT_SKIP_IF([test x == x"$locale"])
+m4_ifval([$6],
+[AT_SKIP_IF([$6])])
+
AT_BISON_OPTION_PUSHDEFS
AT_DATA_GRAMMAR([[input.y]], [$2])
@@ -261,11 +264,9 @@ input.y:17.4-17: warning: empty rule without %empty [warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
]])
+
# Likewise, but currently not portable to Cygwin.
# https://lists.gnu.org/r/bug-bison/2020-05/msg00003.html.
-case `uname -a` in
- (CYGWIN*);;
- (*)
AT_TEST([[Tabulations and multibyte characters]],
[[%%
e: {ββΓπΈβ = -βπ΅β/βt}
@@ -276,9 +277,7 @@ e: {ββΓπΈβ = -βπ΅β/βt}
| ^~~~~~~~~~~~~~
| %empty
input.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
-]])
-;;
-esac
+]], [], [uname -a | grep -i cygwin])
## --------------- ##