Re: [OE-core] [PATCH v3] glibc: ptest: Add running glibc time related test suite (Y2038) with ptest

2021-11-09 Thread ?ukasz Majewski
Hi Lee Chee,

> Hi, 
> 
> I think need to fix this too 
> 

Thanks for pointing out those issues.

> AssertionError:
> The following recipes do not have a maintainer assigned to them.
> Please add an entry to meta/conf/distro/include/maintainers.inc file.
> glibc-tests
> (/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/recipes-core/glibc/glibc-tests_2.34.bb)
> 
> full log:
> https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/2807/steps/15/logs/stdio
> 
> 
> also for issue with 
> "Missing or unbuildable dependency chain was:
> ['nativesdk-ptest-runner']" you may refer to these build for build
> config
> https://autobuilder.yoctoproject.org/typhoon/#/builders/23/builds/4598/steps/11/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/97/builds/3629/steps/12/logs/stdio
> 
> 

I will fix them and prepare v4.

> 
> >-Original Message-
> >From: openembedded-core@lists.openembedded.org  >c...@lists.openembedded.org> On Behalf Of ?ukasz Majewski  
> >Sent: Tuesday, 9 November, 2021 12:31 AM
> >To: Alexandre Belloni 
> >Cc: Richard Purdie ; Nathan Rossi
> >; Khem Raj ; Adhemerval
> >Zanella ; Patches and discussions
> >about the oe- core layer 
> >Subject: Re: [OE-core] [PATCH v3] glibc: ptest: Add running glibc
> >time related test suite (Y2038) with ptest
> >
> >Hi Alexandre.
> >
> >Sorry for the late reply - I've must overlooked this reply...
> >  
> >> Hello,
> >>
> >> There is a remaining issue:
> >>
> >> WARNING: Nothing RPROVIDES 'nativesdk-ptest-runner' (but
> >> virtual:nativesdk:/home/pokybuild/yocto-worker/build-appliance/build/m
> >> eta/recipes-core/glibc/glibc-tests_2.34.bb
> >> RDEPENDS on or otherwise requires it) NOTE: Runtime target
> >> 'nativesdk-ptest-runner' is unbuildable, removing... Missing or
> >> unbuildable dependency chain was: ['nativesdk-ptest-runner']  
> >
> >Could you share your setup?
> >
> >I've been trying to reproduce this problem with:
> >MACHINE=qemuarm64 bitbake core-image-ptest-all -c populate_sdk
> >
> >but no warnings were observed.
> >
> >Thanks in advance.
> >  
> >>
> >> On 28/10/2021 14:00:20+0200, ?ukasz Majewski wrote:  
> >> > This patch introduces new recipe - namely 'glibc-tests', which
> >> > builds and installs time related (to check if Y2038 support
> >> > works) glibc test suite to OE/Yocto built image.
> >> >
> >> > It reuses code from already available 'glibc-testsuite' recipe,
> >> > which is run with 'bitbake glibc-testsuite -c check' and uses
> >> > qemu to execute remotely (via SSH) tests on some emulated
> >> > machine.
> >> >
> >> > This recipe installs time related glibc tests on some rootfs
> >> > image. Afterwards, those tests can be executed on the real
> >> > hardware, to facilitate validation of it with Y2038 problem
> >> > compliance.
> >> >
> >> > To test time related subset - one needs to call:
> >> > ptest-runner glibc-tests
> >> > then change the date after Y2038 threshold for 32 bit systems:
> >> > date -s "20 JAN 2038 18:00:00"
> >> > and then run ptest-runner again.
> >> >
> >> > To facilitate debugging, source files are provided by default
> >> > with the unstripped debugging symbols. Such approach would
> >> > reduce the already complex recipe (as it inherits base glibc
> >> > one), so there is no need to also install *-dbg and *-src
> >> > packages.
> >> >
> >> > Signed-off-by: Lukasz Majewski 
> >> >
> >> > ---
> >> > Changes for v3:
> >> > - Provide missing ${PN}-ptest for PACKAGES, PROVIDES and
> >> >   RPROVIDES variables
> >> >
> >> > Changes for v2:
> >> > - Just focus on time related set of tests as those can be run as
> >> >   standalone
> >> > - Reuse of already built tests (from glibc-tests.inc) and depoloy
> >> >   them on the HW target.
> >> > - Provide single 'run-ptest' script.
> >> > - Update the recipe to run with newest poky's -master
> >> > ---
> >> >  .../distro/include/ptest-packagelists.inc |   1 +
> >> >  meta/recipes-core/glibc/glibc-tests_2.34.bb   | 112
> >> > ++ meta/recipes-core/glibc/glibc/run-ptest
> >> > | 37 ++ 3 files changed, 150 insertions(+)  create

