!207 增加glibc测试套白名单,对于白名单以外的失败用例失败时停止构建

From: @yang_yanchao
Reviewed-by: 
Signed-off-by:
This commit is contained in:
openeuler-ci-bot 2021-10-14 07:25:56 +00:00 committed by Gitee
commit 4c56d24fca
3 changed files with 258 additions and 4 deletions

View File

@ -63,7 +63,7 @@
##############################################################################
Name: glibc
Version: 2.34
Release: 10
Release: 11
Summary: The GNU libc libraries
License: %{all_license}
URL: http://www.gnu.org/software/glibc/
@ -77,6 +77,10 @@ Source5: LanguageList
Source6: LicenseList
Source7: replace_same_file_to_hard_link.py
%if %{with testsuite}
Source8: testsuite_whitelist.%{_target_cpu}
%endif
Patch0: glibc-1070416.patch
Patch1: glibc-c-utf8-locale.patch
Patch2: backport-CVE-2021-38604-0001-librt-add-test-bug-28213.patch
@ -885,6 +889,18 @@ done
##############################################################################
%check
%if %{with testsuite}
omit_testsuite() {
whitelist=$1
sed -i '/^#/d' $whitelist
sed -i '/^[\s]*$/d' $whitelist
while read testsuite; do
testsuite_escape=$(echo "$testsuite" | \
sed 's/\([.+?^$\/\\|()\[]\|\]\)/\\\0/g')
sed -i "/${testsuite_escape}/d" rpmbuild.tests.sum.not-passing
done < "$whitelist"
}
# Increase timeouts
export TIMEOUTFACTOR=16
parent=$$
@ -893,14 +909,24 @@ echo ====================TESTING=========================
# Default libraries.
pushd build-%{target}
make %{?_smp_mflags} -O check |& tee rpmbuild.check.log >&2
test -n tests.sum
test -s tests.sum
# This hides a test suite build failure, which should be fatal. We
# check "Summary of test results:" below to verify that all tests
# were built and run.
if ! grep -q '^Summary of test results:$' rpmbuild.check.log ; then
echo "FAIL: test suite build of target: $(basename "$(pwd)")" >& 2
exit 1
fi
set +x
grep -v ^PASS: tests.sum > rpmbuild.tests.sum.not-passing || true
if test -n rpmbuild.tests.sum.not-passing ; then
grep -v ^PASS: tests.sum | grep -v ^UNSUPPORTED > rpmbuild.tests.sum.not-passing || true
# Delete the testsuite from the whitelist
cp %{SOURCE8} testsuite_whitelist
omit_testsuite testsuite_whitelist
rm -rf testsuite_whitelist
if test -s rpmbuild.tests.sum.not-passing ; then
echo ===================FAILED TESTS===================== >&2
echo "Target: $(basename "$(pwd)")" >& 2
cat rpmbuild.tests.sum.not-passing >&2
@ -914,6 +940,7 @@ if test -n rpmbuild.tests.sum.not-passing ; then
fi
done
done <rpmbuild.tests.sum.not-passing
exit 1
fi
# Unconditonally dump differences in the system call list.
@ -1198,6 +1225,10 @@ fi
%doc hesiod/README.hesiod
%changelog
* Tue Oct 12 2021 Yang Yanchao<yangyanchao6@huawei.com> - 2.34-11
- Add the testsuite whitelist.
If a test case out of the trustlist fails, the compilation is interrupted.
* Mon Oct 11 2021 Qingqing Li<liqingqing3@huawei.com> - 2.34-10
- update test memmove.c to cover 16KB.

111
testsuite_whitelist.aarch64 Normal file
View File

