diff options
author | Ross Burton <ross.burton@arm.com> | 2023-02-27 13:13:03 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-02-27 22:53:56 +0000 |
commit | ea4c56e2e883b904380bc34e9202436322f41bf1 (patch) | |
tree | 21423feb8e211cec84b7d9a07c275908e923f65e /meta/recipes-devtools/quilt | |
parent | 598fafb89ed358e01e155eefa7c6648b96fb5397 (diff) | |
download | poky-ea4c56e2e883b904380bc34e9202436322f41bf1.tar.gz |
quilt: run tests as ptest user, and let that user write into the tests
The tests need to run as a non-root user, but that user also needs to be
able to write into the tests directory to create the work directories.
Use the new ptest user that ptest-runner creates to avoid having to add
a new user, and ensure that the test/ directory is owned by the ptest
group and that group has write access.
This solves the ptest regression where since oe-core 9a287b4 no quilt
tests were actually running.
A better solution would be to allow the tests to create a work directory
in another directory, but that would need work upstream which can happen
later.
(From OE-Core rev: 70dc9c114283cde18771287fb17fcebc537e7387)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/quilt')
-rw-r--r-- | meta/recipes-devtools/quilt/quilt.inc | 13 | ||||
-rwxr-xr-x | meta/recipes-devtools/quilt/quilt/run-ptest | 6 |
2 files changed, 13 insertions, 6 deletions
diff --git a/meta/recipes-devtools/quilt/quilt.inc b/meta/recipes-devtools/quilt/quilt.inc index f7ff958103..01fc22e996 100644 --- a/meta/recipes-devtools/quilt/quilt.inc +++ b/meta/recipes-devtools/quilt/quilt.inc | |||
@@ -61,6 +61,9 @@ do_install:append:class-native () { | |||
61 | touch ${D}${sysconfdir}/quiltrc | 61 | touch ${D}${sysconfdir}/quiltrc |
62 | } | 62 | } |
63 | 63 | ||
64 | # The tests need to run as a non-root user, so pull in the ptest user | ||
65 | DEPENDS:append:class-target = "${@bb.utils.contains('PTEST_ENABLED', '1', ' ptest-runner', '', d)}" | ||
66 | |||
64 | do_install_ptest() { | 67 | do_install_ptest() { |
65 | install ${WORKDIR}/test.sh ${D}${PTEST_PATH} | 68 | install ${WORKDIR}/test.sh ${D}${PTEST_PATH} |
66 | mkdir ${D}${PTEST_PATH}/test | 69 | mkdir ${D}${PTEST_PATH}/test |
@@ -69,6 +72,14 @@ do_install_ptest() { | |||
69 | rm -f ${D}${PTEST_PATH}/test/mail.test ${D}${PTEST_PATH}/test/patch-wrapper.test | 72 | rm -f ${D}${PTEST_PATH}/test/mail.test ${D}${PTEST_PATH}/test/patch-wrapper.test |
70 | } | 73 | } |
71 | 74 | ||
75 | # ptest.bbclass currently chowns the ptest directory explicitly, so we need to | ||
76 | # change permission after that has happened so the ptest user can write a | ||
77 | # temporary directory. | ||
78 | do_install_ptest_base:append() { | ||
79 | chgrp ptest ${D}${PTEST_PATH}/test | ||
80 | chmod g+w ${D}${PTEST_PATH}/test | ||
81 | } | ||
82 | |||
72 | PACKAGES += "guards guards-doc" | 83 | PACKAGES += "guards guards-doc" |
73 | 84 | ||
74 | FILES:${PN} = "${sysconfdir} ${datadir}/quilt \ | 85 | FILES:${PN} = "${sysconfdir} ${datadir}/quilt \ |
@@ -84,5 +95,5 @@ RDEPENDS:${PN}-ptest += "file sed gawk diffutils findutils ed perl \ | |||
84 | perl-module-filehandle perl-module-getopt-std \ | 95 | perl-module-filehandle perl-module-getopt-std \ |
85 | perl-module-posix perl-module-file-temp \ | 96 | perl-module-posix perl-module-file-temp \ |
86 | perl-module-text-parsewords perl-module-overloading \ | 97 | perl-module-text-parsewords perl-module-overloading \ |
87 | bash util-linux-getopt \ | 98 | bash util-linux-getopt ptest-runner \ |
88 | " | 99 | " |
diff --git a/meta/recipes-devtools/quilt/quilt/run-ptest b/meta/recipes-devtools/quilt/quilt/run-ptest index 322508cbe2..f35a756d6b 100755 --- a/meta/recipes-devtools/quilt/quilt/run-ptest +++ b/meta/recipes-devtools/quilt/quilt/run-ptest | |||
@@ -1,7 +1,3 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | /usr/sbin/adduser --disabled-password --gecos "" quilttest | 3 | su -c ./test.sh ptest |
4 | |||
5 | su -c ./test.sh quilttest | ||
6 | |||
7 | /usr/sbin/deluser quilttest | ||