Message ID | 9dc02c0f89156ed4ce47350f90d44cb05e7d3897.1700746611.git.pidge@baylibre.com |
---|---|
State | New |
Headers | show |
Series | useradd improvements | expand |
On Thu, 2023-11-23 at 13:49 +0000, Eilís 'pidge' Ní Fhlannagáin wrote: > This commit tests for > https://bugzilla.yoctoproject.org/show_bug.cgi?id=13419 > https://bugzilla.yoctoproject.org/show_bug.cgi?id=14961 > > Fixes for these are in following commits. > > Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> > --- > .../selftest-users/creategroup1.bb | 32 +++++++++++++++++++ > .../selftest-users/creategroup2.bb | 32 +++++++++++++++++++ > .../selftest-users/useraddbadtask.bb | 20 ++++++++++++ > .../lib/oeqa/selftest/cases/usergrouptests.py | 32 +++++++++++++++++++ > 4 files changed, 116 insertions(+) > create mode 100644 meta-selftest/recipes-test/selftest-users/creategroup1.bb > create mode 100644 meta-selftest/recipes-test/selftest-users/creategroup2.bb > create mode 100644 meta-selftest/recipes-test/selftest-users/useraddbadtask.bb > create mode 100644 meta/lib/oeqa/selftest/cases/usergrouptests.py > > diff --git a/meta-selftest/recipes-test/selftest-users/creategroup1.bb b/meta-selftest/recipes-test/selftest-users/creategroup1.bb > new file mode 100644 > index 00000000000..2b0c443858c > --- /dev/null > +++ b/meta-selftest/recipes-test/selftest-users/creategroup1.bb > @@ -0,0 +1,32 @@ > +SUMMARY = "creategroup pt 1" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" > + > +LICENSE = "MIT" > + > +DEPENDS:append = "coreutils-native" > + > +S = "${WORKDIR}" > + > +inherit useradd allarch > + > +USERADD_PACKAGES = "${PN}" > +USERADD_PARAM:${PN} = "-u 5555 --gid grouptest gt1" > +GROUPADD_PARAM:${PN} = "-r grouptest" > + > +TESTDIR = "${D}${sysconfdir}/creategroup" > + > +do_install() { > + install -d ${TESTDIR} > + install -d ${TESTDIR}/dir > + touch ${TESTDIR}/file > + ln -s ./file ${TESTDIR}/symlink > + install -d ${TESTDIR}/fifotest > + mkfifo ${TESTDIR}/fifotest/fifo > + which chown > + chown gt1:grouptest ${TESTDIR}/file > + chown -R gt1:grouptest ${TESTDIR}/dir > + chown -h gt1:grouptest ${TESTDIR}/symlink > + chown -R gt1:grouptest ${TESTDIR}/fifotest > +} > + > +FILES:${PN} = "${sysconfdir}/creategroup/*" > diff --git a/meta-selftest/recipes-test/selftest-users/creategroup2.bb b/meta-selftest/recipes-test/selftest-users/creategroup2.bb > new file mode 100644 > index 00000000000..6f25592c09f > --- /dev/null > +++ b/meta-selftest/recipes-test/selftest-users/creategroup2.bb > @@ -0,0 +1,32 @@ > +SUMMARY = "creategroup pt 2" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" > + > +LICENSE = "MIT" > + > +DEPENDS:append = "coreutils-native creategroup1" > + > +S = "${WORKDIR}" > + > +inherit useradd allarch > + > +USERADD_PACKAGES = "${PN}" > +USERADD_PARAM:${PN} = "-u 5556 --gid grouptest gt2" > + > +TESTDIR = "${D}${sysconfdir}/creategroup" > + > +do_install() { > + install -d ${TESTDIR} > + install -d ${TESTDIR}/dir > + touch ${TESTDIR}/file > + ln -s ./file ${TESTDIR}/symlink > + install -d ${TESTDIR}/fifotest > + mkfifo ${TESTDIR}/fifotest/fifo > + > + chown gt2:grouptest ${TESTDIR}/file > + chown -R gt2:grouptest ${TESTDIR}/dir > + chown -h gt2:grouptest ${TESTDIR}/symlink > + chown -R gt2:grouptest ${TESTDIR}/fifotest > +} > + > +FILES:${PN} = "${sysconfdir}/creategroup/*" > + > diff --git a/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb b/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb > new file mode 100644 > index 00000000000..99e04a80b34 > --- /dev/null > +++ b/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb > @@ -0,0 +1,20 @@ > +SUMMARY = "UserAddBadTask" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" > + > +LICENSE = "MIT" > + > +DEPENDS:append = "coreutils-native" > + > +S = "${WORKDIR}" > + > +inherit useradd allarch > + > +USERADD_PACKAGES = "${PN}" > +USERADD_PARAM:${PN} = "-u 5555 --gid groupaddtask useraddtask" > +GROUPADD_PARAM:${PN} = "-r groupaddtask" > + > +do_badthingshappen() { > + echo "foo" > +} > + > +addtask badthingshappen after do_populate_sysroot before do_package > diff --git a/meta/lib/oeqa/selftest/cases/usergrouptests.py b/meta/lib/oeqa/selftest/cases/usergrouptests.py > new file mode 100644 > index 00000000000..14f7a0beab0 > --- /dev/null > +++ b/meta/lib/oeqa/selftest/cases/usergrouptests.py > @@ -0,0 +1,32 @@ > +# > +# Copyright OpenEmbedded Contributors > +# > +# SPDX-License-Identifier: MIT > +# > + > +from oeqa.selftest.case import OESelftestTestCase > +from oeqa.utils.commands import bitbake, get_bb_var > +import bb.utils > +import os > + > +class UserGroupTests(OESelftestTestCase): > + def test_group_from_dep_package(self): > + self.logger.info("Building creategroup2") > + self.logger.info("Cleaning sstate for creategroup1 and creategroup2") > + bitbake(' creategroup1 creategroup2 -f -c cleansstate') Unfortunately this test isn't safe for a shared sstate cache like we have on the autobuilder since we should never use cleansstate there without special handling (isolated cache). You would also never need -f with clean*. Instead you could do something like a "bitbake creategroup2 -C fetch" if you always want it to rebuild. Cheers, Richard
diff --git a/meta-selftest/recipes-test/selftest-users/creategroup1.bb b/meta-selftest/recipes-test/selftest-users/creategroup1.bb new file mode 100644 index 00000000000..2b0c443858c --- /dev/null +++ b/meta-selftest/recipes-test/selftest-users/creategroup1.bb @@ -0,0 +1,32 @@ +SUMMARY = "creategroup pt 1" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +LICENSE = "MIT" + +DEPENDS:append = "coreutils-native" + +S = "${WORKDIR}" + +inherit useradd allarch + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "-u 5555 --gid grouptest gt1" +GROUPADD_PARAM:${PN} = "-r grouptest" + +TESTDIR = "${D}${sysconfdir}/creategroup" + +do_install() { + install -d ${TESTDIR} + install -d ${TESTDIR}/dir + touch ${TESTDIR}/file + ln -s ./file ${TESTDIR}/symlink + install -d ${TESTDIR}/fifotest + mkfifo ${TESTDIR}/fifotest/fifo + which chown + chown gt1:grouptest ${TESTDIR}/file + chown -R gt1:grouptest ${TESTDIR}/dir + chown -h gt1:grouptest ${TESTDIR}/symlink + chown -R gt1:grouptest ${TESTDIR}/fifotest +} + +FILES:${PN} = "${sysconfdir}/creategroup/*" diff --git a/meta-selftest/recipes-test/selftest-users/creategroup2.bb b/meta-selftest/recipes-test/selftest-users/creategroup2.bb new file mode 100644 index 00000000000..6f25592c09f --- /dev/null +++ b/meta-selftest/recipes-test/selftest-users/creategroup2.bb @@ -0,0 +1,32 @@ +SUMMARY = "creategroup pt 2" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +LICENSE = "MIT" + +DEPENDS:append = "coreutils-native creategroup1" + +S = "${WORKDIR}" + +inherit useradd allarch + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "-u 5556 --gid grouptest gt2" + +TESTDIR = "${D}${sysconfdir}/creategroup" + +do_install() { + install -d ${TESTDIR} + install -d ${TESTDIR}/dir + touch ${TESTDIR}/file + ln -s ./file ${TESTDIR}/symlink + install -d ${TESTDIR}/fifotest + mkfifo ${TESTDIR}/fifotest/fifo + + chown gt2:grouptest ${TESTDIR}/file + chown -R gt2:grouptest ${TESTDIR}/dir + chown -h gt2:grouptest ${TESTDIR}/symlink + chown -R gt2:grouptest ${TESTDIR}/fifotest +} + +FILES:${PN} = "${sysconfdir}/creategroup/*" + diff --git a/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb b/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb new file mode 100644 index 00000000000..99e04a80b34 --- /dev/null +++ b/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb @@ -0,0 +1,20 @@ +SUMMARY = "UserAddBadTask" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +LICENSE = "MIT" + +DEPENDS:append = "coreutils-native" + +S = "${WORKDIR}" + +inherit useradd allarch + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "-u 5555 --gid groupaddtask useraddtask" +GROUPADD_PARAM:${PN} = "-r groupaddtask" + +do_badthingshappen() { + echo "foo" +} + +addtask badthingshappen after do_populate_sysroot before do_package diff --git a/meta/lib/oeqa/selftest/cases/usergrouptests.py b/meta/lib/oeqa/selftest/cases/usergrouptests.py new file mode 100644 index 00000000000..14f7a0beab0 --- /dev/null +++ b/meta/lib/oeqa/selftest/cases/usergrouptests.py @@ -0,0 +1,32 @@ +# +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# + +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var +import bb.utils +import os + +class UserGroupTests(OESelftestTestCase): + def test_group_from_dep_package(self): + self.logger.info("Building creategroup2") + self.logger.info("Cleaning sstate for creategroup1 and creategroup2") + bitbake(' creategroup1 creategroup2 -f -c cleansstate') + self.logger.info("Building creategroup2") + bitbake(' creategroup2') + self.logger.info("Wiping out TMPDIR") + tmpdir = get_bb_var('TMPDIR') + if os.path.exists(tmpdir): + bb.utils.remove(tmpdir, recurse=True) + self.logger.info("Packaging creategroup2") + self.assertTrue(bitbake(' creategroup2 -c package')) + + def test_add_task_between_p_sysroot_and_package(self): + self.logger.info("Cleaning sstate for useraddbadtask") + bitbake(' useraddbadtask -f -c cleansstate') + self.logger.info("Building useraddbadtask") + # This is expected to fail due to bug #14961 + self.assertTrue(bitbake(' useraddbadtask')) +
This commit tests for https://bugzilla.yoctoproject.org/show_bug.cgi?id=13419 https://bugzilla.yoctoproject.org/show_bug.cgi?id=14961 Fixes for these are in following commits. Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> --- .../selftest-users/creategroup1.bb | 32 +++++++++++++++++++ .../selftest-users/creategroup2.bb | 32 +++++++++++++++++++ .../selftest-users/useraddbadtask.bb | 20 ++++++++++++ .../lib/oeqa/selftest/cases/usergrouptests.py | 32 +++++++++++++++++++ 4 files changed, 116 insertions(+) create mode 100644 meta-selftest/recipes-test/selftest-users/creategroup1.bb create mode 100644 meta-selftest/recipes-test/selftest-users/creategroup2.bb create mode 100644 meta-selftest/recipes-test/selftest-users/useraddbadtask.bb create mode 100644 meta/lib/oeqa/selftest/cases/usergrouptests.py