Re: [OE-core] [PATCH v3] glibc: ptest: Add running glibc time related test suite (Y2038) with ptest

2021-11-09 Thread Lee Chee Yang
Hi, 

I think need to fix this too 

AssertionError:
The following recipes do not have a maintainer assigned to them. Please add an 
entry to meta/conf/distro/include/maintainers.inc file.
glibc-tests 
(/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/recipes-core/glibc/glibc-tests_2.34.bb)

full log:
https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/2807/steps/15/logs/stdio


also for issue with 
"Missing or unbuildable dependency chain was: ['nativesdk-ptest-runner']"
you may refer to these build for build config
https://autobuilder.yoctoproject.org/typhoon/#/builders/23/builds/4598/steps/11/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/97/builds/3629/steps/12/logs/stdio



>-Original Message-
>From: openembedded-core@lists.openembedded.org c...@lists.openembedded.org> On Behalf Of ?ukasz Majewski
>Sent: Tuesday, 9 November, 2021 12:31 AM
>To: Alexandre Belloni 
>Cc: Richard Purdie ; Nathan Rossi
>; Khem Raj ; Adhemerval
>Zanella ; Patches and discussions about the oe-
>core layer 
>Subject: Re: [OE-core] [PATCH v3] glibc: ptest: Add running glibc time related 
>test
>suite (Y2038) with ptest
>
>Hi Alexandre.
>
>Sorry for the late reply - I've must overlooked this reply...
>
>> Hello,
>>
>> There is a remaining issue:
>>
>> WARNING: Nothing RPROVIDES 'nativesdk-ptest-runner' (but
>> virtual:nativesdk:/home/pokybuild/yocto-worker/build-appliance/build/m
>> eta/recipes-core/glibc/glibc-tests_2.34.bb
>> RDEPENDS on or otherwise requires it) NOTE: Runtime target
>> 'nativesdk-ptest-runner' is unbuildable, removing... Missing or
>> unbuildable dependency chain was: ['nativesdk-ptest-runner']
>
>Could you share your setup?
>
>I've been trying to reproduce this problem with:
>MACHINE=qemuarm64 bitbake core-image-ptest-all -c populate_sdk
>
>but no warnings were observed.
>
>Thanks in advance.
>
>>
>> On 28/10/2021 14:00:20+0200, ?ukasz Majewski wrote:
>> > This patch introduces new recipe - namely 'glibc-tests', which
>> > builds and installs time related (to check if Y2038 support works)
>> > glibc test suite to OE/Yocto built image.
>> >
>> > It reuses code from already available 'glibc-testsuite' recipe,
>> > which is run with 'bitbake glibc-testsuite -c check' and uses qemu
>> > to execute remotely (via SSH) tests on some emulated machine.
>> >
>> > This recipe installs time related glibc tests on some rootfs image.
>> > Afterwards, those tests can be executed on the real hardware, to
>> > facilitate validation of it with Y2038 problem compliance.
>> >
>> > To test time related subset - one needs to call:
>> > ptest-runner glibc-tests
>> > then change the date after Y2038 threshold for 32 bit systems:
>> > date -s "20 JAN 2038 18:00:00"
>> > and then run ptest-runner again.
>> >
>> > To facilitate debugging, source files are provided by default with
>> > the unstripped debugging symbols. Such approach would reduce the
>> > already complex recipe (as it inherits base glibc one), so there is
>> > no need to also install *-dbg and *-src packages.
>> >
>> > Signed-off-by: Lukasz Majewski 
>> >
>> > ---
>> > Changes for v3:
>> > - Provide missing ${PN}-ptest for PACKAGES, PROVIDES and
>> >   RPROVIDES variables
>> >
>> > Changes for v2:
>> > - Just focus on time related set of tests as those can be run as
>> >   standalone
>> > - Reuse of already built tests (from glibc-tests.inc) and depoloy
>> >   them on the HW target.
>> > - Provide single 'run-ptest' script.
>> > - Update the recipe to run with newest poky's -master
>> > ---
>> >  .../distro/include/ptest-packagelists.inc |   1 +
>> >  meta/recipes-core/glibc/glibc-tests_2.34.bb   | 112
>> > ++ meta/recipes-core/glibc/glibc/run-ptest   |
>> > 37 ++ 3 files changed, 150 insertions(+)  create mode 100644
>> > meta/recipes-core/glibc/glibc-tests_2.34.bb
>> >  create mode 100755 meta/recipes-core/glibc/glibc/run-ptest
>> >
>> > diff --git a/meta/conf/distro/include/ptest-packagelists.inc
>> > b/meta/conf/distro/include/ptest-packagelists.inc index
>> > 2e324f8da4..fd52fa72a4 100644 ---
>> > a/meta/conf/distro/include/ptest-packagelists.inc +++
>> > b/meta/conf/distro/include/ptest-packagelists.inc @@ -61,6 +61,7 @@
>> > PTESTS_FAST = "\ slang-ptest \
>> >  wayland-ptest \
>> >  zlib-ptest \
>> > +glibc-tes

