diff options
| author | Vishwas Udupa <quic_vudupa@quicinc.com> | 2025-04-09 11:47:36 +0530 |
|---|---|---|
| committer | Steve Sakoman <steve@sakoman.com> | 2025-04-19 14:42:10 -0700 |
| commit | 48cd4ee39330224e7fa2d3e854e923d3649445d5 (patch) | |
| tree | 7deff5ac182e093f99d9649b113e12fa67bb8fde | |
| parent | 06d60d3877ea268735215439b9253cd0e54ee93e (diff) | |
| download | poky-48cd4ee39330224e7fa2d3e854e923d3649445d5.tar.gz | |
openssl: rewrite ptest installation
Rewrite (again) the openssl test suite installation.
Depend on and reuse already installed libraries and modules instead of
installing them twice.
Be more selective when installing from the build tree so we don't install
intermediate .c .d .o files.
This further reduces the size of openssl-dbg from ~120MB to ~18MB.
(From OE-Core rev: 8baa0ce7eae65026cb3a784adaf3a4fc724ce9c9)
Upstream-Status: Backport[https://git.yoctoproject.org/poky/commit/?id=76212866402edb947f745f837e3c3b98b3056e58]
(From OE-Core rev: b3cd05f123625c4c301fee925cdbb9641bc73412)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 76212866402edb947f745f837e3c3b98b3056e58)
Signed-off-by: Vishwas Udupa <quic_vudupa@quicinc.com>
Change-Id: Ifc0e3a019c2abe5142d0f1e359ae5aa33dae1608
Signed-off-by: Steve Sakoman <steve@sakoman.com>
| -rw-r--r-- | meta/recipes-connectivity/openssl/openssl/run-ptest | 19 | ||||
| -rw-r--r-- | meta/recipes-connectivity/openssl/openssl_3.2.4.bb | 67 |
2 files changed, 46 insertions, 40 deletions
diff --git a/meta/recipes-connectivity/openssl/openssl/run-ptest b/meta/recipes-connectivity/openssl/openssl/run-ptest index c89ec5afa1..cd29bb1446 100644 --- a/meta/recipes-connectivity/openssl/openssl/run-ptest +++ b/meta/recipes-connectivity/openssl/openssl/run-ptest | |||
| @@ -1,12 +1,19 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | 2 | ||
| 3 | set -e | 3 | set -eu |
| 4 | 4 | ||
| 5 | # Optional arguments are 'list' to lists all tests, or the test name (base name | 5 | # Optional arguments are 'list' to lists the tests, or the test name (base name |
| 6 | # ie test_evp, not 03_test_evp.t). | 6 | # ie test_evp, not 03_test_evp.t). Without any arguments we run all tests. |
| 7 | |||
| 8 | if test $# -gt 0; then | ||
| 9 | TESTS=$* | ||
| 10 | else | ||
| 11 | # Skip test_symbol_presence as this is for developers | ||
| 12 | TESTS="alltests -test_symbol_presence" | ||
| 13 | fi | ||
| 7 | 14 | ||
| 8 | export TOP=. | 15 | export TOP=. |
| 9 | # OPENSSL_ENGINES is relative from the test binaries | 16 | # Run four jobs in parallel |
| 10 | export OPENSSL_ENGINES=../engines | 17 | export HARNESS_JOBS=4 |
| 11 | 18 | ||
| 12 | { HARNESS_JOBS=4 perl ./test/run_tests.pl $* || echo "FAIL: openssl" ; } | sed -u -r -e '/(.*) \.*.ok/ s/^/PASS: /g' -r -e '/Dubious(.*)/ s/^/FAIL: /g' -e '/(.*) \.*.skipped: (.*)/ s/^/SKIP: /g' | 19 | { perl ./test/run_tests.pl $TESTS || echo "FAIL: openssl" ; } | sed -u -r -e '/(.*) \.*.ok/ s/^/PASS: /g' -r -e '/Dubious(.*)/ s/^/FAIL: /g' -e '/(.*) \.*.skipped: (.*)/ s/^/SKIP: /g' |
diff --git a/meta/recipes-connectivity/openssl/openssl_3.2.4.bb b/meta/recipes-connectivity/openssl/openssl_3.2.4.bb index bada192fe9..c4ad80e734 100644 --- a/meta/recipes-connectivity/openssl/openssl_3.2.4.bb +++ b/meta/recipes-connectivity/openssl/openssl_3.2.4.bb | |||
| @@ -186,44 +186,43 @@ do_install:append:class-nativesdk () { | |||
| 186 | 186 | ||
| 187 | PTEST_BUILD_HOST_FILES += "configdata.pm" | 187 | PTEST_BUILD_HOST_FILES += "configdata.pm" |
| 188 | PTEST_BUILD_HOST_PATTERN = "perl_version =" | 188 | PTEST_BUILD_HOST_PATTERN = "perl_version =" |
| 189 | do_install_ptest () { | 189 | do_install_ptest() { |
| 190 | install -d ${D}${PTEST_PATH}/test | 190 | install -m644 ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH} |
| 191 | install -m755 ${B}/test/p_test.so ${D}${PTEST_PATH}/test | 191 | cp -rf ${S}/Configurations ${S}/external ${D}${PTEST_PATH}/ |
| 192 | install -m755 ${B}/test/p_minimal.so ${D}${PTEST_PATH}/test | ||
| 193 | install -m755 ${B}/test/provider_internal_test.cnf ${D}${PTEST_PATH}/test | ||
| 194 | |||
| 195 | # Prune the build tree | ||
| 196 | rm -f ${B}/fuzz/*.* ${B}/test/*.* | ||
| 197 | |||
| 198 | cp ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH} | ||
| 199 | sed 's|${S}|${PTEST_PATH}|g' -i ${D}${PTEST_PATH}/configdata.pm | ||
| 200 | cp -r ${S}/external ${B}/test ${S}/test ${B}/fuzz ${S}/util ${B}/util ${D}${PTEST_PATH} | ||
| 201 | |||
| 202 | # For test_shlibload | ||
| 203 | ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/ | ||
| 204 | ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/ | ||
| 205 | 192 | ||
| 206 | install -d ${D}${PTEST_PATH}/apps | 193 | install -d ${D}${PTEST_PATH}/apps |
| 207 | ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps | 194 | ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps |
| 208 | install -m644 ${S}/apps/*.pem ${S}/apps/*.srl ${S}/apps/openssl.cnf ${D}${PTEST_PATH}/apps | ||
| 209 | install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps | ||
| 210 | |||
| 211 | install -d ${D}${PTEST_PATH}/engines | ||
| 212 | install -m755 ${B}/engines/dasync.so ${D}${PTEST_PATH}/engines | ||
| 213 | install -m755 ${B}/engines/loader_attic.so ${D}${PTEST_PATH}/engines | ||
| 214 | install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines | ||
| 215 | |||
| 216 | install -d ${D}${PTEST_PATH}/providers | ||
| 217 | install -m755 ${B}/providers/legacy.so ${D}${PTEST_PATH}/providers | ||
| 218 | 195 | ||
| 219 | install -d ${D}${PTEST_PATH}/Configurations | 196 | cd ${S} |
| 220 | cp -rf ${S}/Configurations/* ${D}${PTEST_PATH}/Configurations/ | 197 | find test/certs test/ct test/d2i-tests test/recipes test/ocsp-tests test/ssl-tests test/smime-certs -type f -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \; |
| 198 | find apps test -name \*.cnf -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \; | ||
| 199 | find apps test -name \*.der -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \; | ||
| 200 | find apps test -name \*.pem -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \; | ||
| 201 | find util -name \*.p[lm] -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \; | ||
| 202 | |||
| 203 | cd ${B} | ||
| 204 | # Everything but .? (.o and .d) | ||
| 205 | find test -type f -name \*[^.]? -exec install -m755 -D {} ${D}${PTEST_PATH}/{} \; | ||
| 206 | find apps test -name \*.cnf -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \; | ||
| 207 | find apps test -name \*.pem -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \; | ||
| 208 | find apps test -name \*.srl -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \; | ||
| 209 | install -m755 ${B}/util/*wrap.* ${D}${PTEST_PATH}/util/ | ||
| 210 | |||
| 211 | install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps/ | ||
| 212 | install -m755 ${S}/test/*.pl ${D}${PTEST_PATH}/test/ | ||
| 213 | install -m755 ${S}/test/shibboleth.pfx ${D}${PTEST_PATH}/test/ | ||
| 214 | install -m755 ${S}/test/*.bin ${D}${PTEST_PATH}/test/ | ||
| 215 | install -m755 ${S}/test/dane*.in ${D}${PTEST_PATH}/test/ | ||
| 216 | install -m755 ${S}/test/smcont*.txt ${D}${PTEST_PATH}/test/ | ||
| 217 | install -m755 ${S}/test/ssl_test.tmpl ${D}${PTEST_PATH}/test/ | ||
| 218 | |||
| 219 | sed 's|${S}|${PTEST_PATH}|g' -i ${D}${PTEST_PATH}/configdata.pm ${D}${PTEST_PATH}/util/wrap.pl | ||
| 221 | 220 | ||
| 222 | # seems to be needed with perl 5.32.1 | 221 | install -d ${D}${PTEST_PATH}/engines |
| 223 | install -d ${D}${PTEST_PATH}/util/perl/recipes | 222 | install -m755 ${B}/engines/dasync.so ${D}${PTEST_PATH}/engines/ |
| 224 | cp ${D}${PTEST_PATH}/test/recipes/tconversion.pl ${D}${PTEST_PATH}/util/perl/recipes/ | 223 | install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines/ |
| 225 | 224 | ln -s ${libdir}/engines-3/loader_attic.so ${D}${PTEST_PATH}/engines/ | |
| 226 | sed 's|${S}|${PTEST_PATH}|g' -i ${D}${PTEST_PATH}/util/wrap.pl | 225 | ln -s ${libdir}/ossl-modules/ ${D}${PTEST_PATH}/providers |
| 227 | } | 226 | } |
| 228 | 227 | ||
| 229 | # Add the openssl.cnf file to the openssl-conf package. Make the libcrypto | 228 | # Add the openssl.cnf file to the openssl-conf package. Make the libcrypto |
| @@ -250,7 +249,7 @@ CONFFILES:openssl-conf = "${sysconfdir}/ssl/openssl.cnf" | |||
| 250 | 249 | ||
| 251 | RRECOMMENDS:libcrypto += "openssl-conf ${PN}-ossl-module-legacy" | 250 | RRECOMMENDS:libcrypto += "openssl-conf ${PN}-ossl-module-legacy" |
| 252 | RDEPENDS:${PN}-misc = "perl" | 251 | RDEPENDS:${PN}-misc = "perl" |
| 253 | RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules bash sed" | 252 | RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules bash sed openssl-engines openssl-ossl-module-legacy" |
| 254 | 253 | ||
| 255 | RDEPENDS:${PN}-bin += "openssl-conf" | 254 | RDEPENDS:${PN}-bin += "openssl-conf" |
| 256 | 255 | ||