@ -0,0 +1,111 @@
# These test cases failed due to gcc_secure
conform/ISO/setjmp.h/conform
conform/ISO/stdlib.h/conform
conform/ISO/stdlib.h/linknamespace
conform/ISO/string.h/conform
conform/ISO11/setjmp.h/conform
conform/ISO11/stdio.h/conform
conform/ISO11/stdlib.h/conform
conform/ISO11/stdlib.h/linknamespace
conform/ISO11/string.h/conform
conform/ISO11/wchar.h/conform
conform/ISO99/setjmp.h/conform
conform/ISO99/stdio.h/conform
conform/ISO99/stdlib.h/conform
conform/ISO99/stdlib.h/linknamespace
conform/ISO99/string.h/conform
conform/ISO99/wchar.h/conform
conform/POSIX/stdlib.h/conform
conform/POSIX/stdlib.h/linknamespace
conform/POSIX/string.h/conform
conform/POSIX2008/fcntl.h/conform
conform/POSIX2008/mqueue.h/conform
conform/POSIX2008/stdio.h/conform
conform/POSIX2008/stdlib.h/conform
conform/POSIX2008/stdlib.h/linknamespace
conform/POSIX2008/wchar.h/conform
conform/UNIX98/stdlib.h/conform
conform/UNIX98/string.h/conform
conform/UNIX98/unistd.h/conform
conform/UNIX98/unistd.h/linknamespace
conform/UNIX98/wchar.h/conform
conform/XOPEN2K/fcntl.h/conform
conform/XOPEN2K/mqueue.h/conform
conform/XOPEN2K/stdio.h/conform
conform/XOPEN2K/stdlib.h/conform
conform/XOPEN2K/string.h/conform
conform/XOPEN2K/syslog.h/conform
conform/XOPEN2K/unistd.h/conform
conform/XOPEN2K/unistd.h/linknamespace
conform/XOPEN2K/wchar.h/conform
conform/XOPEN2K8/fcntl.h/conform
conform/XOPEN2K8/mqueue.h/conform
conform/XOPEN2K8/stdio.h/conform
conform/XOPEN2K8/stdlib.h/conform
conform/XOPEN2K8/syslog.h/conform
conform/XOPEN2K8/unistd.h/conform
conform/XOPEN2K8/unistd.h/linknamespace
conform/XOPEN2K8/wchar.h/conform
conform/XPG4/stdlib.h/conform
conform/XPG4/stdlib.h/linknamespace
conform/XPG4/string.h/conform
conform/XPG4/unistd.h/conform
conform/XPG42/stdlib.h/conform
conform/XPG42/string.h/conform
conform/XPG42/unistd.h/conform
elf/circleload1
elf/constload1
elf/dblload
elf/dblunload
elf/lateglobal
elf/reldep6
elf/resolvfail
elf/tst-global1
elf/tst-tls20
nptl/tst-execstack
# GCC no longer implements <varargs.h>
conform/UNIX98/varargs.h/conform
conform/UNIX98/varargs.h/linknamespace
conform/XPG4/varargs.h/conform
conform/XPG4/varargs.h/linknamespace
conform/XPG42/varargs.h/conform
conform/XPG42/varargs.h/linknamespace
# These cases depend on gdbm-devel
conform/UNIX98/ndbm.h/conform
conform/UNIX98/ndbm.h/linknamespace
conform/XOPEN2K/ndbm.h/conform
conform/XOPEN2K/ndbm.h/linknamespace
conform/XOPEN2K8/ndbm.h/conform
conform/XOPEN2K8/ndbm.h/linknamespace
conform/XPG42/ndbm.h/conform
conform/XPG42/ndbm.h/linknamespace
# Test whether the date/time is correct under different
# language libraries, use case problems, and see that
# the compiled language library itself has no errors
# https://sourceware.org/bugzilla/show_bug.cgi?id=23164
localedata/tst-langinfo-newlocale-static
# The use case itself passed but because
# test-xfail-tst-protected1a/test-xfail-tst-protected1b was added
elf/tst-protected1a
elf/tst-protected1b
# the test case is due to check whether a macro is defined
# in the header files. As GLIBC evolves, the position of the
# macro changes, causing the use case to fail
posix/annexc
# Check whether sys/mman.h is consistent with linux/mman.h.
# kernel has a self-developed macro that does not require glibc adaptation
# https://gitee.com/src-openeuler/kernel/issues/I4BZ9T?from=project-issue
misc/tst-mman-consts
# Add the tst-nss-files-hosts-long.root/etc/hosts of glibc to
# the /etc/hosts directory of the system, and then run sucess
nss/tst-nss-files-hosts-long
# The test case fails due to OBS machine restrictions which can be passed locally.
elf/tst-debug1

112
testsuite_whitelist.x86_64 Normal file
View File

