summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishwas Udupa <quic_vudupa@quicinc.com>2025-04-09 11:47:36 +0530
committerSteve Sakoman <steve@sakoman.com>2025-04-19 14:42:10 -0700
commit48cd4ee39330224e7fa2d3e854e923d3649445d5 (patch)
tree7deff5ac182e093f99d9649b113e12fa67bb8fde
parent06d60d3877ea268735215439b9253cd0e54ee93e (diff)
downloadpoky-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-ptest19
-rw-r--r--meta/recipes-connectivity/openssl/openssl_3.2.4.bb67
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
3set -e 3set -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
8if test $# -gt 0; then
9 TESTS=$*
10else
11 # Skip test_symbol_presence as this is for developers
12 TESTS="alltests -test_symbol_presence"
13fi
7 14
8export TOP=. 15export TOP=.
9# OPENSSL_ENGINES is relative from the test binaries 16# Run four jobs in parallel
10export OPENSSL_ENGINES=../engines 17export 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
187PTEST_BUILD_HOST_FILES += "configdata.pm" 187PTEST_BUILD_HOST_FILES += "configdata.pm"
188PTEST_BUILD_HOST_PATTERN = "perl_version =" 188PTEST_BUILD_HOST_PATTERN = "perl_version ="
189do_install_ptest () { 189do_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
251RRECOMMENDS:libcrypto += "openssl-conf ${PN}-ossl-module-legacy" 250RRECOMMENDS:libcrypto += "openssl-conf ${PN}-ossl-module-legacy"
252RDEPENDS:${PN}-misc = "perl" 251RDEPENDS:${PN}-misc = "perl"
253RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules bash sed" 252RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules bash sed openssl-engines openssl-ossl-module-legacy"
254 253
255RDEPENDS:${PN}-bin += "openssl-conf" 254RDEPENDS:${PN}-bin += "openssl-conf"
256 255