diff options
author | Juro Bystricky <juro.bystricky@intel.com> | 2017-10-18 16:55:13 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-05 22:33:23 +0000 |
commit | 526d3e24b26a4914dee837a85b0897505e0ae7db (patch) | |
tree | 18da0f9d183430eed6cdedf13e53f3ef575016dc | |
parent | e0521d4b12d4df0990486dd0b39dcdf78b114342 (diff) | |
download | poky-526d3e24b26a4914dee837a85b0897505e0ae7db.tar.gz |
util-linux-ptest: various fixes
The original code enabled only a sub-set of all available tests.
It also copied executables to be tested into a local folder although
the executables were expected to be already installed in the image.
In addition, the original code copied libtool scripts instead of already
cross-compiled images.
This patch modifies some test scripts so there is no need to copy
images already installed: instead it tests images already installed.
As the executables are scattered in /bin, usr/bin, /sbin/ usr/sbin folders,
we use 'which' to determine the absolute path.
We also copy some cross-compiled tests that were previously missing.
By the virtue of not copying the libtools scripts we also managed
the achieve binary reproducible package, as previously leaked build host
info was contained in libtool scripts, which are not copied anymore.
[YOCTO #10953]
(From OE-Core rev: f5198af37a5357a1758b50668b67f1c552982507)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-core/util-linux/util-linux.inc | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc index 5c4694b1fd..f0ffd255ff 100644 --- a/meta/recipes-core/util-linux/util-linux.inc +++ b/meta/recipes-core/util-linux/util-linux.inc | |||
@@ -304,7 +304,7 @@ python populate_packages_prepend() { | |||
304 | } | 304 | } |
305 | 305 | ||
306 | RDEPENDS_${PN}-bash-completion += "util-linux-lsblk" | 306 | RDEPENDS_${PN}-bash-completion += "util-linux-lsblk" |
307 | RDEPENDS_${PN}-ptest = "bash grep coreutils" | 307 | RDEPENDS_${PN}-ptest = "bash grep coreutils which util-linux-blkid util-linux-fsck btrfs-tools" |
308 | 308 | ||
309 | do_compile_ptest() { | 309 | do_compile_ptest() { |
310 | oe_runmake buildtest-TESTS | 310 | oe_runmake buildtest-TESTS |
@@ -312,23 +312,30 @@ do_compile_ptest() { | |||
312 | 312 | ||
313 | do_install_ptest() { | 313 | do_install_ptest() { |
314 | mkdir -p ${D}${PTEST_PATH}/tests/ts | 314 | mkdir -p ${D}${PTEST_PATH}/tests/ts |
315 | find . -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; | 315 | find . -name 'test*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; |
316 | cp ${S}/tests/functions.sh ${D}${PTEST_PATH}/tests/ | 316 | find ./.libs -name 'sample*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; |
317 | cp ${S}/tests/commands.sh ${D}${PTEST_PATH}/tests/ | 317 | find ./.libs -name 'test*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; |
318 | cp ${S}/tests/run.sh ${D}${PTEST_PATH}/tests/ | ||
319 | cp -pR ${S}/tests/expected ${D}${PTEST_PATH}/tests/expected | ||
320 | 318 | ||
321 | list="bitops build-sys cal col colrm column dmesg fsck hexdump hwclock ipcs isosize login look md5 misc more namei paths schedutils script swapon" | 319 | cp ${S}/tests/*.sh ${D}${PTEST_PATH}/tests/ |
322 | # The following tests are not installed yet: | 320 | cp -pR ${S}/tests/expected ${D}${PTEST_PATH}/tests/expected |
323 | # blkid scsi_debug module dependent | 321 | cp -pR ${S}/tests/ts ${D}${PTEST_PATH}/tests/ |
324 | # cramfs gcc dependent | 322 | cp ${WORKDIR}/build/config.h ${D}${PTEST_PATH} |
325 | # eject gcc dependent | 323 | |
326 | # fdisk scsi_debug module and gcc dependent | 324 | # The original paths of executables to be tested point to a local folder containing |
327 | # lscpu gcc dependant | 325 | # the executables. We want to test the installed executables, not the local copies. |
328 | # libmount uuidgen dependent | 326 | # So strip the paths, the executables will be located via "which" |
329 | # mount gcc dependant | 327 | sed -i \ |
330 | # partx blkid dependant | 328 | -e '/^TS_CMD/ s|$top_builddir/||g' \ |
331 | for d in $list; do | 329 | -e '/^TS_HELPER/ s|$top_builddir|${PTEST_PATH}|g' \ |
332 | cp -pR ${S}/tests/ts/$d ${D}${PTEST_PATH}/tests/ts/ | 330 | ${D}${PTEST_PATH}/tests/commands.sh |
333 | done | 331 | |
332 | # Change 'if [ ! -x "$1" ]' to 'if [ ! -x "`which $1 2>/dev/null`"]' | ||
333 | sed -i -e \ | ||
334 | '/^\tif[[:space:]]\[[[:space:]]![[:space:]]-x[[:space:]]"$1"/s|$1|`which $1 2>/dev/null`|g' \ | ||
335 | ${D}${PTEST_PATH}/tests/functions.sh | ||
336 | |||
337 | # "kill -L" behaves differently than "/bin/kill -L" so we need an additional fix | ||
338 | sed -i -e \ | ||
339 | '/^TS_CMD_KILL/ s|kill|/bin/kill|g' \ | ||
340 | ${D}${PTEST_PATH}/tests/commands.sh | ||
334 | } | 341 | } |