Re: [OE-core] [PATCH v3] glibc: ptest: Add running glibc time related test suite (Y2038) with ptest

2021-11-08 Thread ?ukasz Majewski
Hi Alexandre.

Sorry for the late reply - I've must overlooked this reply...

> Hello,
> 
> There is a remaining issue:
> 
> WARNING: Nothing RPROVIDES 'nativesdk-ptest-runner' (but
> virtual:nativesdk:/home/pokybuild/yocto-worker/build-appliance/build/meta/recipes-core/glibc/glibc-tests_2.34.bb
> RDEPENDS on or otherwise requires it) NOTE: Runtime target
> 'nativesdk-ptest-runner' is unbuildable, removing... Missing or
> unbuildable dependency chain was: ['nativesdk-ptest-runner']

Could you share your setup?

I've been trying to reproduce this problem with:
MACHINE=qemuarm64 bitbake core-image-ptest-all -c populate_sdk

but no warnings were observed.

Thanks in advance.

> 
> On 28/10/2021 14:00:20+0200, ?ukasz Majewski wrote:
> > This patch introduces new recipe - namely 'glibc-tests', which
> > builds and installs time related (to check if Y2038 support works)
> > glibc test suite to OE/Yocto built image.
> > 
> > It reuses code from already available 'glibc-testsuite' recipe,
> > which is run with 'bitbake glibc-testsuite -c check' and uses qemu
> > to execute remotely (via SSH) tests on some emulated machine.
> > 
> > This recipe installs time related glibc tests on some rootfs image.
> > Afterwards, those tests can be executed on the real hardware, to
> > facilitate validation of it with Y2038 problem compliance.
> > 
> > To test time related subset - one needs to call:
> > ptest-runner glibc-tests
> > then change the date after Y2038 threshold for 32 bit systems:
> > date -s "20 JAN 2038 18:00:00"
> > and then run ptest-runner again.
> > 
> > To facilitate debugging, source files are provided by default with
> > the unstripped debugging symbols. Such approach would reduce the
> > already complex recipe (as it inherits base glibc one), so there
> > is no need to also install *-dbg and *-src packages.
> > 
> > Signed-off-by: Lukasz Majewski 
> > 
> > ---
> > Changes for v3:
> > - Provide missing ${PN}-ptest for PACKAGES, PROVIDES and
> >   RPROVIDES variables
> > 
> > Changes for v2:
> > - Just focus on time related set of tests as those can be run as
> >   standalone
> > - Reuse of already built tests (from glibc-tests.inc) and depoloy
> >   them on the HW target.
> > - Provide single 'run-ptest' script.
> > - Update the recipe to run with newest poky's -master
> > ---
> >  .../distro/include/ptest-packagelists.inc |   1 +
> >  meta/recipes-core/glibc/glibc-tests_2.34.bb   | 112
> > ++ meta/recipes-core/glibc/glibc/run-ptest   |
> > 37 ++ 3 files changed, 150 insertions(+)
> >  create mode 100644 meta/recipes-core/glibc/glibc-tests_2.34.bb
> >  create mode 100755 meta/recipes-core/glibc/glibc/run-ptest
> > 
> > diff --git a/meta/conf/distro/include/ptest-packagelists.inc
> > b/meta/conf/distro/include/ptest-packagelists.inc index
> > 2e324f8da4..fd52fa72a4 100644 ---
> > a/meta/conf/distro/include/ptest-packagelists.inc +++
> > b/meta/conf/distro/include/ptest-packagelists.inc @@ -61,6 +61,7 @@
> > PTESTS_FAST = "\ slang-ptest \
> >  wayland-ptest \
> >  zlib-ptest \
> > +glibc-tests-ptest \
> >  "
> >  PTESTS_FAST:remove:mips64 = "qemu-ptest"
> >  PTESTS_PROBLEMS:append:mips64 = "qemu-ptest"
> > diff --git a/meta/recipes-core/glibc/glibc-tests_2.34.bb
> > b/meta/recipes-core/glibc/glibc-tests_2.34.bb new file mode 100644
> > index 00..0a6920eef4
> > --- /dev/null
> > +++ b/meta/recipes-core/glibc/glibc-tests_2.34.bb
> > @@ -0,0 +1,112 @@
> > +require glibc_${PV}.bb
> > +require glibc-tests.inc
> > +
> > +inherit ptest
> > +
> > +SRC_URI:append = " \
> > +   file://run-ptest \
> > +"
> > +
> > +SUMMARY = "glibc tests to be run with ptest"
> > +
> > +# 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}-ptest")
> > +
> > +   d.setVar("PROVIDES", "${PN} ${PN}-ptest")
> > +   d.setVar("RPROVIDES", "${PN} ${PN}-ptest")
> > +
> > +   d.setVar("RRECOMMENDS", "")
> > +}
> > +
> > +# Remove any lefovers from original glibc recipe
> > +RPROVIDES:${PN} = "${PN}"
> > +RRECOMMENDS:${PN} = ""
> > +RDEPENDS:${PN} = " glibc sed"
> > +DEPENDS:append = " sed"
> > +
> > +# 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 

