From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2201) id 9C2233858CD1; Fri, 14 Jul 2023 15:27:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9C2233858CD1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1689348473; bh=/xv8xXovmHWntoHbDzQyHmzotZSFDgFSEneCrTteKVY=; h=From:To:Subject:Date:From; b=GTck2UYtjNyhX6Otg57+WFGi8zPxJ1LpKn/9D/z+/FqllFBNImYGdd+JdzHKoRDoy No7wbzShAe8jgeiw8tAo4REJXJ0UklRlmkURpG8o3PRv7rrmjG6MJM066FHSyU+8SO 2nXnHI+DjZ8gYVa16EH7JzxgWz95XwZdBUBGIUY4= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Jon Turney To: cygwin-cvs@sourceware.org, newlib-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: testsuite: Setup test prereqs in 'installation' the tests run in X-Act-Checkin: newlib-cygwin X-Git-Author: Jon Turney X-Git-Refname: refs/heads/master X-Git-Oldrev: b7c3a63bb3c4dab861b2bce8793b8dfb36151799 X-Git-Newrev: e8c1a579cdc5fc71b1aac1e747f6b10d4a1e8fd6 Message-Id: <20230714152753.9C2233858CD1@sourceware.org> Date: Fri, 14 Jul 2023 15:27:53 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3De8c1a579cdc= 5fc71b1aac1e747f6b10d4a1e8fd6 commit e8c1a579cdc5fc71b1aac1e747f6b10d4a1e8fd6 Author: Jon Turney Date: Tue Jul 4 13:59:14 2023 +0100 Cygwin: testsuite: Setup test prereqs in 'installation' the tests run in =20 Do some setup in the Cygwin 'installation' at testsuite/testinst/: =20 * Ensure /tmp exists =20 * Use BusyBox to provide executables needed by tests which use system() (sh, sleep, ls) =20 This enables tests which use system(), or require /tmp to exist to pass. =20 Signed-off-by: Jon Turney Diff: --- .github/workflows/cygwin.yml | 3 ++- winsup/cygwin/Makefile.am | 4 ++-- winsup/doc/faq-programming.xml | 3 ++- winsup/testsuite/Makefile.am | 25 ++++++++++++++++++++++++- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 575ff1fdc..248a3e4cd 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -71,6 +71,7 @@ jobs: packages: >- autoconf, automake, + busybox, cocom, dblatex, dejagnu, @@ -116,6 +117,6 @@ jobs: export PATH=3D/usr/bin:$(cygpath ${SYSTEMROOT})/system32 && export MAKEFLAGS=3D-j$(nproc) && cd build && - (export PATH=3D${{ matrix.target }}/winsup/testsuite/runtime:${PAT= H} && cmd /c $(cygpath -wa ${{ matrix.target }}/winsup/cygserver/cygserver)= &) && + (export PATH=3D${{ matrix.target }}/winsup/testsuite/testinst/bin:= ${PATH} && cmd /c $(cygpath -wa ${{ matrix.target }}/winsup/cygserver/cygse= rver) &) && (cd ${{ matrix.target }}/winsup; make check || true) shell: C:\cygwin\bin\bash.exe --noprofile --norc -eo pipefail '{0}' diff --git a/winsup/cygwin/Makefile.am b/winsup/cygwin/Makefile.am index c34ca6ddc..bfb5ead10 100644 --- a/winsup/cygwin/Makefile.am +++ b/winsup/cygwin/Makefile.am @@ -602,8 +602,8 @@ $(NEW_DLL_NAME): $(LDSCRIPT) libdll.a $(VERSION_OFILES)= $(LIBSERVER)\ $(newlib_build)/libm.a \ $(newlib_build)/libc.a \ -lgcc -lkernel32 -lntdll -Wl,-Map,cygwin.map - @$(MKDIR_P) ${target_builddir}/winsup/testsuite/runtime/ - $(AM_V_at)$(INSTALL_PROGRAM) $(NEW_DLL_NAME) ${target_builddir}/winsup/te= stsuite/runtime/$(DLL_NAME) + @$(MKDIR_P) ${target_builddir}/winsup/testsuite/testinst/bin/ + $(AM_V_at)$(INSTALL_PROGRAM) $(NEW_DLL_NAME) ${target_builddir}/winsup/te= stsuite/testinst/bin/$(DLL_NAME) =20 # cygwin import library toolopts=3D--cpu=3D@target_cpu@ --ar=3D@AR@ --as=3D@AS@ --nm=3D@NM@ --objc= opy=3D@OBJCOPY@ diff --git a/winsup/doc/faq-programming.xml b/winsup/doc/faq-programming.xml index 7fc6baf25..15ae6eac4 100644 --- a/winsup/doc/faq-programming.xml +++ b/winsup/doc/faq-programming.xml @@ -697,7 +697,8 @@ Building these programs can be disabled with the --without-cross-bootst option to configure. =20 - + =20 Building the documentation also requires the dblatex, diff --git a/winsup/testsuite/Makefile.am b/winsup/testsuite/Makefile.am index 7853d98e8..11332eda2 100644 --- a/winsup/testsuite/Makefile.am +++ b/winsup/testsuite/Makefile.am @@ -339,7 +339,7 @@ testdll_tmpdir =3D $(shell cygpath -ma $(tmpdir) | sed = -e 's#^\([A-Z]\):#/cygdrive =20 site-extra.exp: ../config.status Makefile @rm -f ./tmp0 - @echo "set runtime_root \"`pwd`/runtime\"" >> ./tmp0 + @echo "set runtime_root \"`pwd`/testinst/bin\"" >> ./tmp0 @echo "set tmpdir $(tmpdir)" >> ./tmp0 @echo "set testdll_tmpdir $(testdll_tmpdir)" >> ./tmp0 @echo "set cygrun \"`pwd`/mingw/cygrun\"" >> ./tmp0 @@ -347,6 +347,29 @@ site-extra.exp: ../config.status Makefile =20 EXTRA_DEJAGNU_SITE_CONFIG =3D site-extra.exp =20 +# Set up things in the Cygwin 'installation' at testsuite/testinst/ to pro= vide +# things which tests need to work +# +# * Create /tmp +# * Ensure there is a /usr/bin/sh for tests which use system() +# * Ensure there is a /usr/bin/sleep for tests which use system("sleep 10") +# * Ensure there is a /usr/bin/ls for tests which use system("ls") +# +# copy to avoid all the complexities: hardlink will fail if builddir is on= a +# separate filesystem, symlink would need to be constructed with regard to= the +# mounts of the test installation, and making it into /bin/ will cause +# CreateProcess() to load cygwin1.dll from there. +# +# use busybox executables as they don't have any other shared library +# dependencies other than cygwin1.dll. +# + +check-local: + $(MKDIR_P) ${builddir}/testinst/tmp + cd ${builddir}/testinst/bin && cp /usr/libexec/busybox/bin/busybox.exe sh= .exe + cd ${builddir}/testinst/bin && cp /usr/libexec/busybox/bin/busybox.exe sl= eep.exe + cd ${builddir}/testinst/bin && cp /usr/libexec/busybox/bin/busybox.exe ls= .exe + # target to build all the programs needed by check, without running check check_programs: $(check_PROGRAMS)