posix: tst-glob_lstat_compat no longer needs to be an internal test

compat_symbol_reference is now available for regular tests as well.
Also avoid building and running the tests in case the pre-2.27
symbol version of glob is not available.  This avoids a spurious
UNSUPPORTED result.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Florian Weimer 2021-03-09 21:07:24 +01:00
parent 779c404de7
commit 8209c5f1f4
2 changed files with 11 additions and 16 deletions

View File

@ -104,9 +104,15 @@ tests := test-errno tstgetopt testfnm runtests runptests \
tst-glob-tilde test-ssize-max tst-spawn4 bug-regex37 \
bug-regex38 tst-regcomp-truncated tst-spawn-chdir \
tst-wordexp-nocmd
# Test for the glob symbol version that was replaced in glibc 2.27.
ifeq ($(have-GLIBC_2.26)$(build-shared),yesyes)
tests += tst-glob_lstat_compat
endif
tests-internal := bug-regex5 bug-regex20 bug-regex33 \
tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \
tst-glob_lstat_compat tst-spawn4-compat
tst-spawn4-compat
tests-container := bug-ga2
xtests := tst-getaddrinfo4 tst-getaddrinfo5 tst-sched_rr_get_interval
ifeq (yes,$(build-shared))

View File

@ -25,24 +25,22 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdbool.h>
#include <stdio.h>
#include <shlib-compat.h>
#include <support/check.h>
#include <support/temp_file.h>
#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27)
__typeof (glob) glob;
/* On alpha glob exists in version GLIBC_2_0, GLIBC_2_1, and GLIBC_2_27.
This test needs to access the version prior to GLIBC_2_27, which is
GLIBC_2_1 on alpha, GLIBC_2_0 elsewhere. */
# ifdef __alpha__
#ifdef __alpha__
compat_symbol_reference (libc, glob, glob, GLIBC_2_1);
# else
#else
compat_symbol_reference (libc, glob, glob, GLIBC_2_0);
# endif
#endif
/* Compat glob should not call gl_lstat since for some old binaries it
might be unitialized (for instance GNUmake). Check if it is indeed
@ -256,13 +254,4 @@ do_test (void)
return 0;
}
#else /* TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) */
static int
do_test (void)
{
return 77;
}
#endif
#include <support/test-driver.c>