Re: [OE-core] [PATCH v3] glibc: ptest: Add running glibc time related test suite (Y2038) with ptest

2021-11-08 Thread Richard Purdie
On Mon, 2021-11-08 at 14:42 +0100, Lukasz Majewski wrote:
> Dear Community,
> 
> > This patch introduces new recipe - namely 'glibc-tests', which
> > builds and installs time related (to check if Y2038 support works)
> > glibc test suite to OE/Yocto built image.
> > 
> > It reuses code from already available 'glibc-testsuite' recipe,
> > which is run with 'bitbake glibc-testsuite -c check' and uses qemu
> > to execute remotely (via SSH) tests on some emulated machine.
> > 
> > This recipe installs time related glibc tests on some rootfs image.
> > Afterwards, those tests can be executed on the real hardware, to
> > facilitate validation of it with Y2038 problem compliance.
> > 
> > To test time related subset - one needs to call:
> > ptest-runner glibc-tests
> > then change the date after Y2038 threshold for 32 bit systems:
> > date -s "20 JAN 2038 18:00:00"
> > and then run ptest-runner again.
> > 
> > To facilitate debugging, source files are provided by default with
> > the unstripped debugging symbols. Such approach would reduce the
> > already complex recipe (as it inherits base glibc one), so there
> > is no need to also install *-dbg and *-src packages.
> > 
> 
> Gentle ping on this patch ...

There is a reply from Alexandre on the 29th which says:

"""
There is a remaining issue:

WARNING: Nothing RPROVIDES 'nativesdk-ptest-runner' (but 
virtual:nativesdk:/home/pokybuild/yocto-worker/build-appliance/build/meta/recipes-core/glibc/glibc-tests_2.34.bb
 RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'nativesdk-ptest-runner' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['nativesdk-ptest-runner']
"""

