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.

Signed-off-by: Ross Burton <[email protected]>
---
 meta/recipes-devtools/quilt/quilt.inc       | 13 ++++++++++++-
 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 f7ff958103e..01fc22e9963 100644
--- a/meta/recipes-devtools/quilt/quilt.inc
+++ b/meta/recipes-devtools/quilt/quilt.inc
@@ -61,6 +61,9 @@ do_install:append:class-native () {
     touch ${D}${sysconfdir}/quiltrc
 }
 
+# The tests need to run as a non-root user, so pull in the ptest user
+DEPENDS:append:class-target = "${@bb.utils.contains('PTEST_ENABLED', '1', ' 
ptest-runner', '', d)}"
+
 do_install_ptest() {
        install ${WORKDIR}/test.sh ${D}${PTEST_PATH}
     mkdir ${D}${PTEST_PATH}/test
@@ -69,6 +72,14 @@ do_install_ptest() {
     rm -f ${D}${PTEST_PATH}/test/mail.test 
${D}${PTEST_PATH}/test/patch-wrapper.test
 }
 
+# ptest.bbclass currently chowns the ptest directory explicitly, so we need to
+# change permission after that has happened so the ptest user can write a
+# temporary directory.
+do_install_ptest_base:append() {
+    chgrp ptest ${D}${PTEST_PATH}/test
+    chmod g+w ${D}${PTEST_PATH}/test
+}
+
 PACKAGES += "guards guards-doc"
 
 FILES:${PN} = "${sysconfdir} ${datadir}/quilt \
@@ -84,5 +95,5 @@ RDEPENDS:${PN}-ptest += "file sed gawk diffutils findutils ed 
perl \
                          perl-module-filehandle perl-module-getopt-std \
                          perl-module-posix perl-module-file-temp \
                          perl-module-text-parsewords perl-module-overloading \
-                         bash util-linux-getopt \
+                         bash util-linux-getopt ptest-runner \
                         "
diff --git a/meta/recipes-devtools/quilt/quilt/run-ptest 
b/meta/recipes-devtools/quilt/quilt/run-ptest
index 322508cbe25..f35a756d6b4 100755
--- a/meta/recipes-devtools/quilt/quilt/run-ptest
+++ b/meta/recipes-devtools/quilt/quilt/run-ptest
@@ -1,7 +1,3 @@
 #!/bin/sh
 
-/usr/sbin/adduser --disabled-password --gecos "" quilttest
-
-su -c ./test.sh quilttest
-
-/usr/sbin/deluser quilttest
+su -c ./test.sh ptest
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#177793): 
https://lists.openembedded.org/g/openembedded-core/message/177793
Mute This Topic: https://lists.openembedded.org/mt/97265502/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to