mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
libc-test: add libc testsuite for musl
libc-test is a collection of unit test to measure the correctness and robustness of a C/POSIX standard library implementation. It is developed as part of the musl project. (From OE-Core rev: 4a94cdc7e841ebe583b0e6935fc50d233c8c310e) Signed-off-by: Chase Qi <chase.qi@linaro.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -306,6 +306,7 @@ RECIPE_MAINTAINER:pn-libarchive = "Otavio Salvador <otavio.salvador@ossystems.co
|
|||||||
RECIPE_MAINTAINER:pn-libassuan = "Unassigned <unassigned@yoctoproject.org>"
|
RECIPE_MAINTAINER:pn-libassuan = "Unassigned <unassigned@yoctoproject.org>"
|
||||||
RECIPE_MAINTAINER:pn-libatomic-ops = "Anuj Mittal <anuj.mittal@intel.com>"
|
RECIPE_MAINTAINER:pn-libatomic-ops = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||||
RECIPE_MAINTAINER:pn-libbsd = "Yi Zhao <yi.zhao@windriver.com>"
|
RECIPE_MAINTAINER:pn-libbsd = "Yi Zhao <yi.zhao@windriver.com>"
|
||||||
|
RECIPE_MAINTAINER:pn-libc-test = "Chase Qi <chase.qi@linaro.org>"
|
||||||
RECIPE_MAINTAINER:pn-libcap = "Yi Zhao <yi.zhao@windriver.com>"
|
RECIPE_MAINTAINER:pn-libcap = "Yi Zhao <yi.zhao@windriver.com>"
|
||||||
RECIPE_MAINTAINER:pn-libcap-ng = "Yi Zhao <yi.zhao@windriver.com>"
|
RECIPE_MAINTAINER:pn-libcap-ng = "Yi Zhao <yi.zhao@windriver.com>"
|
||||||
RECIPE_MAINTAINER:pn-libcap-ng-python = "Yi Zhao <yi.zhao@windriver.com>"
|
RECIPE_MAINTAINER:pn-libcap-ng-python = "Yi Zhao <yi.zhao@windriver.com>"
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ PTESTS_SLOW = "\
|
|||||||
|
|
||||||
PTESTS_SLOW:remove:riscv64 = "valgrind-ptest"
|
PTESTS_SLOW:remove:riscv64 = "valgrind-ptest"
|
||||||
PTESTS_PROBLEMS:append:riscv64 = "valgrind-ptest"
|
PTESTS_PROBLEMS:append:riscv64 = "valgrind-ptest"
|
||||||
|
PTESTS_SLOW:append:libc-musl = " libc-test-ptest"
|
||||||
|
|
||||||
# ruby-ptest \ # Timeout
|
# ruby-ptest \ # Timeout
|
||||||
# lz4-ptest \ # Needs a rewrite
|
# lz4-ptest \ # Needs a rewrite
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd /opt/libc-test
|
||||||
|
make cleanall
|
||||||
|
make run || true
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "--- ptest result ---"
|
||||||
|
# libc-test runs tests by module(e.g. src/api) and generates sub-module test
|
||||||
|
# report(e.g. src/api/REPORT) first. After all tests finish, it generates the
|
||||||
|
# consolidated report file src/REPORT.
|
||||||
|
report="/opt/libc-test/src/REPORT"
|
||||||
|
if ! [ -f "${report}" ]; then
|
||||||
|
echo "${report} not found!"
|
||||||
|
echo "FAIL: libc-test"
|
||||||
|
exit 1
|
||||||
|
# libc-test prints error on failure and prints nothing on success.
|
||||||
|
elif grep -q '^FAIL src.*\.exe.*' "${report}"; then
|
||||||
|
# Print test failure in ptest format.
|
||||||
|
# e.g. "FAIL src/api/main.exe [status 1]" -> "FAIL: api_main"
|
||||||
|
grep '^FAIL src.*\.exe.*' "${report}" \
|
||||||
|
| sed 's|^FAIL src/|FAIL: |;s|/|_|;s|\.exe.*\]||'
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "PASS: libc-test"
|
||||||
|
fi
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
SUMMARY = "Musl libc unit tests"
|
||||||
|
HOMEPAGE = "https://wiki.musl-libc.org/libc-test.html"
|
||||||
|
DESCRIPTION = "libc-test is a collection of unit tests to measure the \
|
||||||
|
correctness and robustness of a C/POSIX standard library implementation. It is \
|
||||||
|
developed as part of the musl project."
|
||||||
|
SECTION = "tests"
|
||||||
|
LICENSE = "MIT"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=43ed1245085be90dc934288117d55a3b"
|
||||||
|
|
||||||
|
inherit ptest
|
||||||
|
|
||||||
|
SRCREV = "18e28496adee3d84fefdda6efcb9c5b8996a2398"
|
||||||
|
SRC_URI = " \
|
||||||
|
git://repo.or.cz/libc-test;branch=master \
|
||||||
|
file://run-ptest \
|
||||||
|
"
|
||||||
|
|
||||||
|
PV = "0+git${SRCPV}"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
# libc-test 'make' or 'make run' command is designed to build and run tests. It
|
||||||
|
# reports both build and test failures. The commands should be run on target.
|
||||||
|
do_compile() {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
RDEPENDS:${PN} = " \
|
||||||
|
bash \
|
||||||
|
grep \
|
||||||
|
musl \
|
||||||
|
packagegroup-core-buildessential \
|
||||||
|
"
|
||||||
|
|
||||||
|
RDEPENDS:${PN}-ptest = " \
|
||||||
|
${PN} \
|
||||||
|
sed \
|
||||||
|
"
|
||||||
|
|
||||||
|
install_path = "/opt/${PN}"
|
||||||
|
FILES:${PN} += "${install_path}/*"
|
||||||
|
|
||||||
|
do_install () {
|
||||||
|
install -d ${D}${install_path}/
|
||||||
|
cp ${S}/Makefile ${D}${install_path}
|
||||||
|
cp ${S}/config.mak.def ${D}${install_path}/config.mak
|
||||||
|
cp -r ${S}/src ${D}${install_path}
|
||||||
|
}
|
||||||
|
|
||||||
|
COMPATIBLE_HOST = "null"
|
||||||
|
COMPATIBLE_HOST:libc-musl = "(.*)"
|
||||||
Reference in New Issue
Block a user