Cheers,

Richard


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#157981): 
https://lists.openembedded.org/g/openembedded-core/message/157981
Mute This Topic: https://lists.openembedded.org/mt/86650301/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH v3] glibc: ptest: Add running glibc time related test suite (Y2038) with ptest

2021-11-08 Thread ?ukasz Majewski
Dear Community,

> This patch introduces new recipe - namely 'glibc-tests', which
> builds and installs time related (to check if Y2038 support works)
> glibc test suite to OE/Yocto built image.
> 
> It reuses code from already available 'glibc-testsuite' recipe,
> which is run with 'bitbake glibc-testsuite -c check' and uses qemu
> to execute remotely (via SSH) tests on some emulated machine.
> 
> This recipe installs time related glibc tests on some rootfs image.
> Afterwards, those tests can be executed on the real hardware, to
> facilitate validation of it with Y2038 problem compliance.
> 
> To test time related subset - one needs to call:
> ptest-runner glibc-tests
> then change the date after Y2038 threshold for 32 bit systems:
> date -s "20 JAN 2038 18:00:00"
> and then run ptest-runner again.
> 
> To facilitate debugging, source files are provided by default with
> the unstripped debugging symbols. Such approach would reduce the
> already complex recipe (as it inherits base glibc one), so there
> is no need to also install *-dbg and *-src packages.
> 

Gentle ping on this patch ...

> Signed-off-by: Lukasz Majewski 
> 
> ---
> Changes for v3:
> - Provide missing ${PN}-ptest for PACKAGES, PROVIDES and
>   RPROVIDES variables
> 
> Changes for v2:
> - Just focus on time related set of tests as those can be run as
>   standalone
> - Reuse of already built tests (from glibc-tests.inc) and depoloy
>   them on the HW target.
> - Provide single 'run-ptest' script.
> - Update the recipe to run with newest poky's -master
> ---
>  .../distro/include/ptest-packagelists.inc |   1 +
>  meta/recipes-core/glibc/glibc-tests_2.34.bb   | 112
> ++ meta/recipes-core/glibc/glibc/run-ptest   |
> 37 ++ 3 files changed, 150 insertions(+)
>  create mode 100644 meta/recipes-core/glibc/glibc-tests_2.34.bb
>  create mode 100755 meta/recipes-core/glibc/glibc/run-ptest
> 
> diff --git a/meta/conf/distro/include/ptest-packagelists.inc
> b/meta/conf/distro/include/ptest-packagelists.inc index
> 2e324f8da4..fd52fa72a4 100644 ---
> a/meta/conf/distro/include/ptest-packagelists.inc +++
> b/meta/conf/distro/include/ptest-packagelists.inc @@ -61,6 +61,7 @@
> PTESTS_FAST = "\ slang-ptest \
>  wayland-ptest \
>  zlib-ptest \
> +glibc-tests-ptest \
>  "
>  PTESTS_FAST:remove:mips64 = "qemu-ptest"
>  PTESTS_PROBLEMS:append:mips64 = "qemu-ptest"
> diff --git a/meta/recipes-core/glibc/glibc-tests_2.34.bb
> b/meta/recipes-core/glibc/glibc-tests_2.34.bb new file mode 100644
> index 00..0a6920eef4
> --- /dev/null
> +++ b/meta/recipes-core/glibc/glibc-tests_2.34.bb
> @@ -0,0 +1,112 @@
> +require glibc_${PV}.bb
> +require glibc-tests.inc
> +
> +inherit ptest
> +
> +SRC_URI:append = " \
> + file://run-ptest \
> +"
> +
> +SUMMARY = "glibc tests to be run with ptest"
> +
> +# 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}-ptest")
> +
> +   d.setVar("PROVIDES", "${PN} ${PN}-ptest")
> +   d.setVar("RPROVIDES", "${PN} ${PN}-ptest")
> +
> +   d.setVar("RRECOMMENDS", "")
> +}
> +
> +# Remove any lefovers from original glibc recipe
> +RPROVIDES:${PN} = "${PN}"
> +RRECOMMENDS:${PN} = ""
> +RDEPENDS:${PN} = " glibc sed"
> +DEPENDS:append = " sed"
> +
> +# 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 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/
> +
> +}
> +
> +# The datadir directory is required to allow core (and reused)
> +# glibc cleanup function to finish correctly, as 

