Add --disable-test-container to disable test container
Checks
Context |
Check |
Description |
redhat-pt-bot/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
redhat-pt-bot/TryBot-32bit |
success
|
Build for i686
|
linaro-tcwg-bot/tcwg_glibc_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
It can be difficult to run tests in container under simulator. Add
--disable-test-container configure option to disable test container.
Container tests are enabled by default.
---
Makefile | 2 ++
Rules | 5 +++++
configure | 7 +++++++
configure.ac | 6 ++++++
nss/Makefile | 2 ++
posix/Makefile | 6 +++++-
resolv/Makefile | 11 +++++++++--
7 files changed, 36 insertions(+), 3 deletions(-)
Comments
On 04/02/24 15:55, H.J. Lu wrote:
> It can be difficult to run tests in container under simulator. Add
> --disable-test-container configure option to disable test container.
> Container tests are enabled by default.
Which is the failure that running under this simulator throw? Would be
possible to detect it on test-container and fail with UNSUPPORTED instead?
I am not found on configure switch that disable testing, it seems just
extra burden while adding test-container and this decrease test coverage
when using this flag.
> ---
> Makefile | 2 ++
> Rules | 5 +++++
> configure | 7 +++++++
> configure.ac | 6 ++++++
> nss/Makefile | 2 ++
> posix/Makefile | 6 +++++-
> resolv/Makefile | 11 +++++++++--
> 7 files changed, 36 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 7052b46df8..2ba4a5ecd3 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -610,6 +610,7 @@ else
> LINKS_DSO_PROGRAM = links-dso-program
> endif
>
> +ifeq (yes,$(enable-test-container))
> $(tests-container) $(addsuffix /tests,$(subdirs)) : \
> $(objpfx)testroot.pristine/install.stamp
> $(objpfx)testroot.pristine/install.stamp :
> @@ -655,6 +656,7 @@ endif
> INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)'
> rm -f $(symbolic-link-list)
> touch $(objpfx)testroot.pristine/install.stamp
> +endif
>
> tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special))
> tests: $(tests-special)
> diff --git a/Rules b/Rules
> index c7db0a4869..787024c729 100644
> --- a/Rules
> +++ b/Rules
> @@ -142,6 +142,11 @@ endif
> # Generate constant files for Python pretty printers if required.
> others: $(py-const)
>
> +ifeq (no,$(enable-test-container))
> +# Don't run any container tests with --disable-test-container.
> +tests-container :=
> +endif
> +
> ifeq ($(run-built-tests),no)
> tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported), \
> $(tests) $(tests-internal) \
> diff --git a/configure b/configure
> index 59ff1e415d..2ca1fcf43f 100755
> --- a/configure
> +++ b/configure
> @@ -7852,6 +7852,13 @@ fi
> config_vars="$config_vars
> enable-static-pie = $libc_cv_static_pie"
>
> +# Enable test-container by default.
> +if test "x$enable_test_container" = x; then
> + enable_test_container=yes
> +fi
> +config_vars="$config_vars
> +enable-test-container = $enable_test_container"
> +
> # Set the `multidir' variable by grabbing the variable from the compiler.
> # We do it once and save the result in a generated makefile.
> libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
> diff --git a/configure.ac b/configure.ac
> index 65799e5685..e1956b98cc 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1740,6 +1740,12 @@ if test "$libc_cv_static_pie" = "yes"; then
> fi
> LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
>
> +# Enable test-container by default.
> +if test "x$enable_test_container" = x; then
> + enable_test_container=yes
> +fi
> +LIBC_CONFIG_VAR([enable-test-container], [$enable_test_container])
> +
> # Set the `multidir' variable by grabbing the variable from the compiler.
> # We do it once and save the result in a generated makefile.
> libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
> diff --git a/nss/Makefile b/nss/Makefile
> index 9331b3308c..ae083a9343 100644
> --- a/nss/Makefile
> +++ b/nss/Makefile
> @@ -434,9 +434,11 @@ extra-test-objs += nss_test1.os nss_test2.os nss_test_errno.os \
>
> ifeq ($(run-built-tests),yes)
> ifneq (no,$(PERL))
> +ifeq (yes,$(enable-test-container))
> tests-special += $(objpfx)mtrace-tst-nss-gai-hv2-canonname.out
> endif
> endif
> +endif
>
> generated += mtrace-tst-nss-gai-hv2-canonname.out \
> tst-nss-gai-hv2-canonname.mtrace
> diff --git a/posix/Makefile b/posix/Makefile
> index a1e84853a8..d3a70ab6b4 100644
> --- a/posix/Makefile
> +++ b/posix/Makefile
> @@ -462,7 +462,6 @@ endif
> tests-special += $(objpfx)annexc.out
> ifeq ($(run-built-tests),yes)
> tests-special += \
> - $(objpfx)bug-ga2-mem.out \
> $(objpfx)bug-glob2-mem.out \
> $(objpfx)bug-regex14-mem.out \
> $(objpfx)bug-regex2-mem.out \
> @@ -475,9 +474,14 @@ tests-special += \
> $(objpfx)tst-glob-tilde-mem.out \
> $(objpfx)tst-pcre-mem.out \
> $(objpfx)tst-rxspencer-no-utf8-mem.out \
> + # tests-special
> +ifeq (yes,$(enable-test-container))
> +tests-special += \
> + $(objpfx)bug-ga2-mem.out \
> $(objpfx)tst-vfork3-mem.out \
> # tests-special
> endif
> +endif
>
> include ../Rules
>
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 5f44f5896b..62c81fe998 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -221,8 +221,15 @@ $(inst_libdir)/libnss_dns.so:
>
> ifeq ($(run-built-tests),yes)
> ifneq (no,$(PERL))
> -tests-special += $(objpfx)mtrace-tst-leaks.out $(objpfx)mtrace-tst-leaks2.out \
> - $(objpfx)mtrace-tst-resolv-res_ninit.out
> +tests-special += \
> + $(objpfx)mtrace-tst-leaks.out \
> + $(objpfx)mtrace-tst-resolv-res_ninit.out \
> +# tests-special
> +ifeq (yes,$(enable-test-container))
> +tests-special += \
> + $(objpfx)mtrace-tst-leaks2.out \
> +# tests-special
> +endif
> endif
> endif
>
On Mon, Feb 5, 2024 at 5:55 AM Adhemerval Zanella Netto
<adhemerval.zanella@linaro.org> wrote:
>
>
>
> On 04/02/24 15:55, H.J. Lu wrote:
> > It can be difficult to run tests in container under simulator. Add
> > --disable-test-container configure option to disable test container.
> > Container tests are enabled by default.
>
> Which is the failure that running under this simulator throw? Would be
> possible to detect it on test-container and fail with UNSUPPORTED instead?
I am using
$ make check test-wrapper=$(PWD)/test-sde.sh
to test glibc compiled with Intel APX under APX emulator (SDE). SDE
doesn't work with container. SDE doesn't require any code changes.
I don't think we can detect it in container. Also GDB and LD_PELOAD
tests don't work. I don't know how to detect them either.
> I am not found on configure switch that disable testing, it seems just
> extra burden while adding test-container and this decrease test coverage
> when using this flag.
>
> > ---
> > Makefile | 2 ++
> > Rules | 5 +++++
> > configure | 7 +++++++
> > configure.ac | 6 ++++++
> > nss/Makefile | 2 ++
> > posix/Makefile | 6 +++++-
> > resolv/Makefile | 11 +++++++++--
> > 7 files changed, 36 insertions(+), 3 deletions(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 7052b46df8..2ba4a5ecd3 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -610,6 +610,7 @@ else
> > LINKS_DSO_PROGRAM = links-dso-program
> > endif
> >
> > +ifeq (yes,$(enable-test-container))
> > $(tests-container) $(addsuffix /tests,$(subdirs)) : \
> > $(objpfx)testroot.pristine/install.stamp
> > $(objpfx)testroot.pristine/install.stamp :
> > @@ -655,6 +656,7 @@ endif
> > INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)'
> > rm -f $(symbolic-link-list)
> > touch $(objpfx)testroot.pristine/install.stamp
> > +endif
> >
> > tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special))
> > tests: $(tests-special)
> > diff --git a/Rules b/Rules
> > index c7db0a4869..787024c729 100644
> > --- a/Rules
> > +++ b/Rules
> > @@ -142,6 +142,11 @@ endif
> > # Generate constant files for Python pretty printers if required.
> > others: $(py-const)
> >
> > +ifeq (no,$(enable-test-container))
> > +# Don't run any container tests with --disable-test-container.
> > +tests-container :=
> > +endif
> > +
> > ifeq ($(run-built-tests),no)
> > tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported), \
> > $(tests) $(tests-internal) \
> > diff --git a/configure b/configure
> > index 59ff1e415d..2ca1fcf43f 100755
> > --- a/configure
> > +++ b/configure
> > @@ -7852,6 +7852,13 @@ fi
> > config_vars="$config_vars
> > enable-static-pie = $libc_cv_static_pie"
> >
> > +# Enable test-container by default.
> > +if test "x$enable_test_container" = x; then
> > + enable_test_container=yes
> > +fi
> > +config_vars="$config_vars
> > +enable-test-container = $enable_test_container"
> > +
> > # Set the `multidir' variable by grabbing the variable from the compiler.
> > # We do it once and save the result in a generated makefile.
> > libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
> > diff --git a/configure.ac b/configure.ac
> > index 65799e5685..e1956b98cc 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -1740,6 +1740,12 @@ if test "$libc_cv_static_pie" = "yes"; then
> > fi
> > LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
> >
> > +# Enable test-container by default.
> > +if test "x$enable_test_container" = x; then
> > + enable_test_container=yes
> > +fi
> > +LIBC_CONFIG_VAR([enable-test-container], [$enable_test_container])
> > +
> > # Set the `multidir' variable by grabbing the variable from the compiler.
> > # We do it once and save the result in a generated makefile.
> > libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
> > diff --git a/nss/Makefile b/nss/Makefile
> > index 9331b3308c..ae083a9343 100644
> > --- a/nss/Makefile
> > +++ b/nss/Makefile
> > @@ -434,9 +434,11 @@ extra-test-objs += nss_test1.os nss_test2.os nss_test_errno.os \
> >
> > ifeq ($(run-built-tests),yes)
> > ifneq (no,$(PERL))
> > +ifeq (yes,$(enable-test-container))
> > tests-special += $(objpfx)mtrace-tst-nss-gai-hv2-canonname.out
> > endif
> > endif
> > +endif
> >
> > generated += mtrace-tst-nss-gai-hv2-canonname.out \
> > tst-nss-gai-hv2-canonname.mtrace
> > diff --git a/posix/Makefile b/posix/Makefile
> > index a1e84853a8..d3a70ab6b4 100644
> > --- a/posix/Makefile
> > +++ b/posix/Makefile
> > @@ -462,7 +462,6 @@ endif
> > tests-special += $(objpfx)annexc.out
> > ifeq ($(run-built-tests),yes)
> > tests-special += \
> > - $(objpfx)bug-ga2-mem.out \
> > $(objpfx)bug-glob2-mem.out \
> > $(objpfx)bug-regex14-mem.out \
> > $(objpfx)bug-regex2-mem.out \
> > @@ -475,9 +474,14 @@ tests-special += \
> > $(objpfx)tst-glob-tilde-mem.out \
> > $(objpfx)tst-pcre-mem.out \
> > $(objpfx)tst-rxspencer-no-utf8-mem.out \
> > + # tests-special
> > +ifeq (yes,$(enable-test-container))
> > +tests-special += \
> > + $(objpfx)bug-ga2-mem.out \
> > $(objpfx)tst-vfork3-mem.out \
> > # tests-special
> > endif
> > +endif
> >
> > include ../Rules
> >
> > diff --git a/resolv/Makefile b/resolv/Makefile
> > index 5f44f5896b..62c81fe998 100644
> > --- a/resolv/Makefile
> > +++ b/resolv/Makefile
> > @@ -221,8 +221,15 @@ $(inst_libdir)/libnss_dns.so:
> >
> > ifeq ($(run-built-tests),yes)
> > ifneq (no,$(PERL))
> > -tests-special += $(objpfx)mtrace-tst-leaks.out $(objpfx)mtrace-tst-leaks2.out \
> > - $(objpfx)mtrace-tst-resolv-res_ninit.out
> > +tests-special += \
> > + $(objpfx)mtrace-tst-leaks.out \
> > + $(objpfx)mtrace-tst-resolv-res_ninit.out \
> > +# tests-special
> > +ifeq (yes,$(enable-test-container))
> > +tests-special += \
> > + $(objpfx)mtrace-tst-leaks2.out \
> > +# tests-special
> > +endif
> > endif
> > endif
> >
* H. J. Lu:
> It can be difficult to run tests in container under simulator. Add
> --disable-test-container configure option to disable test container.
> Container tests are enabled by default.
I think we should compile the test-in-container tests. One way to get
that might be to build support/test-container.c in such a way that it
always returns 77.
Thanks,
Florian
On 05/02/24 11:41, H.J. Lu wrote:
> On Mon, Feb 5, 2024 at 5:55 AM Adhemerval Zanella Netto
> <adhemerval.zanella@linaro.org> wrote:
>>
>>
>>
>> On 04/02/24 15:55, H.J. Lu wrote:
>>> It can be difficult to run tests in container under simulator. Add
>>> --disable-test-container configure option to disable test container.
>>> Container tests are enabled by default.
>>
>> Which is the failure that running under this simulator throw? Would be
>> possible to detect it on test-container and fail with UNSUPPORTED instead?
>
> I am using
>
> $ make check test-wrapper=$(PWD)/test-sde.sh
>
> to test glibc compiled with Intel APX under APX emulator (SDE). SDE
> doesn't work with container. SDE doesn't require any code changes.
> I don't think we can detect it in container. Also GDB and LD_PELOAD
> tests don't work. I don't know how to detect them either.
Right, but what kind of error does the SDE emulator trigger with container
tests? It is something similar to qemu-user where it emulates the syscall
or is it running a underlying kernel like qemu-system?
>
>> I am not found on configure switch that disable testing, it seems just
>> extra burden while adding test-container and this decrease test coverage
>> when using this flag.
>>
>>> ---
>>> Makefile | 2 ++
>>> Rules | 5 +++++
>>> configure | 7 +++++++
>>> configure.ac | 6 ++++++
>>> nss/Makefile | 2 ++
>>> posix/Makefile | 6 +++++-
>>> resolv/Makefile | 11 +++++++++--
>>> 7 files changed, 36 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index 7052b46df8..2ba4a5ecd3 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -610,6 +610,7 @@ else
>>> LINKS_DSO_PROGRAM = links-dso-program
>>> endif
>>>
>>> +ifeq (yes,$(enable-test-container))
>>> $(tests-container) $(addsuffix /tests,$(subdirs)) : \
>>> $(objpfx)testroot.pristine/install.stamp
>>> $(objpfx)testroot.pristine/install.stamp :
>>> @@ -655,6 +656,7 @@ endif
>>> INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)'
>>> rm -f $(symbolic-link-list)
>>> touch $(objpfx)testroot.pristine/install.stamp
>>> +endif
>>>
>>> tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special))
>>> tests: $(tests-special)
>>> diff --git a/Rules b/Rules
>>> index c7db0a4869..787024c729 100644
>>> --- a/Rules
>>> +++ b/Rules
>>> @@ -142,6 +142,11 @@ endif
>>> # Generate constant files for Python pretty printers if required.
>>> others: $(py-const)
>>>
>>> +ifeq (no,$(enable-test-container))
>>> +# Don't run any container tests with --disable-test-container.
>>> +tests-container :=
>>> +endif
>>> +
>>> ifeq ($(run-built-tests),no)
>>> tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported), \
>>> $(tests) $(tests-internal) \
>>> diff --git a/configure b/configure
>>> index 59ff1e415d..2ca1fcf43f 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -7852,6 +7852,13 @@ fi
>>> config_vars="$config_vars
>>> enable-static-pie = $libc_cv_static_pie"
>>>
>>> +# Enable test-container by default.
>>> +if test "x$enable_test_container" = x; then
>>> + enable_test_container=yes
>>> +fi
>>> +config_vars="$config_vars
>>> +enable-test-container = $enable_test_container"
>>> +
>>> # Set the `multidir' variable by grabbing the variable from the compiler.
>>> # We do it once and save the result in a generated makefile.
>>> libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
>>> diff --git a/configure.ac b/configure.ac
>>> index 65799e5685..e1956b98cc 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -1740,6 +1740,12 @@ if test "$libc_cv_static_pie" = "yes"; then
>>> fi
>>> LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
>>>
>>> +# Enable test-container by default.
>>> +if test "x$enable_test_container" = x; then
>>> + enable_test_container=yes
>>> +fi
>>> +LIBC_CONFIG_VAR([enable-test-container], [$enable_test_container])
>>> +
>>> # Set the `multidir' variable by grabbing the variable from the compiler.
>>> # We do it once and save the result in a generated makefile.
>>> libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
>>> diff --git a/nss/Makefile b/nss/Makefile
>>> index 9331b3308c..ae083a9343 100644
>>> --- a/nss/Makefile
>>> +++ b/nss/Makefile
>>> @@ -434,9 +434,11 @@ extra-test-objs += nss_test1.os nss_test2.os nss_test_errno.os \
>>>
>>> ifeq ($(run-built-tests),yes)
>>> ifneq (no,$(PERL))
>>> +ifeq (yes,$(enable-test-container))
>>> tests-special += $(objpfx)mtrace-tst-nss-gai-hv2-canonname.out
>>> endif
>>> endif
>>> +endif
>>>
>>> generated += mtrace-tst-nss-gai-hv2-canonname.out \
>>> tst-nss-gai-hv2-canonname.mtrace
>>> diff --git a/posix/Makefile b/posix/Makefile
>>> index a1e84853a8..d3a70ab6b4 100644
>>> --- a/posix/Makefile
>>> +++ b/posix/Makefile
>>> @@ -462,7 +462,6 @@ endif
>>> tests-special += $(objpfx)annexc.out
>>> ifeq ($(run-built-tests),yes)
>>> tests-special += \
>>> - $(objpfx)bug-ga2-mem.out \
>>> $(objpfx)bug-glob2-mem.out \
>>> $(objpfx)bug-regex14-mem.out \
>>> $(objpfx)bug-regex2-mem.out \
>>> @@ -475,9 +474,14 @@ tests-special += \
>>> $(objpfx)tst-glob-tilde-mem.out \
>>> $(objpfx)tst-pcre-mem.out \
>>> $(objpfx)tst-rxspencer-no-utf8-mem.out \
>>> + # tests-special
>>> +ifeq (yes,$(enable-test-container))
>>> +tests-special += \
>>> + $(objpfx)bug-ga2-mem.out \
>>> $(objpfx)tst-vfork3-mem.out \
>>> # tests-special
>>> endif
>>> +endif
>>>
>>> include ../Rules
>>>
>>> diff --git a/resolv/Makefile b/resolv/Makefile
>>> index 5f44f5896b..62c81fe998 100644
>>> --- a/resolv/Makefile
>>> +++ b/resolv/Makefile
>>> @@ -221,8 +221,15 @@ $(inst_libdir)/libnss_dns.so:
>>>
>>> ifeq ($(run-built-tests),yes)
>>> ifneq (no,$(PERL))
>>> -tests-special += $(objpfx)mtrace-tst-leaks.out $(objpfx)mtrace-tst-leaks2.out \
>>> - $(objpfx)mtrace-tst-resolv-res_ninit.out
>>> +tests-special += \
>>> + $(objpfx)mtrace-tst-leaks.out \
>>> + $(objpfx)mtrace-tst-resolv-res_ninit.out \
>>> +# tests-special
>>> +ifeq (yes,$(enable-test-container))
>>> +tests-special += \
>>> + $(objpfx)mtrace-tst-leaks2.out \
>>> +# tests-special
>>> +endif
>>> endif
>>> endif
>>>
>
>
>
On Mon, Feb 5, 2024 at 6:54 AM Adhemerval Zanella Netto
<adhemerval.zanella@linaro.org> wrote:
>
>
>
> On 05/02/24 11:41, H.J. Lu wrote:
> > On Mon, Feb 5, 2024 at 5:55 AM Adhemerval Zanella Netto
> > <adhemerval.zanella@linaro.org> wrote:
> >>
> >>
> >>
> >> On 04/02/24 15:55, H.J. Lu wrote:
> >>> It can be difficult to run tests in container under simulator. Add
> >>> --disable-test-container configure option to disable test container.
> >>> Container tests are enabled by default.
> >>
> >> Which is the failure that running under this simulator throw? Would be
> >> possible to detect it on test-container and fail with UNSUPPORTED instead?
> >
> > I am using
> >
> > $ make check test-wrapper=$(PWD)/test-sde.sh
> >
> > to test glibc compiled with Intel APX under APX emulator (SDE). SDE
> > doesn't work with container. SDE doesn't require any code changes.
> > I don't think we can detect it in container. Also GDB and LD_PELOAD
> > tests don't work. I don't know how to detect them either.
>
> Right, but what kind of error does the SDE emulator trigger with container
No error. It just hangs forever. The same applies to GDB and LD_PRELOAD
tests.
> tests? It is something similar to qemu-user where it emulates the syscall
SDE emulates syscalls.
> or is it running a underlying kernel like qemu-system?
>
> >
> >> I am not found on configure switch that disable testing, it seems just
> >> extra burden while adding test-container and this decrease test coverage
> >> when using this flag.
> >>
> >>> ---
> >>> Makefile | 2 ++
> >>> Rules | 5 +++++
> >>> configure | 7 +++++++
> >>> configure.ac | 6 ++++++
> >>> nss/Makefile | 2 ++
> >>> posix/Makefile | 6 +++++-
> >>> resolv/Makefile | 11 +++++++++--
> >>> 7 files changed, 36 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/Makefile b/Makefile
> >>> index 7052b46df8..2ba4a5ecd3 100644
> >>> --- a/Makefile
> >>> +++ b/Makefile
> >>> @@ -610,6 +610,7 @@ else
> >>> LINKS_DSO_PROGRAM = links-dso-program
> >>> endif
> >>>
> >>> +ifeq (yes,$(enable-test-container))
> >>> $(tests-container) $(addsuffix /tests,$(subdirs)) : \
> >>> $(objpfx)testroot.pristine/install.stamp
> >>> $(objpfx)testroot.pristine/install.stamp :
> >>> @@ -655,6 +656,7 @@ endif
> >>> INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)'
> >>> rm -f $(symbolic-link-list)
> >>> touch $(objpfx)testroot.pristine/install.stamp
> >>> +endif
> >>>
> >>> tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special))
> >>> tests: $(tests-special)
> >>> diff --git a/Rules b/Rules
> >>> index c7db0a4869..787024c729 100644
> >>> --- a/Rules
> >>> +++ b/Rules
> >>> @@ -142,6 +142,11 @@ endif
> >>> # Generate constant files for Python pretty printers if required.
> >>> others: $(py-const)
> >>>
> >>> +ifeq (no,$(enable-test-container))
> >>> +# Don't run any container tests with --disable-test-container.
> >>> +tests-container :=
> >>> +endif
> >>> +
> >>> ifeq ($(run-built-tests),no)
> >>> tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported), \
> >>> $(tests) $(tests-internal) \
> >>> diff --git a/configure b/configure
> >>> index 59ff1e415d..2ca1fcf43f 100755
> >>> --- a/configure
> >>> +++ b/configure
> >>> @@ -7852,6 +7852,13 @@ fi
> >>> config_vars="$config_vars
> >>> enable-static-pie = $libc_cv_static_pie"
> >>>
> >>> +# Enable test-container by default.
> >>> +if test "x$enable_test_container" = x; then
> >>> + enable_test_container=yes
> >>> +fi
> >>> +config_vars="$config_vars
> >>> +enable-test-container = $enable_test_container"
> >>> +
> >>> # Set the `multidir' variable by grabbing the variable from the compiler.
> >>> # We do it once and save the result in a generated makefile.
> >>> libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
> >>> diff --git a/configure.ac b/configure.ac
> >>> index 65799e5685..e1956b98cc 100644
> >>> --- a/configure.ac
> >>> +++ b/configure.ac
> >>> @@ -1740,6 +1740,12 @@ if test "$libc_cv_static_pie" = "yes"; then
> >>> fi
> >>> LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
> >>>
> >>> +# Enable test-container by default.
> >>> +if test "x$enable_test_container" = x; then
> >>> + enable_test_container=yes
> >>> +fi
> >>> +LIBC_CONFIG_VAR([enable-test-container], [$enable_test_container])
> >>> +
> >>> # Set the `multidir' variable by grabbing the variable from the compiler.
> >>> # We do it once and save the result in a generated makefile.
> >>> libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
> >>> diff --git a/nss/Makefile b/nss/Makefile
> >>> index 9331b3308c..ae083a9343 100644
> >>> --- a/nss/Makefile
> >>> +++ b/nss/Makefile
> >>> @@ -434,9 +434,11 @@ extra-test-objs += nss_test1.os nss_test2.os nss_test_errno.os \
> >>>
> >>> ifeq ($(run-built-tests),yes)
> >>> ifneq (no,$(PERL))
> >>> +ifeq (yes,$(enable-test-container))
> >>> tests-special += $(objpfx)mtrace-tst-nss-gai-hv2-canonname.out
> >>> endif
> >>> endif
> >>> +endif
> >>>
> >>> generated += mtrace-tst-nss-gai-hv2-canonname.out \
> >>> tst-nss-gai-hv2-canonname.mtrace
> >>> diff --git a/posix/Makefile b/posix/Makefile
> >>> index a1e84853a8..d3a70ab6b4 100644
> >>> --- a/posix/Makefile
> >>> +++ b/posix/Makefile
> >>> @@ -462,7 +462,6 @@ endif
> >>> tests-special += $(objpfx)annexc.out
> >>> ifeq ($(run-built-tests),yes)
> >>> tests-special += \
> >>> - $(objpfx)bug-ga2-mem.out \
> >>> $(objpfx)bug-glob2-mem.out \
> >>> $(objpfx)bug-regex14-mem.out \
> >>> $(objpfx)bug-regex2-mem.out \
> >>> @@ -475,9 +474,14 @@ tests-special += \
> >>> $(objpfx)tst-glob-tilde-mem.out \
> >>> $(objpfx)tst-pcre-mem.out \
> >>> $(objpfx)tst-rxspencer-no-utf8-mem.out \
> >>> + # tests-special
> >>> +ifeq (yes,$(enable-test-container))
> >>> +tests-special += \
> >>> + $(objpfx)bug-ga2-mem.out \
> >>> $(objpfx)tst-vfork3-mem.out \
> >>> # tests-special
> >>> endif
> >>> +endif
> >>>
> >>> include ../Rules
> >>>
> >>> diff --git a/resolv/Makefile b/resolv/Makefile
> >>> index 5f44f5896b..62c81fe998 100644
> >>> --- a/resolv/Makefile
> >>> +++ b/resolv/Makefile
> >>> @@ -221,8 +221,15 @@ $(inst_libdir)/libnss_dns.so:
> >>>
> >>> ifeq ($(run-built-tests),yes)
> >>> ifneq (no,$(PERL))
> >>> -tests-special += $(objpfx)mtrace-tst-leaks.out $(objpfx)mtrace-tst-leaks2.out \
> >>> - $(objpfx)mtrace-tst-resolv-res_ninit.out
> >>> +tests-special += \
> >>> + $(objpfx)mtrace-tst-leaks.out \
> >>> + $(objpfx)mtrace-tst-resolv-res_ninit.out \
> >>> +# tests-special
> >>> +ifeq (yes,$(enable-test-container))
> >>> +tests-special += \
> >>> + $(objpfx)mtrace-tst-leaks2.out \
> >>> +# tests-special
> >>> +endif
> >>> endif
> >>> endif
> >>>
> >
> >
> >
On Mon, Feb 5, 2024 at 6:46 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * H. J. Lu:
>
> > It can be difficult to run tests in container under simulator. Add
> > --disable-test-container configure option to disable test container.
> > Container tests are enabled by default.
>
> I think we should compile the test-in-container tests. One way to get
> that might be to build support/test-container.c in such a way that it
> always returns 77.
Make all test-wrapper unsupported? Or add an emulator test-wrapper
option and make only emulator test-wrapper unsupported?
* H. J. Lu:
> On Mon, Feb 5, 2024 at 6:46 AM Florian Weimer <fweimer@redhat.com> wrote:
>>
>> * H. J. Lu:
>>
>> > It can be difficult to run tests in container under simulator. Add
>> > --disable-test-container configure option to disable test container.
>> > Container tests are enabled by default.
>>
>> I think we should compile the test-in-container tests. One way to get
>> that might be to build support/test-container.c in such a way that it
>> always returns 77.
>
> Make all test-wrapper unsupported? Or add an emulator test-wrapper
> option and make only emulator test-wrapper unsupported?
I meant support/test-container.c specifically, not test-wrapper.
Thanks,
Florian
On Mon, Feb 5, 2024 at 7:34 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * H. J. Lu:
>
> > On Mon, Feb 5, 2024 at 6:46 AM Florian Weimer <fweimer@redhat.com> wrote:
> >>
> >> * H. J. Lu:
> >>
> >> > It can be difficult to run tests in container under simulator. Add
> >> > --disable-test-container configure option to disable test container.
> >> > Container tests are enabled by default.
> >>
> >> I think we should compile the test-in-container tests. One way to get
> >> that might be to build support/test-container.c in such a way that it
> >> always returns 77.
> >
> > Make all test-wrapper unsupported? Or add an emulator test-wrapper
> > option and make only emulator test-wrapper unsupported?
>
> I meant support/test-container.c specifically, not test-wrapper.
>
SDE is transparent to programs. How does support/test-container.c
know that it is running under SDE?
* H. J. Lu:
> On Mon, Feb 5, 2024 at 7:34 AM Florian Weimer <fweimer@redhat.com> wrote:
>>
>> * H. J. Lu:
>>
>> > On Mon, Feb 5, 2024 at 6:46 AM Florian Weimer <fweimer@redhat.com> wrote:
>> >>
>> >> * H. J. Lu:
>> >>
>> >> > It can be difficult to run tests in container under simulator. Add
>> >> > --disable-test-container configure option to disable test container.
>> >> > Container tests are enabled by default.
>> >>
>> >> I think we should compile the test-in-container tests. One way to get
>> >> that might be to build support/test-container.c in such a way that it
>> >> always returns 77.
>> >
>> > Make all test-wrapper unsupported? Or add an emulator test-wrapper
>> > option and make only emulator test-wrapper unsupported?
>>
>> I meant support/test-container.c specifically, not test-wrapper.
>>
>
> SDE is transparent to programs. How does support/test-container.c
> know that it is running under SDE?
Sorry, I was trying to suggest this as a way to implement
--disable-test-container.
Thanks,
Florian
On Feb 05 2024, H.J. Lu wrote:
> SDE is transparent to programs. How does support/test-container.c
> know that it is running under SDE?
With qemu linux-user I get an error like this:
error: test-container.c:1116: unable to unshare user/fs: Invalid argument
and the test is marked unsupported.
On Mon, Feb 5, 2024 at 7:48 AM Andreas Schwab <schwab@suse.de> wrote:
>
> On Feb 05 2024, H.J. Lu wrote:
>
> > SDE is transparent to programs. How does support/test-container.c
> > know that it is running under SDE?
>
> With qemu linux-user I get an error like this:
>
> error: test-container.c:1116: unable to unshare user/fs: Invalid argument
>
> and the test is marked unsupported.
>
>
SDE is more transparent. You can run almost all programs unmodified.
test-container.c doesn't fail that way under SDE.
On 05/02/24 12:48, Andreas Schwab wrote:
> On Feb 05 2024, H.J. Lu wrote:
>
>> SDE is transparent to programs. How does support/test-container.c
>> know that it is running under SDE?
>
> With qemu linux-user I get an error like this:
>
> error: test-container.c:1116: unable to unshare user/fs: Invalid argument
>
> and the test is marked unsupported.
>
And the forever hanging leads to believe this is an issue with SDE emulator
and I don't think we should add a configure switch to paper this over.
On Mon, Feb 5, 2024 at 7:44 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * H. J. Lu:
>
> > On Mon, Feb 5, 2024 at 7:34 AM Florian Weimer <fweimer@redhat.com> wrote:
> >>
> >> * H. J. Lu:
> >>
> >> > On Mon, Feb 5, 2024 at 6:46 AM Florian Weimer <fweimer@redhat.com> wrote:
> >> >>
> >> >> * H. J. Lu:
> >> >>
> >> >> > It can be difficult to run tests in container under simulator. Add
> >> >> > --disable-test-container configure option to disable test container.
> >> >> > Container tests are enabled by default.
> >> >>
> >> >> I think we should compile the test-in-container tests. One way to get
> >> >> that might be to build support/test-container.c in such a way that it
> >> >> always returns 77.
> >> >
> >> > Make all test-wrapper unsupported? Or add an emulator test-wrapper
> >> > option and make only emulator test-wrapper unsupported?
> >>
> >> I meant support/test-container.c specifically, not test-wrapper.
> >>
> >
> > SDE is transparent to programs. How does support/test-container.c
> > know that it is running under SDE?
>
> Sorry, I was trying to suggest this as a way to implement
> --disable-test-container.
I can do that. What should we do with GDB tests?
* Adhemerval Zanella Netto:
> On 05/02/24 12:48, Andreas Schwab wrote:
>> On Feb 05 2024, H.J. Lu wrote:
>>
>>> SDE is transparent to programs. How does support/test-container.c
>>> know that it is running under SDE?
>>
>> With qemu linux-user I get an error like this:
>>
>> error: test-container.c:1116: unable to unshare user/fs: Invalid argument
>>
>> and the test is marked unsupported.
>>
>
> And the forever hanging leads to believe this is an issue with SDE emulator
> and I don't think we should add a configure switch to paper this over.
That's also a good point. Hopefully this can be fixed in SDE.
Thanks,
Florian
On Feb 05 2024, H.J. Lu wrote:
> SDE is more transparent. You can run almost all programs unmodified.
Like qemu linux-user.
> test-container.c doesn't fail that way under SDE.
Then how does it fail? Perhaps test-container is missing an error
check, or the simulator is too lenient to let some unsupported
operations through.
On Mon, Feb 5, 2024 at 7:57 AM Andreas Schwab <schwab@suse.de> wrote:
>
> On Feb 05 2024, H.J. Lu wrote:
>
> > SDE is more transparent. You can run almost all programs unmodified.
>
> Like qemu linux-user.
I am not familiar with qemu linux-user. SDE can run most native programs
which are linked with host libraries.
> > test-container.c doesn't fail that way under SDE.
>
> Then how does it fail? Perhaps test-container is missing an error
> check, or the simulator is too lenient to let some unsupported
> operations through.
>
This seems to be an SDE issue. I will keep workarounds on my
personal branch.
Thanks.
@@ -610,6 +610,7 @@ else
LINKS_DSO_PROGRAM = links-dso-program
endif
+ifeq (yes,$(enable-test-container))
$(tests-container) $(addsuffix /tests,$(subdirs)) : \
$(objpfx)testroot.pristine/install.stamp
$(objpfx)testroot.pristine/install.stamp :
@@ -655,6 +656,7 @@ endif
INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)'
rm -f $(symbolic-link-list)
touch $(objpfx)testroot.pristine/install.stamp
+endif
tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special))
tests: $(tests-special)
@@ -142,6 +142,11 @@ endif
# Generate constant files for Python pretty printers if required.
others: $(py-const)
+ifeq (no,$(enable-test-container))
+# Don't run any container tests with --disable-test-container.
+tests-container :=
+endif
+
ifeq ($(run-built-tests),no)
tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported), \
$(tests) $(tests-internal) \
@@ -7852,6 +7852,13 @@ fi
config_vars="$config_vars
enable-static-pie = $libc_cv_static_pie"
+# Enable test-container by default.
+if test "x$enable_test_container" = x; then
+ enable_test_container=yes
+fi
+config_vars="$config_vars
+enable-test-container = $enable_test_container"
+
# Set the `multidir' variable by grabbing the variable from the compiler.
# We do it once and save the result in a generated makefile.
libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
@@ -1740,6 +1740,12 @@ if test "$libc_cv_static_pie" = "yes"; then
fi
LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
+# Enable test-container by default.
+if test "x$enable_test_container" = x; then
+ enable_test_container=yes
+fi
+LIBC_CONFIG_VAR([enable-test-container], [$enable_test_container])
+
# Set the `multidir' variable by grabbing the variable from the compiler.
# We do it once and save the result in a generated makefile.
libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
@@ -434,9 +434,11 @@ extra-test-objs += nss_test1.os nss_test2.os nss_test_errno.os \
ifeq ($(run-built-tests),yes)
ifneq (no,$(PERL))
+ifeq (yes,$(enable-test-container))
tests-special += $(objpfx)mtrace-tst-nss-gai-hv2-canonname.out
endif
endif
+endif
generated += mtrace-tst-nss-gai-hv2-canonname.out \
tst-nss-gai-hv2-canonname.mtrace
@@ -462,7 +462,6 @@ endif
tests-special += $(objpfx)annexc.out
ifeq ($(run-built-tests),yes)
tests-special += \
- $(objpfx)bug-ga2-mem.out \
$(objpfx)bug-glob2-mem.out \
$(objpfx)bug-regex14-mem.out \
$(objpfx)bug-regex2-mem.out \
@@ -475,9 +474,14 @@ tests-special += \
$(objpfx)tst-glob-tilde-mem.out \
$(objpfx)tst-pcre-mem.out \
$(objpfx)tst-rxspencer-no-utf8-mem.out \
+ # tests-special
+ifeq (yes,$(enable-test-container))
+tests-special += \
+ $(objpfx)bug-ga2-mem.out \
$(objpfx)tst-vfork3-mem.out \
# tests-special
endif
+endif
include ../Rules
@@ -221,8 +221,15 @@ $(inst_libdir)/libnss_dns.so:
ifeq ($(run-built-tests),yes)
ifneq (no,$(PERL))
-tests-special += $(objpfx)mtrace-tst-leaks.out $(objpfx)mtrace-tst-leaks2.out \
- $(objpfx)mtrace-tst-resolv-res_ninit.out
+tests-special += \
+ $(objpfx)mtrace-tst-leaks.out \
+ $(objpfx)mtrace-tst-resolv-res_ninit.out \
+# tests-special
+ifeq (yes,$(enable-test-container))
+tests-special += \
+ $(objpfx)mtrace-tst-leaks2.out \
+# tests-special
+endif
endif
endif