@ -0,0 +1,112 @@
# These test cases failed due to gcc_secure
conform/ISO/setjmp.h/conform
conform/ISO/stdlib.h/conform
conform/ISO/stdlib.h/linknamespace
conform/ISO/string.h/conform
conform/ISO11/setjmp.h/conform
conform/ISO11/stdio.h/conform
conform/ISO11/stdlib.h/conform
conform/ISO11/stdlib.h/linknamespace
conform/ISO11/string.h/conform
conform/ISO11/wchar.h/conform
conform/ISO99/setjmp.h/conform
conform/ISO99/stdio.h/conform
conform/ISO99/stdlib.h/conform
conform/ISO99/stdlib.h/linknamespace
conform/ISO99/string.h/conform
conform/ISO99/wchar.h/conform
conform/POSIX/stdlib.h/conform
conform/POSIX/stdlib.h/linknamespace
conform/POSIX/string.h/conform
conform/POSIX2008/fcntl.h/conform
conform/POSIX2008/mqueue.h/conform
conform/POSIX2008/stdio.h/conform
conform/POSIX2008/stdlib.h/conform
conform/POSIX2008/stdlib.h/linknamespace
conform/POSIX2008/wchar.h/conform
conform/UNIX98/stdlib.h/conform
conform/UNIX98/string.h/conform
conform/UNIX98/unistd.h/conform
conform/UNIX98/unistd.h/linknamespace
conform/UNIX98/wchar.h/conform
conform/XOPEN2K/fcntl.h/conform
conform/XOPEN2K/mqueue.h/conform
conform/XOPEN2K/stdio.h/conform
conform/XOPEN2K/stdlib.h/conform
conform/XOPEN2K/string.h/conform
conform/XOPEN2K/syslog.h/conform
conform/XOPEN2K/unistd.h/conform
conform/XOPEN2K/unistd.h/linknamespace
conform/XOPEN2K/wchar.h/conform
conform/XOPEN2K8/fcntl.h/conform
conform/XOPEN2K8/mqueue.h/conform
conform/XOPEN2K8/stdio.h/conform
conform/XOPEN2K8/stdlib.h/conform
conform/XOPEN2K8/syslog.h/conform
conform/XOPEN2K8/unistd.h/conform
conform/XOPEN2K8/unistd.h/linknamespace
conform/XOPEN2K8/wchar.h/conform
conform/XPG4/stdlib.h/conform
conform/XPG4/stdlib.h/linknamespace
conform/XPG4/string.h/conform
conform/XPG4/unistd.h/conform
conform/XPG42/stdlib.h/conform
conform/XPG42/string.h/conform
conform/XPG42/unistd.h/conform
elf/circleload1
elf/constload1
elf/dblload
elf/dblunload
elf/ifuncmain6pie
elf/lateglobal
elf/reldep6
elf/resolvfail
elf/tst-global1
elf/tst-tls20
nptl/tst-execstack
# GCC no longer implements <varargs.h>
conform/UNIX98/varargs.h/conform
conform/UNIX98/varargs.h/linknamespace
conform/XPG4/varargs.h/conform
conform/XPG4/varargs.h/linknamespace
conform/XPG42/varargs.h/conform
conform/XPG42/varargs.h/linknamespace
# These cases depend on gdbm-devel
conform/UNIX98/ndbm.h/conform
conform/UNIX98/ndbm.h/linknamespace
conform/XOPEN2K/ndbm.h/conform
conform/XOPEN2K/ndbm.h/linknamespace
conform/XOPEN2K8/ndbm.h/conform
conform/XOPEN2K8/ndbm.h/linknamespace
conform/XPG42/ndbm.h/conform
conform/XPG42/ndbm.h/linknamespace
# Test whether the date/time is correct under different
# language libraries, use case problems, and see that
# the compiled language library itself has no errors
# https://sourceware.org/bugzilla/show_bug.cgi?id=23164
localedata/tst-langinfo-newlocale-static
# The use case itself passed but because
# test-xfail-tst-protected1a/test-xfail-tst-protected1b was added
elf/tst-protected1a
elf/tst-protected1b
# the test case is due to check whether a macro is defined
# in the header files. As GLIBC evolves, the position of the
# macro changes, causing the use case to fail
posix/annexc
# Check whether sys/mman.h is consistent with linux/mman.h.
# kernel has a self-developed macro that does not require glibc adaptation
# https://gitee.com/src-openeuler/kernel/issues/I4BZ9T?from=project-issue
misc/tst-mman-consts
# It need to build GliBC on a platform that supports CET
elf/check-cet
# Add the tst-nss-files-hosts-long.root/etc/hosts of glibc to
# the /etc/hosts directory of the system, and then run sucess
nss/tst-nss-files-hosts-long