Re: [OE-core] [PATCH v3] glibc: ptest: Add running glibc time related test suite (Y2038) with ptest

2021-10-29 Thread Alexandre Belloni
Hello,

There is a remaining issue:

WARNING: Nothing RPROVIDES 'nativesdk-ptest-runner' (but 
virtual:nativesdk:/home/pokybuild/yocto-worker/build-appliance/build/meta/recipes-core/glibc/glibc-tests_2.34.bb
 RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'nativesdk-ptest-runner' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['nativesdk-ptest-runner']

On 28/10/2021 14:00:20+0200, ?ukasz Majewski wrote:
> This patch introduces new recipe - namely 'glibc-tests', which
> builds and installs time related (to check if Y2038 support works) glibc
> test suite to OE/Yocto built image.
> 
> It reuses code from already available 'glibc-testsuite' recipe,
> which is run with 'bitbake glibc-testsuite -c check' and uses qemu
> to execute remotely (via SSH) tests on some emulated machine.
> 
> This recipe installs time related glibc tests on some rootfs image.
> Afterwards, those tests can be executed on the real hardware, to
> facilitate validation of it with Y2038 problem compliance.
> 
> To test time related subset - one needs to call:
> ptest-runner glibc-tests
> then change the date after Y2038 threshold for 32 bit systems:
> date -s "20 JAN 2038 18:00:00"
> and then run ptest-runner again.
> 
> To facilitate debugging, source files are provided by default with
> the unstripped debugging symbols. Such approach would reduce the
> already complex recipe (as it inherits base glibc one), so there
> is no need to also install *-dbg and *-src packages.
> 
> Signed-off-by: Lukasz Majewski 
> 
> ---
> Changes for v3:
> - Provide missing ${PN}-ptest for PACKAGES, PROVIDES and
>   RPROVIDES variables
> 
> Changes for v2:
> - Just focus on time related set of tests as those can be run as
>   standalone
> - Reuse of already built tests (from glibc-tests.inc) and depoloy
>   them on the HW target.
> - Provide single 'run-ptest' script.
> - Update the recipe to run with newest poky's -master
> ---
>  .../distro/include/ptest-packagelists.inc |   1 +
>  meta/recipes-core/glibc/glibc-tests_2.34.bb   | 112 ++
>  meta/recipes-core/glibc/glibc/run-ptest   |  37 ++
>  3 files changed, 150 insertions(+)
>  create mode 100644 meta/recipes-core/glibc/glibc-tests_2.34.bb
>  create mode 100755 meta/recipes-core/glibc/glibc/run-ptest
> 
> diff --git a/meta/conf/distro/include/ptest-packagelists.inc 
> b/meta/conf/distro/include/ptest-packagelists.inc
> index 2e324f8da4..fd52fa72a4 100644
> --- a/meta/conf/distro/include/ptest-packagelists.inc
> +++ b/meta/conf/distro/include/ptest-packagelists.inc
> @@ -61,6 +61,7 @@ PTESTS_FAST = "\
>  slang-ptest \
>  wayland-ptest \
>  zlib-ptest \
> +glibc-tests-ptest \
>  "
>  PTESTS_FAST:remove:mips64 = "qemu-ptest"
>  PTESTS_PROBLEMS:append:mips64 = "qemu-ptest"
> diff --git a/meta/recipes-core/glibc/glibc-tests_2.34.bb 
> b/meta/recipes-core/glibc/glibc-tests_2.34.bb
> new file mode 100644
> index 00..0a6920eef4
> --- /dev/null
> +++ b/meta/recipes-core/glibc/glibc-tests_2.34.bb
> @@ -0,0 +1,112 @@
> +require glibc_${PV}.bb
> +require glibc-tests.inc
> +
> +inherit ptest
> +
> +SRC_URI:append = " \
> + file://run-ptest \
> +"
> +
> +SUMMARY = "glibc tests to be run with ptest"
> +
> +# 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}-ptest")
> +
> +   d.setVar("PROVIDES", "${PN} ${PN}-ptest")
> +   d.setVar("RPROVIDES", "${PN} ${PN}-ptest")
> +
> +   d.setVar("RRECOMMENDS", "")
> +}
> +
> +# Remove any lefovers from original glibc recipe
> +RPROVIDES:${PN} = "${PN}"
> +RRECOMMENDS:${PN} = ""
> +RDEPENDS:${PN} = " glibc sed"
> +DEPENDS:append = " sed"
> +
> +# 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 

