Note that cygserver must be run using the same cygwin1.DLL as test
programs, as they communicate over a named pipe whose name contains the
'installation key' (which is a hash of the cygwin1.dll's path).
We run cygserver via 'cmd' to avoid the special code which handles a
cygwin parent process starting a cygwin child process, which assumes the
same version of cygwin in both.
---
.github/workflows/cygwin.yml | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml
index ac167e748..10d0255ef 100644
--- a/.github/workflows/cygwin.yml
+++ b/.github/workflows/cygwin.yml
@@ -52,7 +52,8 @@ jobs:
fail-fast: false
matrix:
include:
- - pkgarch: x86_64
+ - target: x86_64-pc-cygwin
+ pkgarch: x86_64
name: Windows native ${{ matrix.pkgarch }}
steps:
@@ -105,6 +106,15 @@ jobs:
make &&
make install &&
(cd */newlib; make info man) &&
- (cd */newlib; make install-info install-man) &&
- (cd */winsup; make check || true)
+ (cd */newlib; make install-info install-man)
+ shell: C:\cygwin\bin\bash.exe --noprofile --norc -eo pipefail '{0}'
+
+ # test
+ - name: Test Cygwin
+ run: >-
+ export PATH=/usr/bin:$(cygpath ${SYSTEMROOT})/system32 &&
+ export MAKEFLAGS=-j$(nproc) &&
+ cd build &&
+ (export PATH=${{ matrix.target }}/winsup/testsuite/runtime:${PATH} &&
cmd /c $(cygpath -wa ${{ matrix.target }}/winsup/cygserver/cygserver) &) &&
+ (cd ${{ matrix.target }}/winsup; make check || true)
shell: C:\cygwin\bin\bash.exe --noprofile --norc -eo pipefail '{0}'
--
2.39.0