mirror of
https://git.yoctoproject.org/poky
synced 2026-09-13 00:49:33 +02:00
icu: Add ptest support
Add following patches.
- 0001-test-Add-support-ptest.patch
- Some default paths in test code are invalid at runtime and cause
- test failures. So add a patch to adjust path to test data for ptest
- environment.
- 0001-ICU-23120-Mask-UnicodeStringTest-TestLargeMemory-on-.patch
- Since ICU-77.1, a test case (TestLargeMemory) that fails to build
- in a 32-bit environment. So add a patch to skip this test case.
- This bug has been reported to upstream. See https://unicode-org.atlassian.net/browse/ICU-23120.
Install icu test-suite to run it as a ptest.
Add icu to PTESTS_FAST because it takes 27sec (less than 30sec) to complete on
qemux86-64 with kvm enabled.
root@qemux86-64:~# ptest-runner icu
START: ptest-runner
2025-07-06T00:46
BEGIN: /usr/lib/icu/ptest
___(snip)___
--------------------------------------
Elapsed Time: 00:00:23.070
PASS: ./intltest
DURATION: 27
END: /usr/lib/icu/ptest
2025-07-06T00:47
STOP: ptest-runner
TOTAL: 1 FAIL: 0
(From OE-Core rev: 4a729a529067a5ba7036a224cf330e31b8a5f838)
Signed-off-by: Daisuke Yamane <yamane07ynct@gmail.com>
CC: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
cdb6e3e5c5
commit
4b83fe5745
@@ -25,6 +25,7 @@ PTESTS_FAST = "\
|
|||||||
gdk-pixbuf \
|
gdk-pixbuf \
|
||||||
glib-networking \
|
glib-networking \
|
||||||
gzip \
|
gzip \
|
||||||
|
icu \
|
||||||
json-c \
|
json-c \
|
||||||
json-glib \
|
json-glib \
|
||||||
libconvert-asn1-perl \
|
libconvert-asn1-perl \
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
From 4b3e6888c2aaba6465f1bc96f61b17a2513050f3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Seifert <soap@gentoo.org>
|
||||||
|
Date: Sat, 21 Jun 2025 12:28:15 +0200
|
||||||
|
Subject: [PATCH] ICU-23120 Mask UnicodeStringTest::TestLargeMemory on 32-bit
|
||||||
|
platforms
|
||||||
|
|
||||||
|
Upstream-Status: Submitted [https://github.com/unicode-org/icu/pull/3496]
|
||||||
|
Signed-off-by: Daisuke Yamane <yamane07ynct@gmail.com>
|
||||||
|
---
|
||||||
|
test/intltest/ustrtest.cpp | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/test/intltest/ustrtest.cpp b/test/intltest/ustrtest.cpp
|
||||||
|
index 56976b3e3d2..26225f5b5b5 100644
|
||||||
|
--- a/test/intltest/ustrtest.cpp
|
||||||
|
+++ b/test/intltest/ustrtest.cpp
|
||||||
|
@@ -2353,7 +2353,7 @@ void UnicodeStringTest::TestUnicodeStringInsertAppendToSelf() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnicodeStringTest::TestLargeMemory() {
|
||||||
|
-#if U_PLATFORM_IS_LINUX_BASED || U_PLATFORM_IS_DARWIN_BASED
|
||||||
|
+#if (U_PLATFORM_IS_LINUX_BASED || U_PLATFORM_IS_DARWIN_BASED) && (UINTPTR_MAX == 0xFFFFFFFFFFFFFFFF)
|
||||||
|
if(quick) { return; }
|
||||||
|
IcuTestErrorCode status(*this, "TestLargeMemory");
|
||||||
|
constexpr uint32_t len = 2147483643;
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
From 783d9e0d3d7824fbca53c2c3a80e8e5e23eacc82 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daisuke Yamane <yamane07ynct@gmail.com>
|
||||||
|
Date: Tue, 1 Jul 2025 18:35:25 +0900
|
||||||
|
Subject: [PATCH] test: Add support ptest
|
||||||
|
|
||||||
|
Upstream-Status: Inappropriate [oe-core specific]
|
||||||
|
|
||||||
|
Signed-off-by: Daisuke Yamane <yamane07ynct@gmail.com>
|
||||||
|
---
|
||||||
|
test/cintltst/Makefile.in | 2 +-
|
||||||
|
test/intltest/Makefile.in | 2 +-
|
||||||
|
test/intltest/intltest.cpp | 2 +-
|
||||||
|
test/iotest/Makefile.in | 2 +-
|
||||||
|
test/letest/Makefile.in | 2 +-
|
||||||
|
5 files changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test/cintltst/Makefile.in b/test/cintltst/Makefile.in
|
||||||
|
index 552a105..9cf3071 100644
|
||||||
|
--- a/test/cintltst/Makefile.in
|
||||||
|
+++ b/test/cintltst/Makefile.in
|
||||||
|
@@ -39,7 +39,7 @@ CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/ct
|
||||||
|
ifdef QNX_TARGET
|
||||||
|
DEFS += -D'ICU_UNICODE_VERSION="$(UNICODE_VERSION)"' -D'ICU_VERSION="@VERSION@"' -D'ICUDATA_NAME="$(ICUDATA_PLATFORM_NAME)"' -D'U_TOPSRCDIR="/var/icu_tests"' -D'U_TOPBUILDDIR="/var/icu_tests/"'
|
||||||
|
else
|
||||||
|
-DEFS += -D'ICU_UNICODE_VERSION="$(UNICODE_VERSION)"' -D'ICU_VERSION="@VERSION@"' -D'ICUDATA_NAME="$(ICUDATA_PLATFORM_NAME)"' -D'U_TOPSRCDIR="$(top_srcdir)/"' -D'U_TOPBUILDDIR="$(BUILDDIR)"'
|
||||||
|
+DEFS += -D'ICU_UNICODE_VERSION="$(UNICODE_VERSION)"' -D'ICU_VERSION="@VERSION@"' -D'ICUDATA_NAME="$(ICUDATA_PLATFORM_NAME)"' -D'U_TOPSRCDIR="$(PTEST_PATH)/"' -D'U_TOPBUILDDIR="$(PTEST_PATH)/"'
|
||||||
|
endif
|
||||||
|
LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUTOOLUTIL) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
|
||||||
|
|
||||||
|
diff --git a/test/intltest/Makefile.in b/test/intltest/Makefile.in
|
||||||
|
index 5d4a03b..ca4e4cd 100644
|
||||||
|
--- a/test/intltest/Makefile.in
|
||||||
|
+++ b/test/intltest/Makefile.in
|
||||||
|
@@ -39,7 +39,7 @@ CPPFLAGS += -DUNISTR_FROM_CHAR_EXPLICIT= -DUNISTR_FROM_STRING_EXPLICIT=
|
||||||
|
ifdef QNX_TARGET
|
||||||
|
DEFS += -D'U_TOPSRCDIR="/var/icu_tests"' -D'U_TOPBUILDDIR="/var/icu_tests/"'
|
||||||
|
else
|
||||||
|
-DEFS += -D'U_TOPSRCDIR="$(top_srcdir)/"' -D'U_TOPBUILDDIR="$(BUILDDIR)"'
|
||||||
|
+DEFS += -D'U_TOPSRCDIR="$(PTEST_PATH)/"' -D'U_TOPBUILDDIR="$(PTEST_PATH)/"'
|
||||||
|
endif
|
||||||
|
LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M) $(LIB_THREAD)
|
||||||
|
|
||||||
|
diff --git a/test/intltest/intltest.cpp b/test/intltest/intltest.cpp
|
||||||
|
index 3806d0f..33829b0 100644
|
||||||
|
--- a/test/intltest/intltest.cpp
|
||||||
|
+++ b/test/intltest/intltest.cpp
|
||||||
|
@@ -1713,7 +1713,7 @@ static bool fileExists(const char* fileName) {
|
||||||
|
* Returns the path to icu/testdata/
|
||||||
|
*/
|
||||||
|
const char *IntlTest::getSharedTestData(UErrorCode& err) {
|
||||||
|
-#define SOURCE_TARBALL_TOP U_TOPSRCDIR U_FILE_SEP_STRING ".." U_FILE_SEP_STRING
|
||||||
|
+#define SOURCE_TARBALL_TOP U_TOPSRCDIR U_FILE_SEP_STRING
|
||||||
|
#define REPO_TOP SOURCE_TARBALL_TOP ".." U_FILE_SEP_STRING
|
||||||
|
#define FILE_NAME U_FILE_SEP_STRING "message2" U_FILE_SEP_STRING "valid-tests.json"
|
||||||
|
const char *srcDataDir = nullptr;
|
||||||
|
diff --git a/test/iotest/Makefile.in b/test/iotest/Makefile.in
|
||||||
|
index 16c510f..9eeff4b 100644
|
||||||
|
--- a/test/iotest/Makefile.in
|
||||||
|
+++ b/test/iotest/Makefile.in
|
||||||
|
@@ -39,7 +39,7 @@ CPPFLAGS += -DUNISTR_FROM_CHAR_EXPLICIT= -DUNISTR_FROM_STRING_EXPLICIT=
|
||||||
|
ifdef QNX_TARGET
|
||||||
|
DEFS += -D'U_TOPSRCDIR="/var/icu_tests"' -D'U_TOPBUILDDIR="/var/icu_tests/"'
|
||||||
|
else
|
||||||
|
-DEFS += -D'U_TOPSRCDIR="$(top_srcdir)/"' -D'U_TOPBUILDDIR="$(BUILDDIR)"'
|
||||||
|
+DEFS += -D'U_TOPSRCDIR="$(PTEST_PATH)/"' -D'U_TOPBUILDDIR="$(PTEST_PATH)/"'
|
||||||
|
endif
|
||||||
|
LIBS = $(LIBCTESTFW) $(LIBICUTOOLUTIL) $(LIBICUIO) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
|
||||||
|
|
||||||
|
diff --git a/test/letest/Makefile.in b/test/letest/Makefile.in
|
||||||
|
index 156c86f..555a820 100644
|
||||||
|
--- a/test/letest/Makefile.in
|
||||||
|
+++ b/test/letest/Makefile.in
|
||||||
|
@@ -30,7 +30,7 @@ BUILDDIR := $(BUILDDIR:test\\cintltst/../../=)
|
||||||
|
BUILDDIR := $(BUILDDIR:TEST\\CINTLTST/../../=)
|
||||||
|
|
||||||
|
CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/ctestfw -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/layoutex $(ICULE_CFLAGS) $(ICULEHB_CFLAGS)
|
||||||
|
-DEFS += -D'U_TOPSRCDIR="$(top_srcdir)/"' -D'U_TOPBUILDDIR="$(BUILDDIR)"'
|
||||||
|
+DEFS += -D'U_TOPSRCDIR="$(PTEST_PATH)/"' -D'U_TOPBUILDDIR="$(PTEST_PATH)/"'
|
||||||
|
LIBS = $(LIBICULX) $(LIBICUUC) $(LIBICUI18N) $(LIBCTESTFW) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M) $(ICULEHB_LIBS)
|
||||||
|
|
||||||
|
COMMONOBJECTS = SimpleFontInstance.o
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
13
meta/recipes-support/icu/icu/run-ptest
Executable file
13
meta/recipes-support/icu/icu/run-ptest
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
TOPDIR=$(dirname "$(realpath $0)")
|
||||||
|
cd ${TOPDIR}/test/tests
|
||||||
|
TESTS=$(find . -executable -type f)
|
||||||
|
for t in ${TESTS}; do
|
||||||
|
./$t
|
||||||
|
if [ "$?" = "0" ]; then
|
||||||
|
echo "PASS: $t"
|
||||||
|
else
|
||||||
|
echo "FAIL: $t"
|
||||||
|
fi
|
||||||
|
done
|
||||||
@@ -119,6 +119,9 @@ SRC_URI = "${BASE_SRC_URI};name=code \
|
|||||||
${DATA_SRC_URI};name=data \
|
${DATA_SRC_URI};name=data \
|
||||||
file://filter.json \
|
file://filter.json \
|
||||||
file://0001-icu-Added-armeb-support.patch \
|
file://0001-icu-Added-armeb-support.patch \
|
||||||
|
file://0001-ICU-23120-Mask-UnicodeStringTest-TestLargeMemory-on-.patch \
|
||||||
|
file://0001-test-Add-support-ptest.patch \
|
||||||
|
file://run-ptest \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI:append:class-target = "\
|
SRC_URI:append:class-target = "\
|
||||||
@@ -160,3 +163,23 @@ do_make_icudata() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addtask make_icudata before do_configure after do_patch do_prepare_recipe_sysroot
|
addtask make_icudata before do_configure after do_patch do_prepare_recipe_sysroot
|
||||||
|
|
||||||
|
inherit ptest
|
||||||
|
RDEPENDS:${PN}-ptest += "bash"
|
||||||
|
|
||||||
|
do_compile_ptest() {
|
||||||
|
oe_runmake -C test everything PTEST_PATH=${PTEST_PATH}
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install_ptest() {
|
||||||
|
install -d ${D}${PTEST_PATH}/test
|
||||||
|
install -d ${D}${PTEST_PATH}/data
|
||||||
|
cp -r ${S}/test/testdata ${D}/${PTEST_PATH}/test
|
||||||
|
cp -r ${S}/data/unidata ${D}/${PTEST_PATH}/data/
|
||||||
|
cp -r ${S}/data/sprep ${D}/${PTEST_PATH}/data/
|
||||||
|
cp -r ${S}/../testdata ${D}/${PTEST_PATH}/
|
||||||
|
cp -r ${B}/test/testdata/out ${D}/${PTEST_PATH}/test/testdata
|
||||||
|
|
||||||
|
install -d ${D}${PTEST_PATH}/test/tests
|
||||||
|
find ${B}/test/ -type f -executable -exec cp {} ${D}${PTEST_PATH}/test/tests \;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user