mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
glibc-y2038-tests: remove glibc-y2038-tests_2.41.bb recipe
This recipe takes longer time >20min when bitbake for package write stage. When cross-verified for longer time duration, found that do_check() stage taking 20min while other stages completes before 6min. This recipe gives only below two test binaries in the packages to test (ptest: glibc-y2038-tests): io/ftwtest io/ftwtest-time64 The above test binaries are already included for testing in recipe glibc-testsuite_2.41.bb. It is by now well established that glibc itself works as it should, that all affected 32 bit targets are configured to use 64 bit time_t, and that any lingering y2038 issues are in components other than the c library, and usually come from C programming mistakes (e.g. storing timestamps in long). Maybe we can simply remove the recipe? Review comments for fixing above longer time duration ended up in removing this recipe as a proposal is below https://lists.openembedded.org/g/openembedded-core/topic/112188476#msg214636 Removed lines having reference to glibc-y2038-tests in the files. (From OE-Core rev: dea859e904d9eacede147a627f4c176433ac9efc) Signed-off-by: rajmohan r <semc.2042@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit fbe3679ba3c12c52a502511f5dde91fb4de7a6b6) Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
parent
f780b27120
commit
958da8c6ad
|
@ -215,7 +215,6 @@ RECIPE_MAINTAINER:pn-glibc = "Khem Raj <raj.khem@gmail.com>"
|
|||
RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-glibc-mtrace = "Khem Raj <raj.khem@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-glibc-scripts = "Khem Raj <raj.khem@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-glibc-y2038-tests = "Lukasz Majewski <lukma@denx.de>"
|
||||
RECIPE_MAINTAINER:pn-glibc-testsuite = "Khem Raj <raj.khem@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-gmp = "Khem Raj <raj.khem@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-glslang = "Jose Quaresma <quaresma.jose@gmail.com>"
|
||||
|
|
|
@ -86,8 +86,6 @@ PTESTS_FAST = "\
|
|||
xz \
|
||||
zlib \
|
||||
"
|
||||
PTESTS_FAST:append:libc-glibc = " glibc-y2038-tests"
|
||||
PTESTS_PROBLEMS:remove:libc-glibc = "glibc-y2038-tests"
|
||||
PTESTS_FAST:remove:mips64 = "qemu"
|
||||
PTESTS_PROBLEMS:append:mips64 = " qemu"
|
||||
PTESTS_FAST:remove:riscv32 = "qemu"
|
||||
|
|
|
@ -20,7 +20,6 @@ TARGET_CC_ARCH:append:powerpc = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '$
|
|||
TARGET_CC_ARCH:append:x86 = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${GLIBC_64BIT_TIME_FLAGS}', '', d)}"
|
||||
|
||||
GLIBC_64BIT_TIME_FLAGS:pn-glibc = ""
|
||||
GLIBC_64BIT_TIME_FLAGS:pn-glibc-y2038-tests = ""
|
||||
GLIBC_64BIT_TIME_FLAGS:pn-glibc-testsuite = ""
|
||||
# pipewire-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
|
||||
# both 32 and 64 bit file APIs. But it does not handle the time side?
|
||||
|
@ -33,7 +32,6 @@ GLIBC_64BIT_TIME_FLAGS:pn-gcc-sanitizers = ""
|
|||
# Caused by the flags exceptions above
|
||||
INSANE_SKIP:append:pn-gcc-sanitizers = " 32bit-time"
|
||||
INSANE_SKIP:append:pn-glibc = " 32bit-time"
|
||||
INSANE_SKIP:append:pn-glibc-y2038-tests = " 32bit-time"
|
||||
|
||||
# Strace has tests that call 32 bit API directly, which is fair enough, e.g.
|
||||
# /usr/lib/strace/ptest/tests/ioctl_termios uses 32-bit api 'ioctl'
|
||||
|
|
|
@ -1,107 +0,0 @@
|
|||
require glibc_${PV}.bb
|
||||
require glibc-tests.inc
|
||||
|
||||
inherit ptest features_check
|
||||
REQUIRED_DISTRO_FEATURES = "ptest"
|
||||
|
||||
SRC_URI += "\
|
||||
file://run-ptest \
|
||||
"
|
||||
|
||||
SUMMARY = "glibc tests using time32/time64 interfaces to be run with ptest for the purpose of checking y2038 compatiblity"
|
||||
|
||||
# Erase some variables already set by glibc_${PV}
|
||||
python __anonymous() {
|
||||
# Remove packages provided by glibc build, we only need a subset of them
|
||||
d.setVar("PACKAGES", "${PN} ${PN}-dbg ${PN}-ptest")
|
||||
|
||||
d.setVar("PROVIDES", "${PN} ${PN}-ptest")
|
||||
|
||||
bbclassextend = d.getVar("BBCLASSEXTEND").replace("nativesdk", "").strip()
|
||||
d.setVar("BBCLASSEXTEND", bbclassextend)
|
||||
d.setVar("RRECOMMENDS", "")
|
||||
d.setVar("SYSTEMD_SERVICE:nscd", "")
|
||||
d.setVar("SYSTEMD_PACKAGES", "")
|
||||
}
|
||||
|
||||
# Remove any leftovers from original glibc recipe
|
||||
RPROVIDES:${PN} = "${PN}"
|
||||
RRECOMMENDS:${PN} = ""
|
||||
RDEPENDS:${PN} = "glibc libgcc sed bash"
|
||||
RDEPENDS:${PN}-ptest = "${PN}"
|
||||
DEPENDS += "sed"
|
||||
|
||||
export oe_srcdir = "${exec_prefix}/src/debug/glibc/${PV}/"
|
||||
|
||||
# Just build tests for target - do not run them
|
||||
do_check:append () {
|
||||
oe_runmake -i check run-built-tests=no
|
||||
}
|
||||
addtask do_check after do_compile before do_install_ptest_base
|
||||
|
||||
glibc_strip_build_directory () {
|
||||
# Delete all non executable files from build directory
|
||||
find ${B} ! -executable -type f -delete
|
||||
|
||||
# Remove build dynamic libraries and links to them as
|
||||
# those are already installed in the target device
|
||||
find ${B} -type f -name "*.so" -delete
|
||||
find ${B} -type l -name "*.so*" -delete
|
||||
|
||||
# Remove headers (installed with glibc)
|
||||
find ${B} -type f -name "*.h" -delete
|
||||
|
||||
find ${B} -type f -name "isomac" -delete
|
||||
find ${B} -type f -name "annexc" -delete
|
||||
}
|
||||
|
||||
do_install_ptest_base () {
|
||||
glibc_strip_build_directory
|
||||
|
||||
ls -r ${B}/*/*-time64 > ${B}/tst_time64
|
||||
|
||||
# Remove '-time64' suffix - those tests are also time related
|
||||
sed -e "s/-time64$//" ${B}/tst_time64 > ${B}/tst_time_tmp
|
||||
tst_time=$(cat ${B}/tst_time_tmp ${B}/tst_time64)
|
||||
|
||||
rm ${B}/tst_time_tmp ${B}/tst_time64
|
||||
echo "${tst_time}"
|
||||
|
||||
# Install build test programs to the image
|
||||
install -d ${D}${PTEST_PATH}/tests/glibc-ptest/
|
||||
|
||||
for f in "${tst_time}"
|
||||
do
|
||||
cp -r ${f} ${D}${PTEST_PATH}/tests/glibc-ptest/
|
||||
done
|
||||
|
||||
install -d ${D}${PTEST_PATH}
|
||||
cp ${UNPACKDIR}/run-ptest ${D}${PTEST_PATH}/
|
||||
|
||||
}
|
||||
|
||||
# The datadir directory is required to allow core (and reused)
|
||||
# glibc cleanup function to finish correctly, as this directory
|
||||
# is not created for ptests
|
||||
stash_locale_package_cleanup:prepend () {
|
||||
mkdir -p ${PKGD}${datadir}
|
||||
}
|
||||
|
||||
stash_locale_sysroot_cleanup:prepend () {
|
||||
mkdir -p ${SYSROOT_DESTDIR}${datadir}
|
||||
}
|
||||
|
||||
# Prevent the do_package() task to set 'libc6' prefix
|
||||
# for glibc tests related packages
|
||||
python populate_packages:prepend () {
|
||||
if d.getVar('DEBIAN_NAMES'):
|
||||
d.setVar('DEBIAN_NAMES', '')
|
||||
}
|
||||
|
||||
FILES:${PN} = "${PTEST_PATH}/* /usr/src/debug/${PN}/*"
|
||||
|
||||
EXCLUDE_FROM_SHLIBS = "1"
|
||||
|
||||
deltask do_stash_locale
|
||||
do_install[noexec] = "1"
|
||||
do_populate_sysroot[noexec] = "1"
|
|
@ -1,37 +0,0 @@
|
|||
#!/bin/bash
|
||||
# ptest script for glibc - to run time related tests to
|
||||
# facilitate Y2038 validation
|
||||
# Run with 'ptest-runner glibc-tests'
|
||||
|
||||
output() {
|
||||
retcode=$?
|
||||
if [ $retcode -eq 0 ]
|
||||
then echo "PASS: $i"
|
||||
elif [ $retcode -eq 77 ]
|
||||
then echo "SKIP: $i"
|
||||
else echo "FAIL: $i"
|
||||
fi
|
||||
}
|
||||
|
||||
# Allow altering time on the target
|
||||
export GLIBC_TEST_ALLOW_TIME_SETTING="1"
|
||||
|
||||
tst_time64=$(ls -r ${PWD}/tests/glibc-ptest/*-time64)
|
||||
|
||||
# Remove '-time64' suffix - those tests are also time
|
||||
# related
|
||||
tst_time_tmp=$(sed -e "s/-time64$//" <<< ${tst_time64})
|
||||
|
||||
# Do not run tests supporting only 32 bit time
|
||||
#for i in ${tst_time_tmp}
|
||||
#do
|
||||
# $i >/dev/null 2>&1
|
||||
# output
|
||||
#done
|
||||
|
||||
# Run tests supporting only 64 bit time
|
||||
for i in ${tst_time64}
|
||||
do
|
||||
$i >/dev/null 2>&1
|
||||
output
|
||||
done
|
Loading…
Reference in New Issue
Block a user