Cygwin: testsuite: Setup test prereqs in 'installation' the tests run in
Do some setup in the Cygwin 'installation' at testsuite/testinst/: * Ensure /tmp exists * Use BusyBox to provide executables needed by tests which use system() (sh, sleep, ls) This enables tests which use system(), or require /tmp to exist to pass. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
This commit is contained in:
parent
b7c3a63bb3
commit
e8c1a579cd
|
@ -71,6 +71,7 @@ jobs:
|
|||
packages: >-
|
||||
autoconf,
|
||||
automake,
|
||||
busybox,
|
||||
cocom,
|
||||
dblatex,
|
||||
dejagnu,
|
||||
|
@ -116,6 +117,6 @@ jobs:
|
|||
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) &) &&
|
||||
(export PATH=${{ matrix.target }}/winsup/testsuite/testinst/bin:${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}'
|
||||
|
|
|
@ -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/testsuite/runtime/$(DLL_NAME)
|
||||
@$(MKDIR_P) ${target_builddir}/winsup/testsuite/testinst/bin/
|
||||
$(AM_V_at)$(INSTALL_PROGRAM) $(NEW_DLL_NAME) ${target_builddir}/winsup/testsuite/testinst/bin/$(DLL_NAME)
|
||||
|
||||
# cygwin import library
|
||||
toolopts=--cpu=@target_cpu@ --ar=@AR@ --as=@AS@ --nm=@NM@ --objcopy=@OBJCOPY@
|
||||
|
|
|
@ -697,7 +697,8 @@ Building these programs can be disabled with the <literal>--without-cross-bootst
|
|||
option to <literal>configure</literal>.
|
||||
</para>
|
||||
|
||||
<!-- If you want to run the tests, <literal>dejagnu</literal> is also required. -->
|
||||
<!-- If you want to run the tests, <literal>dejagnu</literal> and
|
||||
<literal>busybox</literal> are also required. -->
|
||||
|
||||
<para>
|
||||
Building the documentation also requires the <literal>dblatex</literal>,
|
||||
|
|
|
@ -339,7 +339,7 @@ testdll_tmpdir = $(shell cygpath -ma $(tmpdir) | sed -e 's#^\([A-Z]\):#/cygdrive
|
|||
|
||||
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
|
|||
|
||||
EXTRA_DEJAGNU_SITE_CONFIG = site-extra.exp
|
||||
|
||||
# Set up things in the Cygwin 'installation' at testsuite/testinst/ to provide
|
||||
# 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 sleep.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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue