* [PATCHv2 0/4] wic: Further enhance UUID / fstab support @ 2017-11-17 16:08 Tom Rini 2017-11-17 16:08 ` [PATCHv2 1/4] wic: kparser.py: Check for SquashFS and use-uuid Tom Rini ` (4 more replies) 0 siblings, 5 replies; 14+ messages in thread From: Tom Rini @ 2017-11-17 16:08 UTC (permalink / raw) To: openembedded-core Hey all, So, per Ed's feedback on my first series, I went and spent some time trying to figure out how to have wic know what the UUID would be when updating the fstab. It turns out the easiest answer here is to have WIC make the UUID. Per Otavio's concern last time, I also make sure that the filesystem UUID can be passed in, for reproducibility. One thing to keep in mind here is that FAT filesystem UUIDs are a bit funny to deal with as mkfs.vfat / mkdosfs / etc want to be given a 32bit hexadecimal value. But when we talk mount, it must be split and it must be in uppercase. To make the rest of the code easier I'm encoding the '0x' portion into part.fsuuid rather than doing "-i 0x%s" in a bunch of places. While preparing all of this, I found a few minor things such as we did not test for squashfs and --use-uuid (not supported) and an incorrect comment around the btrfs support. Since v1, I've added a testcase into wic.Wic.test_qemu for a UUID mount and the UUID that we've given. I think this is cleaner than adding a python function to make a wks file just for this task. -- Tom ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCHv2 1/4] wic: kparser.py: Check for SquashFS and use-uuid 2017-11-17 16:08 [PATCHv2 0/4] wic: Further enhance UUID / fstab support Tom Rini @ 2017-11-17 16:08 ` Tom Rini 2017-11-17 16:08 ` [PATCHv2 2/4] wic: partition.py: Update comments slightly Tom Rini ` (3 subsequent siblings) 4 siblings, 0 replies; 14+ messages in thread From: Tom Rini @ 2017-11-17 16:08 UTC (permalink / raw) To: openembedded-core The SquashFS filesystem does not support UUIDs so make this combination be an error. Signed-off-by: Tom Rini <trini@konsulko.com> --- scripts/lib/wic/ksparser.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py index 7850e81d2f37..4fb6868531df 100644 --- a/scripts/lib/wic/ksparser.py +++ b/scripts/lib/wic/ksparser.py @@ -195,6 +195,11 @@ class KickStart(): raise KickStartError('%s:%d: %s' % \ (confpath, lineno, err)) if line.startswith('part'): + # SquashFS does not support UUID + if parsed.fstype == 'squashfs' and parsed.use_uuid: + err = "%s:%d: SquashFS does not support UUID" \ + % (confpath, lineno) + raise KickStartError(err) # using ArgumentParser one cannot easily tell if option # was passed as argument, if said option has a default # value; --overhead-factor/--extra-space cannot be used -- 2.7.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv2 2/4] wic: partition.py: Update comments slightly 2017-11-17 16:08 [PATCHv2 0/4] wic: Further enhance UUID / fstab support Tom Rini 2017-11-17 16:08 ` [PATCHv2 1/4] wic: kparser.py: Check for SquashFS and use-uuid Tom Rini @ 2017-11-17 16:08 ` Tom Rini 2017-11-17 16:08 ` [PATCHv2 3/4] wic: Introduce --fsuuid and have --use-uuid make use of UUID too Tom Rini ` (2 subsequent siblings) 4 siblings, 0 replies; 14+ messages in thread From: Tom Rini @ 2017-11-17 16:08 UTC (permalink / raw) To: openembedded-core First, we support squashfs as root, so mention that. Second, the btrfs rootfs creation function had a copy/paste of the previous function comment, remove the irrelevant line. Signed-off-by: Tom Rini <trini@konsulko.com> --- scripts/lib/wic/partition.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py index 66e61ba70c93..87312383378a 100644 --- a/scripts/lib/wic/partition.py +++ b/scripts/lib/wic/partition.py @@ -202,7 +202,7 @@ class Partition(): Prepare content for a rootfs partition i.e. create a partition and fill it from a /rootfs dir. - Currently handles ext2/3/4, btrfs and vfat. + Currently handles ext2/3/4, btrfs, vfat and squashfs. """ p_prefix = os.environ.get("PSEUDO_PREFIX", "%s/usr" % native_sysroot) p_localstatedir = os.environ.get("PSEUDO_LOCALSTATEDIR", @@ -275,8 +275,6 @@ class Partition(): native_sysroot, pseudo): """ Prepare content for a btrfs rootfs partition. - - Currently handles ext2/3/4 and btrfs. """ du_cmd = "du -ks %s" % rootfs_dir out = exec_cmd(du_cmd) -- 2.7.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv2 3/4] wic: Introduce --fsuuid and have --use-uuid make use of UUID too 2017-11-17 16:08 [PATCHv2 0/4] wic: Further enhance UUID / fstab support Tom Rini 2017-11-17 16:08 ` [PATCHv2 1/4] wic: kparser.py: Check for SquashFS and use-uuid Tom Rini 2017-11-17 16:08 ` [PATCHv2 2/4] wic: partition.py: Update comments slightly Tom Rini @ 2017-11-17 16:08 ` Tom Rini 2017-11-17 16:08 ` [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid Tom Rini 2017-11-22 8:39 ` [PATCHv2 0/4] wic: Further enhance UUID / fstab support Ed Bartosh 4 siblings, 0 replies; 14+ messages in thread From: Tom Rini @ 2017-11-17 16:08 UTC (permalink / raw) To: openembedded-core First, allow for wic to be given a filesystem UUID to be used when creating a filesystem. When not provided, wic will generate the UUID to be used. Next, when --use-uuid is passed, we update the fstab to mount things via UUID (and if not found, then use PARTUUID) as UUID is more portable. Signed-off-by: Tom Rini <trini@konsulko.com> --- scripts/lib/wic/help.py | 10 +++++++- scripts/lib/wic/ksparser.py | 1 + scripts/lib/wic/partition.py | 32 +++++++++++++----------- scripts/lib/wic/plugins/imager/direct.py | 17 +++++++++++-- scripts/lib/wic/plugins/source/bootimg-efi.py | 3 ++- scripts/lib/wic/plugins/source/bootimg-pcbios.py | 3 ++- 6 files changed, 47 insertions(+), 19 deletions(-) diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py index 2ac45e052ebe..bf658b94e34f 100644 --- a/scripts/lib/wic/help.py +++ b/scripts/lib/wic/help.py @@ -863,7 +863,10 @@ DESCRIPTION This is achieved by wic adding entries to the fstab during image generation. In order for a valid fstab to be generated one of the --ondrive, --ondisk or --use-uuid partition options must be used for - each partition that specifies a mountpoint. + each partition that specifies a mountpoint. Note that with --use-uuid + and non-root <mountpoint>, including swap, the mount program must + understand the PARTUUID syntax. This currently excludes the busybox + versions of these applications. The following are supported 'part' options: @@ -986,6 +989,11 @@ DESCRIPTION in bootloader configuration before running wic. In this case .wks file can be generated or modified to set preconfigured parition UUID using this option. + --fsuuid: This option is specific to wic. It specifies filesystem UUID. + It's useful if preconfigured filesystem UUID is added to kernel command line + in bootloader configuration before running wic. In this case .wks file can + be generated or modified to set preconfigured filesystem UUID using this option. + --system-id: This option is specific to wic. It specifies partition system id. It's useful for the harware that requires non-default partition system ids. The parameter in one byte long hex number either with 0x prefix or without it. diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py index 4fb6868531df..e590b2fe3c0d 100644 --- a/scripts/lib/wic/ksparser.py +++ b/scripts/lib/wic/ksparser.py @@ -161,6 +161,7 @@ class KickStart(): part.add_argument('--system-id', type=systemidtype) part.add_argument('--use-uuid', action='store_true') part.add_argument('--uuid') + part.add_argument('--fsuuid') bootloader = subparsers.add_parser('bootloader') bootloader.add_argument('--append') diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py index 87312383378a..c0b67d829f80 100644 --- a/scripts/lib/wic/partition.py +++ b/scripts/lib/wic/partition.py @@ -26,6 +26,7 @@ import logging import os +import uuid from wic import WicError from wic.misc import exec_cmd, exec_native_cmd, get_bitbake_var @@ -61,6 +62,7 @@ class Partition(): self.system_id = args.system_id self.use_uuid = args.use_uuid self.uuid = args.uuid + self.fsuuid = args.fsuuid self.lineno = lineno self.source_file = "" @@ -264,8 +266,8 @@ class Partition(): if self.label: label_str = "-L %s" % self.label - mkfs_cmd = "mkfs.%s %s %s %s -d %s" % \ - (self.fstype, extraopts, rootfs, label_str, rootfs_dir) + mkfs_cmd = "mkfs.%s %s %s %s -U %s -d %s" % \ + (self.fstype, extraopts, rootfs, label_str, self.fsuuid, rootfs_dir) exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo) mkfs_cmd = "fsck.%s -pvfD %s" % (self.fstype, rootfs) @@ -289,9 +291,9 @@ class Partition(): if self.label: label_str = "-L %s" % self.label - mkfs_cmd = "mkfs.%s -b %d -r %s %s %s %s" % \ + mkfs_cmd = "mkfs.%s -b %d -r %s %s %s -U %s %s" % \ (self.fstype, rootfs_size * 1024, rootfs_dir, label_str, - self.mkfs_extraopts, rootfs) + self.mkfs_extraopts, self.fsuuid, rootfs) exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo) def prepare_rootfs_msdos(self, rootfs, oe_builddir, rootfs_dir, @@ -315,8 +317,9 @@ class Partition(): extraopts = self.mkfs_extraopts or '-S 512' - dosfs_cmd = "mkdosfs %s %s %s -C %s %d" % \ - (label_str, size_str, extraopts, rootfs, rootfs_size) + dosfs_cmd = "mkdosfs %s -i %s %s %s -C %s %d" % \ + (label_str, self.fsuuid, size_str, extraopts, rootfs, + rootfs_size) exec_native_cmd(dosfs_cmd, native_sysroot) mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (rootfs, rootfs_dir) @@ -352,8 +355,8 @@ class Partition(): if self.label: label_str = "-L %s" % self.label - mkfs_cmd = "mkfs.%s -F %s %s %s" % \ - (self.fstype, extraopts, label_str, rootfs) + mkfs_cmd = "mkfs.%s -F %s %s -U %s %s" % \ + (self.fstype, extraopts, label_str, self.fsuuid, rootfs) exec_native_cmd(mkfs_cmd, native_sysroot) def prepare_empty_partition_btrfs(self, rootfs, oe_builddir, @@ -369,8 +372,8 @@ class Partition(): if self.label: label_str = "-L %s" % self.label - mkfs_cmd = "mkfs.%s -b %d %s %s %s" % \ - (self.fstype, self.size * 1024, label_str, + mkfs_cmd = "mkfs.%s -b %d %s -U %s %s %s" % \ + (self.fstype, self.size * 1024, label_str, self.fsuuid, self.mkfs_extraopts, rootfs) exec_native_cmd(mkfs_cmd, native_sysroot) @@ -391,8 +394,9 @@ class Partition(): extraopts = self.mkfs_extraopts or '-S 512' - dosfs_cmd = "mkdosfs %s %s %s -C %s %d" % \ - (label_str, extraopts, size_str, rootfs, blocks) + dosfs_cmd = "mkdosfs %s -i %s %s %s -C %s %d" % \ + (label_str, self.fsuuid, extraopts, size_str, rootfs, + blocks) exec_native_cmd(dosfs_cmd, native_sysroot) @@ -410,9 +414,9 @@ class Partition(): with open(path, 'w') as sparse: os.ftruncate(sparse.fileno(), self.size * 1024) - import uuid label_str = "" if self.label: label_str = "-L %s" % self.label - mkswap_cmd = "mkswap %s -U %s %s" % (label_str, str(uuid.uuid1()), path) + + mkswap_cmd = "mkswap %s -U %s %s" % (label_str, self.fsuuid, path) exec_native_cmd(mkswap_cmd, native_sysroot) diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py index da1c061063d2..71c0b1c82bf3 100644 --- a/scripts/lib/wic/plugins/imager/direct.py +++ b/scripts/lib/wic/plugins/imager/direct.py @@ -141,7 +141,15 @@ class DirectPlugin(ImagerPlugin): continue if part.use_uuid: - device_name = "PARTUUID=%s" % part.uuid + if part.fsuuid: + # FAT UUID is different from others + if len(part.fsuuid) == 10: + device_name = "UUID=%s-%s" % \ + (part.fsuuid[2:6], part.fsuuid[6:]) + else: + device_name = "UUID=%s" % part.fsuuid + else: + device_name = "PARTUUID=%s" % part.uuid else: # mmc device partitions are named mmcblk0p1, mmcblk0p2.. prefix = 'p' if part.disk.startswith('mmcblk') else '' @@ -334,13 +342,18 @@ class PartitionedImage(): continue part.realnum = realnum - # generate parition UUIDs + # generate parition and filesystem UUIDs for part in self.partitions: if not part.uuid and part.use_uuid: if self.ptable_format == 'gpt': part.uuid = str(uuid.uuid4()) else: # msdos partition table part.uuid = '%08x-%02d' % (self.identifier, part.realnum) + if not part.fsuuid: + if part.fstype == 'vfat' or part.fstype == 'msdos': + part.fsuuid = '0x' + str(uuid.uuid4())[:8].upper() + else: + part.fsuuid = str(uuid.uuid4()) def prepare(self, imager): """Prepare an image. Call prepare method of all image partitions.""" diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py index 4c4f36a32f56..beb74d7a7121 100644 --- a/scripts/lib/wic/plugins/source/bootimg-efi.py +++ b/scripts/lib/wic/plugins/source/bootimg-efi.py @@ -240,7 +240,8 @@ class BootimgEFIPlugin(SourcePlugin): # dosfs image, created by mkdosfs bootimg = "%s/boot.img" % cr_workdir - dosfs_cmd = "mkdosfs -n efi -C %s %d" % (bootimg, blocks) + dosfs_cmd = "mkdosfs -n efi -i %s -C %s %d" % \ + (part.fsuuid, bootimg, blocks) exec_native_cmd(dosfs_cmd, native_sysroot) mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir) diff --git a/scripts/lib/wic/plugins/source/bootimg-pcbios.py b/scripts/lib/wic/plugins/source/bootimg-pcbios.py index 56da468fb5cd..d599112dd759 100644 --- a/scripts/lib/wic/plugins/source/bootimg-pcbios.py +++ b/scripts/lib/wic/plugins/source/bootimg-pcbios.py @@ -186,7 +186,8 @@ class BootimgPcbiosPlugin(SourcePlugin): # dosfs image, created by mkdosfs bootimg = "%s/boot%s.img" % (cr_workdir, part.lineno) - dosfs_cmd = "mkdosfs -n boot -S 512 -C %s %d" % (bootimg, blocks) + dosfs_cmd = "mkdosfs -n boot -i %s -S 512 -C %s %d" % \ + (part.fsuuid, bootimg, blocks) exec_native_cmd(dosfs_cmd, native_sysroot) mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir) -- 2.7.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-11-17 16:08 [PATCHv2 0/4] wic: Further enhance UUID / fstab support Tom Rini ` (2 preceding siblings ...) 2017-11-17 16:08 ` [PATCHv2 3/4] wic: Introduce --fsuuid and have --use-uuid make use of UUID too Tom Rini @ 2017-11-17 16:08 ` Tom Rini 2017-11-24 15:28 ` Burton, Ross 2017-11-22 8:39 ` [PATCHv2 0/4] wic: Further enhance UUID / fstab support Ed Bartosh 4 siblings, 1 reply; 14+ messages in thread From: Tom Rini @ 2017-11-17 16:08 UTC (permalink / raw) To: openembedded-core - Add a '/uuid' partition to wic-image-minimal.wks with a known UUID. - In test_qemu, sort our output from checking the output of 'mount' as it may not be stable. Also, do not check the exit code as passing any output to cut ensures a 0 exit code. - Check for a 'UUID=' line in /etc/fstab with out expected output. Signed-off-by: Tom Rini <trini@konsulko.com> --- meta-selftest/recipes-test/images/wic-image-minimal.wks | 1 + meta/lib/oeqa/selftest/cases/wic.py | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/meta-selftest/recipes-test/images/wic-image-minimal.wks b/meta-selftest/recipes-test/images/wic-image-minimal.wks index 9410b684bed8..2fb34c4ef40a 100644 --- a/meta-selftest/recipes-test/images/wic-image-minimal.wks +++ b/meta-selftest/recipes-test/images/wic-image-minimal.wks @@ -5,5 +5,6 @@ part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024 part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid part /mnt --source rootfs --rootfs-dir=wic-image-minimal --ondisk sda --fstype=ext4 --label core --align 1024 +part /uuid --source rootfs --rootfs-dir=wic-image-minimal --ondisk sda --fstype=ext4 --label uuid-test --align 1024 --use-uuid --fsuuid 2c71ef06-a81d-4735-9d3a-379b69c6bdba bootloader --ptable gpt --timeout=0 --append="rootwait console=tty0" diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py index 651d575dc3b2..969ee1054d8b 100644 --- a/meta/lib/oeqa/selftest/cases/wic.py +++ b/meta/lib/oeqa/selftest/cases/wic.py @@ -633,11 +633,14 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r self.assertEqual(0, bitbake('wic-image-minimal').status) self.remove_config(config) - with runqemu('wic-image-minimal', ssh=False) as qemu: - cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' '" + with runqemu('wic-image-minimal', ssh=False, runqemuparams="nographic") as qemu: + cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' ' | sort" + status, output = qemu.run_serial(cmd) + self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid') + cmd = "grep UUID= /etc/fstab" status, output = qemu.run_serial(cmd) self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) - self.assertEqual(output, '/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /mnt') + self.assertEqual(output, 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/uuid\text4\tdefaults\t0\t0') @only_for_arch(['i586', 'i686', 'x86_64']) @OETestID(1852) -- 2.7.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-11-17 16:08 ` [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid Tom Rini @ 2017-11-24 15:28 ` Burton, Ross 2017-11-24 15:36 ` Tom Rini 0 siblings, 1 reply; 14+ messages in thread From: Burton, Ross @ 2017-11-24 15:28 UTC (permalink / raw) To: Tom Rini; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 4344 bytes --] Still fails on the autobuilder though: 2017-11-24 03:33:51,694 - oe-selftest - INFO - FAIL: test_qemu (wic.Wic) 2017-11-24 03:33:51,694 - oe-selftest - INFO - ---------------------------------------------------------------------- 2017-11-24 03:33:51,694 - oe-selftest - INFO - Traceback (most recent call last): File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/core/decorator/__init__.py", line 32, in wrapped_f return func(*args, **kwargs) File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", line 58, in wrapped_f return func(*args, **kwargs) File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", line 639, in test_qemu self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid') AssertionError: '/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /mnt' != '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid' - /dev/root / /dev/sda1 /boot + /dev/sda2 / - /dev/sda3 /mnt+ /dev/sda3 /mnt ? ++ + /dev/sda4 /uuid On 17 November 2017 at 16:08, Tom Rini <trini@konsulko.com> wrote: > > - Add a '/uuid' partition to wic-image-minimal.wks with a known UUID. > - In test_qemu, sort our output from checking the output of 'mount' as > it may not be stable. Also, do not check the exit code as passing any > output to cut ensures a 0 exit code. > - Check for a 'UUID=' line in /etc/fstab with out expected output. > > Signed-off-by: Tom Rini <trini@konsulko.com> > --- > meta-selftest/recipes-test/images/wic-image-minimal.wks | 1 + > meta/lib/oeqa/selftest/cases/wic.py | 9 ++++++--- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/meta-selftest/recipes-test/images/wic-image-minimal.wks b/meta-selftest/recipes-test/images/wic-image-minimal.wks > index 9410b684bed8..2fb34c4ef40a 100644 > --- a/meta-selftest/recipes-test/images/wic-image-minimal.wks > +++ b/meta-selftest/recipes-test/images/wic-image-minimal.wks > @@ -5,5 +5,6 @@ > part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024 > part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid > part /mnt --source rootfs --rootfs-dir=wic-image-minimal --ondisk sda --fstype=ext4 --label core --align 1024 > +part /uuid --source rootfs --rootfs-dir=wic-image-minimal --ondisk sda --fstype=ext4 --label uuid-test --align 1024 --use-uuid --fsuuid 2c71ef06-a81d-4735-9d3a-379b69c6bdba > > bootloader --ptable gpt --timeout=0 --append="rootwait console=tty0" > diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py > index 651d575dc3b2..969ee1054d8b 100644 > --- a/meta/lib/oeqa/selftest/cases/wic.py > +++ b/meta/lib/oeqa/selftest/cases/wic.py > @@ -633,11 +633,14 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r > self.assertEqual(0, bitbake('wic-image-minimal').status) > self.remove_config(config) > > - with runqemu('wic-image-minimal', ssh=False) as qemu: > - cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' '" > + with runqemu('wic-image-minimal', ssh=False, runqemuparams="nographic") as qemu: > + cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' ' | sort" > + status, output = qemu.run_serial(cmd) > + self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid') > + cmd = "grep UUID= /etc/fstab" > status, output = qemu.run_serial(cmd) > self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) > - self.assertEqual(output, '/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /mnt') > + self.assertEqual(output, 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/uuid\text4\tdefaults\t0\t0') > > @only_for_arch(['i586', 'i686', 'x86_64']) > @OETestID(1852) > -- > 2.7.4 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core [-- Attachment #2: Type: text/html, Size: 5255 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-11-24 15:28 ` Burton, Ross @ 2017-11-24 15:36 ` Tom Rini 2017-11-28 15:55 ` Tom Rini 0 siblings, 1 reply; 14+ messages in thread From: Tom Rini @ 2017-11-24 15:36 UTC (permalink / raw) To: Burton, Ross; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 2908 bytes --] On Fri, Nov 24, 2017 at 03:28:21PM +0000, Burton, Ross wrote: > Still fails on the autobuilder though: > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - FAIL: test_qemu (wic.Wic) > 2017-11-24 03:33:51,694 - oe-selftest - INFO - > ---------------------------------------------------------------------- > 2017-11-24 03:33:51,694 - oe-selftest - INFO - Traceback (most recent call > last): > File > "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/core/decorator/__init__.py", > line 32, in wrapped_f > return func(*args, **kwargs) > File > "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > line 58, in wrapped_f > return func(*args, **kwargs) > File > "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > line 639, in test_qemu > self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 > /mnt\r\n/dev/sda4 /uuid') > AssertionError: '/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /mnt' != > '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid' > - /dev/root / > /dev/sda1 /boot > + /dev/sda2 / > - /dev/sda3 /mnt+ /dev/sda3 /mnt > ? ++ > + /dev/sda4 /uuid Erm, that doesn't make any sense: > > --- a/meta/lib/oeqa/selftest/cases/wic.py > > +++ b/meta/lib/oeqa/selftest/cases/wic.py > > @@ -633,11 +633,14 @@ part /etc --source rootfs --ondisk mmcblk0 > --fstype=ext4 --exclude-path bin/ --r > > self.assertEqual(0, bitbake('wic-image-minimal').status) > > self.remove_config(config) > > > > - with runqemu('wic-image-minimal', ssh=False) as qemu: > > - cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' '" > > + with runqemu('wic-image-minimal', ssh=False, > runqemuparams="nographic") as qemu: ... I'll v2 since disabling graphics was a local thing, oops. > > + cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' ' | sort" > > + status, output = qemu.run_serial(cmd) > > + self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 > /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid') > > + cmd = "grep UUID= /etc/fstab" > > status, output = qemu.run_serial(cmd) > > self.assertEqual(1, status, 'Failed to run command "%s": %s' > % (cmd, output)) > > - self.assertEqual(output, '/dev/root /\r\n/dev/sda1 > /boot\r\n/dev/sda3 /mnt') > > + self.assertEqual(output, > 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/uuid\text4\tdefaults\t0\t0') We no longer want to match the string you've got showing up, and the string you have showing up says that /uuid wasn't mounted either. Can you check the sources in the autobuilder please and make sure the whole series got applied correctly? Thanks! -- Tom [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-11-24 15:36 ` Tom Rini @ 2017-11-28 15:55 ` Tom Rini 2017-12-13 14:40 ` Burton, Ross 0 siblings, 1 reply; 14+ messages in thread From: Tom Rini @ 2017-11-28 15:55 UTC (permalink / raw) To: Burton, Ross; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 3315 bytes --] On Fri, Nov 24, 2017 at 10:36:11AM -0500, Tom Rini wrote: > On Fri, Nov 24, 2017 at 03:28:21PM +0000, Burton, Ross wrote: > > Still fails on the autobuilder though: > > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - FAIL: test_qemu (wic.Wic) > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - > > ---------------------------------------------------------------------- > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - Traceback (most recent call > > last): > > File > > "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/core/decorator/__init__.py", > > line 32, in wrapped_f > > return func(*args, **kwargs) > > File > > "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > > line 58, in wrapped_f > > return func(*args, **kwargs) > > File > > "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > > line 639, in test_qemu > > self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 > > /mnt\r\n/dev/sda4 /uuid') > > AssertionError: '/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /mnt' != > > '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid' > > - /dev/root / > > /dev/sda1 /boot > > + /dev/sda2 / > > - /dev/sda3 /mnt+ /dev/sda3 /mnt > > ? ++ > > + /dev/sda4 /uuid > > Erm, that doesn't make any sense: > > > > --- a/meta/lib/oeqa/selftest/cases/wic.py > > > +++ b/meta/lib/oeqa/selftest/cases/wic.py > > > @@ -633,11 +633,14 @@ part /etc --source rootfs --ondisk mmcblk0 > > --fstype=ext4 --exclude-path bin/ --r > > > self.assertEqual(0, bitbake('wic-image-minimal').status) > > > self.remove_config(config) > > > > > > - with runqemu('wic-image-minimal', ssh=False) as qemu: > > > - cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' '" > > > + with runqemu('wic-image-minimal', ssh=False, > > runqemuparams="nographic") as qemu: > > ... I'll v2 since disabling graphics was a local thing, oops. > > > > + cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' ' | sort" > > > + status, output = qemu.run_serial(cmd) > > > + self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 > > /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid') > > > + cmd = "grep UUID= /etc/fstab" > > > status, output = qemu.run_serial(cmd) > > > self.assertEqual(1, status, 'Failed to run command "%s": %s' > > % (cmd, output)) > > > - self.assertEqual(output, '/dev/root /\r\n/dev/sda1 > > /boot\r\n/dev/sda3 /mnt') > > > + self.assertEqual(output, > > 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/uuid\text4\tdefaults\t0\t0') > > We no longer want to match the string you've got showing up, and the > string you have showing up says that /uuid wasn't mounted either. > > Can you check the sources in the autobuilder please and make sure the > whole series got applied correctly? Thanks! Have you had a chance to look at this? It's really confusing as the test output is basically the wic-minimal-image without the change that's included in this patch having been applied (it's 3 partitions). Thanks! -- Tom [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-11-28 15:55 ` Tom Rini @ 2017-12-13 14:40 ` Burton, Ross 2017-12-14 1:22 ` Tom Rini 2017-12-14 2:45 ` Tom Rini 0 siblings, 2 replies; 14+ messages in thread From: Burton, Ross @ 2017-12-13 14:40 UTC (permalink / raw) To: Tom Rini; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 3762 bytes --] I finally made it break locally, with MACHINE=qemux86 and using sysvinit instead of systemd. Basically, a pristine poky local.conf. I've not dug into it beyond that, or why it passes with systemd. Ross On 28 November 2017 at 15:55, Tom Rini <trini@konsulko.com> wrote: > On Fri, Nov 24, 2017 at 10:36:11AM -0500, Tom Rini wrote: > > On Fri, Nov 24, 2017 at 03:28:21PM +0000, Burton, Ross wrote: > > > Still fails on the autobuilder though: > > > > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - FAIL: test_qemu > (wic.Wic) > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - > > > ---------------------------------------------------------------------- > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - Traceback (most recent > call > > > last): > > > File > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > nightly-oe-selftest/build/meta/lib/oeqa/core/decorator/__init__.py", > > > line 32, in wrapped_f > > > return func(*args, **kwargs) > > > File > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > > > line 58, in wrapped_f > > > return func(*args, **kwargs) > > > File > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > > > line 639, in test_qemu > > > self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 > /\r\n/dev/sda3 > > > /mnt\r\n/dev/sda4 /uuid') > > > AssertionError: '/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /mnt' != > > > '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid' > > > - /dev/root / > > > /dev/sda1 /boot > > > + /dev/sda2 / > > > - /dev/sda3 /mnt+ /dev/sda3 /mnt > > > ? ++ > > > + /dev/sda4 /uuid > > > > Erm, that doesn't make any sense: > > > > > > --- a/meta/lib/oeqa/selftest/cases/wic.py > > > > +++ b/meta/lib/oeqa/selftest/cases/wic.py > > > > @@ -633,11 +633,14 @@ part /etc --source rootfs --ondisk mmcblk0 > > > --fstype=ext4 --exclude-path bin/ --r > > > > self.assertEqual(0, bitbake('wic-image-minimal').status) > > > > self.remove_config(config) > > > > > > > > - with runqemu('wic-image-minimal', ssh=False) as qemu: > > > > - cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' '" > > > > + with runqemu('wic-image-minimal', ssh=False, > > > runqemuparams="nographic") as qemu: > > > > ... I'll v2 since disabling graphics was a local thing, oops. > > > > > > + cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' ' | sort" > > > > + status, output = qemu.run_serial(cmd) > > > > + self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 > > > /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid') > > > > + cmd = "grep UUID= /etc/fstab" > > > > status, output = qemu.run_serial(cmd) > > > > self.assertEqual(1, status, 'Failed to run command > "%s": %s' > > > % (cmd, output)) > > > > - self.assertEqual(output, '/dev/root /\r\n/dev/sda1 > > > /boot\r\n/dev/sda3 /mnt') > > > > + self.assertEqual(output, > > > 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/uuid\text4\ > tdefaults\t0\t0') > > > > We no longer want to match the string you've got showing up, and the > > string you have showing up says that /uuid wasn't mounted either. > > > > Can you check the sources in the autobuilder please and make sure the > > whole series got applied correctly? Thanks! > > Have you had a chance to look at this? It's really confusing as the > test output is basically the wic-minimal-image without the change that's > included in this patch having been applied (it's 3 partitions). Thanks! > > -- > Tom > [-- Attachment #2: Type: text/html, Size: 5110 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-12-13 14:40 ` Burton, Ross @ 2017-12-14 1:22 ` Tom Rini 2017-12-14 2:45 ` Tom Rini 1 sibling, 0 replies; 14+ messages in thread From: Tom Rini @ 2017-12-14 1:22 UTC (permalink / raw) To: Burton, Ross; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 338 bytes --] On Wed, Dec 13, 2017 at 02:40:34PM +0000, Burton, Ross wrote: > I finally made it break locally, with MACHINE=qemux86 and using sysvinit > instead of systemd. Basically, a pristine poky local.conf. I've not dug > into it beyond that, or why it passes with systemd. OK, thanks! I'll see if I can reproduce locally. -- Tom [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-12-13 14:40 ` Burton, Ross 2017-12-14 1:22 ` Tom Rini @ 2017-12-14 2:45 ` Tom Rini 2017-12-14 3:15 ` Tom Rini 1 sibling, 1 reply; 14+ messages in thread From: Tom Rini @ 2017-12-14 2:45 UTC (permalink / raw) To: Burton, Ross, Ed Bartosh; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 4777 bytes --] On Wed, Dec 13, 2017 at 02:40:34PM +0000, Burton, Ross wrote: > I finally made it break locally, with MACHINE=qemux86 and using sysvinit > instead of systemd. Basically, a pristine poky local.conf. I've not dug > into it beyond that, or why it passes with systemd. I found it, and, erm, ugh? Here's what appears to be a systemd vs sysvinit difference. With systemd, if you have an fstab entry and the mount point doesn't exist, it will get made. So an entry of /uuid (a very non-HFS and just made up directory) the mount happens. With sysvinit, no, the mount fails. That's why the test fails. My gut reaction is that no, it's not wic's job to ensure that the underlying filesystems have all mount points and I should just re-do the test to use /mnt instead of /uuid, for the UUID test mount point. > > Ross > > On 28 November 2017 at 15:55, Tom Rini <trini@konsulko.com> wrote: > > > On Fri, Nov 24, 2017 at 10:36:11AM -0500, Tom Rini wrote: > > > On Fri, Nov 24, 2017 at 03:28:21PM +0000, Burton, Ross wrote: > > > > Still fails on the autobuilder though: > > > > > > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - FAIL: test_qemu > > (wic.Wic) > > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - > > > > ---------------------------------------------------------------------- > > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - Traceback (most recent > > call > > > > last): > > > > File > > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > > nightly-oe-selftest/build/meta/lib/oeqa/core/decorator/__init__.py", > > > > line 32, in wrapped_f > > > > return func(*args, **kwargs) > > > > File > > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > > nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > > > > line 58, in wrapped_f > > > > return func(*args, **kwargs) > > > > File > > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > > nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > > > > line 639, in test_qemu > > > > self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 > > /\r\n/dev/sda3 > > > > /mnt\r\n/dev/sda4 /uuid') > > > > AssertionError: '/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /mnt' != > > > > '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid' > > > > - /dev/root / > > > > /dev/sda1 /boot > > > > + /dev/sda2 / > > > > - /dev/sda3 /mnt+ /dev/sda3 /mnt > > > > ? ++ > > > > + /dev/sda4 /uuid > > > > > > Erm, that doesn't make any sense: > > > > > > > > --- a/meta/lib/oeqa/selftest/cases/wic.py > > > > > +++ b/meta/lib/oeqa/selftest/cases/wic.py > > > > > @@ -633,11 +633,14 @@ part /etc --source rootfs --ondisk mmcblk0 > > > > --fstype=ext4 --exclude-path bin/ --r > > > > > self.assertEqual(0, bitbake('wic-image-minimal').status) > > > > > self.remove_config(config) > > > > > > > > > > - with runqemu('wic-image-minimal', ssh=False) as qemu: > > > > > - cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' '" > > > > > + with runqemu('wic-image-minimal', ssh=False, > > > > runqemuparams="nographic") as qemu: > > > > > > ... I'll v2 since disabling graphics was a local thing, oops. > > > > > > > > + cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' ' | sort" > > > > > + status, output = qemu.run_serial(cmd) > > > > > + self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 > > > > /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid') > > > > > + cmd = "grep UUID= /etc/fstab" > > > > > status, output = qemu.run_serial(cmd) > > > > > self.assertEqual(1, status, 'Failed to run command > > "%s": %s' > > > > % (cmd, output)) > > > > > - self.assertEqual(output, '/dev/root /\r\n/dev/sda1 > > > > /boot\r\n/dev/sda3 /mnt') > > > > > + self.assertEqual(output, > > > > 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/uuid\text4\ > > tdefaults\t0\t0') > > > > > > We no longer want to match the string you've got showing up, and the > > > string you have showing up says that /uuid wasn't mounted either. > > > > > > Can you check the sources in the autobuilder please and make sure the > > > whole series got applied correctly? Thanks! > > > > Have you had a chance to look at this? It's really confusing as the > > test output is basically the wic-minimal-image without the change that's > > included in this patch having been applied (it's 3 partitions). Thanks! > > > > -- > > Tom > > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- Tom [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-12-14 2:45 ` Tom Rini @ 2017-12-14 3:15 ` Tom Rini 2018-01-23 22:05 ` Khem Raj 0 siblings, 1 reply; 14+ messages in thread From: Tom Rini @ 2017-12-14 3:15 UTC (permalink / raw) To: Burton, Ross, Ed Bartosh; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 5365 bytes --] On Wed, Dec 13, 2017 at 09:45:13PM -0500, Tom Rini wrote: > On Wed, Dec 13, 2017 at 02:40:34PM +0000, Burton, Ross wrote: > > > I finally made it break locally, with MACHINE=qemux86 and using sysvinit > > instead of systemd. Basically, a pristine poky local.conf. I've not dug > > into it beyond that, or why it passes with systemd. > > I found it, and, erm, ugh? Here's what appears to be a systemd vs > sysvinit difference. With systemd, if you have an fstab entry and the > mount point doesn't exist, it will get made. So an entry of /uuid (a > very non-HFS and just made up directory) the mount happens. With > sysvinit, no, the mount fails. That's why the test fails. > > My gut reaction is that no, it's not wic's job to ensure that the > underlying filesystems have all mount points and I should just re-do the > test to use /mnt instead of /uuid, for the UUID test mount point. And in fact, systemd just can't be used for oe-selftest and have everything expect to pass today. The existing wic.Wic.test_qemu will fail on /dev/root vs /dev/sda2. So I'm going to post a v4 that puts the UUID one into /media, and I've run the tests and they pass atm. Thanks! > > > > > Ross > > > > On 28 November 2017 at 15:55, Tom Rini <trini@konsulko.com> wrote: > > > > > On Fri, Nov 24, 2017 at 10:36:11AM -0500, Tom Rini wrote: > > > > On Fri, Nov 24, 2017 at 03:28:21PM +0000, Burton, Ross wrote: > > > > > Still fails on the autobuilder though: > > > > > > > > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - FAIL: test_qemu > > > (wic.Wic) > > > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - > > > > > ---------------------------------------------------------------------- > > > > > 2017-11-24 03:33:51,694 - oe-selftest - INFO - Traceback (most recent > > > call > > > > > last): > > > > > File > > > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > > > nightly-oe-selftest/build/meta/lib/oeqa/core/decorator/__init__.py", > > > > > line 32, in wrapped_f > > > > > return func(*args, **kwargs) > > > > > File > > > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > > > nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > > > > > line 58, in wrapped_f > > > > > return func(*args, **kwargs) > > > > > File > > > > > "/home/pokybuild/yocto-autobuilder/yocto-worker/ > > > nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/wic.py", > > > > > line 639, in test_qemu > > > > > self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 > > > /\r\n/dev/sda3 > > > > > /mnt\r\n/dev/sda4 /uuid') > > > > > AssertionError: '/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /mnt' != > > > > > '/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid' > > > > > - /dev/root / > > > > > /dev/sda1 /boot > > > > > + /dev/sda2 / > > > > > - /dev/sda3 /mnt+ /dev/sda3 /mnt > > > > > ? ++ > > > > > + /dev/sda4 /uuid > > > > > > > > Erm, that doesn't make any sense: > > > > > > > > > > --- a/meta/lib/oeqa/selftest/cases/wic.py > > > > > > +++ b/meta/lib/oeqa/selftest/cases/wic.py > > > > > > @@ -633,11 +633,14 @@ part /etc --source rootfs --ondisk mmcblk0 > > > > > --fstype=ext4 --exclude-path bin/ --r > > > > > > self.assertEqual(0, bitbake('wic-image-minimal').status) > > > > > > self.remove_config(config) > > > > > > > > > > > > - with runqemu('wic-image-minimal', ssh=False) as qemu: > > > > > > - cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' '" > > > > > > + with runqemu('wic-image-minimal', ssh=False, > > > > > runqemuparams="nographic") as qemu: > > > > > > > > ... I'll v2 since disabling graphics was a local thing, oops. > > > > > > > > > > + cmd = "mount |grep '^/dev/' | cut -f1,3 -d ' ' | sort" > > > > > > + status, output = qemu.run_serial(cmd) > > > > > > + self.assertEqual(output, '/dev/sda1 /boot\r\n/dev/sda2 > > > > > /\r\n/dev/sda3 /mnt\r\n/dev/sda4 /uuid') > > > > > > + cmd = "grep UUID= /etc/fstab" > > > > > > status, output = qemu.run_serial(cmd) > > > > > > self.assertEqual(1, status, 'Failed to run command > > > "%s": %s' > > > > > % (cmd, output)) > > > > > > - self.assertEqual(output, '/dev/root /\r\n/dev/sda1 > > > > > /boot\r\n/dev/sda3 /mnt') > > > > > > + self.assertEqual(output, > > > > > 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/uuid\text4\ > > > tdefaults\t0\t0') > > > > > > > > We no longer want to match the string you've got showing up, and the > > > > string you have showing up says that /uuid wasn't mounted either. > > > > > > > > Can you check the sources in the autobuilder please and make sure the > > > > whole series got applied correctly? Thanks! > > > > > > Have you had a chance to look at this? It's really confusing as the > > > test output is basically the wic-minimal-image without the change that's > > > included in this patch having been applied (it's 3 partitions). Thanks! > > > > > > -- > > > Tom > > > > > > -- > > _______________________________________________ > > Openembedded-core mailing list > > Openembedded-core@lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-core > > > -- > Tom -- Tom [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid 2017-12-14 3:15 ` Tom Rini @ 2018-01-23 22:05 ` Khem Raj 0 siblings, 0 replies; 14+ messages in thread From: Khem Raj @ 2018-01-23 22:05 UTC (permalink / raw) To: openembedded-core On 12/13/17 9:15 PM, Tom Rini wrote: > On Wed, Dec 13, 2017 at 09:45:13PM -0500, Tom Rini wrote: >> On Wed, Dec 13, 2017 at 02:40:34PM +0000, Burton, Ross wrote: >> >>> I finally made it break locally, with MACHINE=qemux86 and using sysvinit >>> instead of systemd. Basically, a pristine poky local.conf. I've not dug >>> into it beyond that, or why it passes with systemd. >> >> I found it, and, erm, ugh? Here's what appears to be a systemd vs >> sysvinit difference. With systemd, if you have an fstab entry and the >> mount point doesn't exist, it will get made. So an entry of /uuid (a >> very non-HFS and just made up directory) the mount happens. With >> sysvinit, no, the mount fails. That's why the test fails. >> >> My gut reaction is that no, it's not wic's job to ensure that the >> underlying filesystems have all mount points and I should just re-do the >> test to use /mnt instead of /uuid, for the UUID test mount point. > > And in fact, systemd just can't be used for oe-selftest and have > everything expect to pass today. The existing wic.Wic.test_qemu will > fail on /dev/root vs /dev/sda2. So I'm going to post a v4 that puts the > UUID one into /media, and I've run the tests and they pass atm. Thanks! > /media is usually automounted when removable media is inserted. you might want to use something else. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv2 0/4] wic: Further enhance UUID / fstab support 2017-11-17 16:08 [PATCHv2 0/4] wic: Further enhance UUID / fstab support Tom Rini ` (3 preceding siblings ...) 2017-11-17 16:08 ` [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid Tom Rini @ 2017-11-22 8:39 ` Ed Bartosh 4 siblings, 0 replies; 14+ messages in thread From: Ed Bartosh @ 2017-11-22 8:39 UTC (permalink / raw) To: Tom Rini; +Cc: openembedded-core Hi Tom, Thank you for the great patchset! +1 On Fri, Nov 17, 2017 at 11:08:16AM -0500, Tom Rini wrote: > Hey all, > > So, per Ed's feedback on my first series, I went and spent some time > trying to figure out how to have wic know what the UUID would be when > updating the fstab. It turns out the easiest answer here is to have WIC > make the UUID. Per Otavio's concern last time, I also make sure that > the filesystem UUID can be passed in, for reproducibility. One thing to > keep in mind here is that FAT filesystem UUIDs are a bit funny to deal > with as mkfs.vfat / mkdosfs / etc want to be given a 32bit hexadecimal > value. But when we talk mount, it must be split and it must be in > uppercase. To make the rest of the code easier I'm encoding the '0x' > portion into part.fsuuid rather than doing "-i 0x%s" in a bunch of > places. > > While preparing all of this, I found a few minor things such as we did > not test for squashfs and --use-uuid (not supported) and an incorrect > comment around the btrfs support. > > Since v1, I've added a testcase into wic.Wic.test_qemu for a UUID mount > and the UUID that we've given. I think this is cleaner than adding a > python function to make a wks file just for this task. > > -- > Tom -- -- Regards, Ed ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2018-01-23 22:05 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-11-17 16:08 [PATCHv2 0/4] wic: Further enhance UUID / fstab support Tom Rini 2017-11-17 16:08 ` [PATCHv2 1/4] wic: kparser.py: Check for SquashFS and use-uuid Tom Rini 2017-11-17 16:08 ` [PATCHv2 2/4] wic: partition.py: Update comments slightly Tom Rini 2017-11-17 16:08 ` [PATCHv2 3/4] wic: Introduce --fsuuid and have --use-uuid make use of UUID too Tom Rini 2017-11-17 16:08 ` [PATCHv2 4/4] meta-selftest: wic: Add test for --use-uuid / --fsuuid Tom Rini 2017-11-24 15:28 ` Burton, Ross 2017-11-24 15:36 ` Tom Rini 2017-11-28 15:55 ` Tom Rini 2017-12-13 14:40 ` Burton, Ross 2017-12-14 1:22 ` Tom Rini 2017-12-14 2:45 ` Tom Rini 2017-12-14 3:15 ` Tom Rini 2018-01-23 22:05 ` Khem Raj 2017-11-22 8:39 ` [PATCHv2 0/4] wic: Further enhance UUID / fstab support Ed Bartosh
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.