[OE-core] [PATCH v3] glibc: ptest: Add running glibc time related test suite (Y2038) with ptest

2021-10-28 Thread ?ukasz Majewski
This patch introduces new recipe - namely 'glibc-tests', which
builds and installs time related (to check if Y2038 support works) glibc
test suite to OE/Yocto built image.

It reuses code from already available 'glibc-testsuite' recipe,
which is run with 'bitbake glibc-testsuite -c check' and uses qemu
to execute remotely (via SSH) tests on some emulated machine.

This recipe installs time related glibc tests on some rootfs image.
Afterwards, those tests can be executed on the real hardware, to
facilitate validation of it with Y2038 problem compliance.

To test time related subset - one needs to call:
ptest-runner glibc-tests
then change the date after Y2038 threshold for 32 bit systems:
date -s "20 JAN 2038 18:00:00"
and then run ptest-runner again.

To facilitate debugging, source files are provided by default with
the unstripped debugging symbols. Such approach would reduce the
already complex recipe (as it inherits base glibc one), so there
is no need to also install *-dbg and *-src packages.

Signed-off-by: Lukasz Majewski 

---
Changes for v3:
- Provide missing ${PN}-ptest for PACKAGES, PROVIDES and
  RPROVIDES variables

Changes for v2:
- Just focus on time related set of tests as those can be run as
  standalone
- Reuse of already built tests (from glibc-tests.inc) and depoloy
  them on the HW target.
- Provide single 'run-ptest' script.
- Update the recipe to run with newest poky's -master
---
 .../distro/include/ptest-packagelists.inc |   1 +
 meta/recipes-core/glibc/glibc-tests_2.34.bb   | 112 ++
 meta/recipes-core/glibc/glibc/run-ptest   |  37 ++
 3 files changed, 150 insertions(+)
 create mode 100644 meta/recipes-core/glibc/glibc-tests_2.34.bb
 create mode 100755 meta/recipes-core/glibc/glibc/run-ptest

diff --git a/meta/conf/distro/include/ptest-packagelists.inc 
b/meta/conf/distro/include/ptest-packagelists.inc
index 2e324f8da4..fd52fa72a4 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -61,6 +61,7 @@ PTESTS_FAST = "\
 slang-ptest \
 wayland-ptest \
 zlib-ptest \
+glibc-tests-ptest \
 "
 PTESTS_FAST:remove:mips64 = "qemu-ptest"
 PTESTS_PROBLEMS:append:mips64 = "qemu-ptest"
diff --git a/meta/recipes-core/glibc/glibc-tests_2.34.bb 
b/meta/recipes-core/glibc/glibc-tests_2.34.bb
new file mode 100644
index 00..0a6920eef4
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-tests_2.34.bb
@@ -0,0 +1,112 @@
+require glibc_${PV}.bb
+require glibc-tests.inc
+
+inherit ptest
+
+SRC_URI:append = " \
+   file://run-ptest \
+"
+
+SUMMARY = "glibc tests to be run with ptest"
+
+# 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}-ptest")
+
+   d.setVar("PROVIDES", "${PN} ${PN}-ptest")
+   d.setVar("RPROVIDES", "${PN} ${PN}-ptest")
+
+   d.setVar("RRECOMMENDS", "")
+}
+
+# Remove any lefovers from original glibc recipe
+RPROVIDES:${PN} = "${PN}"
+RRECOMMENDS:${PN} = ""
+RDEPENDS:${PN} = " glibc sed"
+DEPENDS:append = " sed"
+
+# 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 ${WORKDIR}/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'