From 3d683971875f4b9fbc98fa03148aa37b3e4fd820 Mon Sep 17 00:00:00 2001 From: Neil Williams Date: Mon, 14 Mar 2016 19:40:56 +0000 Subject: Add support for user-specific bootflags (Only for the first partition). --- yarns/200-fast-tests.yarn | 8 ++++++++ yarns/300-slow-build-tests.yarn | 10 ++++++++++ yarns/900-implements.yarn | 5 +++++ 3 files changed, 23 insertions(+) (limited to 'yarns') diff --git a/yarns/200-fast-tests.yarn b/yarns/200-fast-tests.yarn index dc6ddf8..92f543f 100644 --- a/yarns/200-fast-tests.yarn +++ b/yarns/200-fast-tests.yarn @@ -188,3 +188,11 @@ verify that vmdebootstrap parses the command line correctly. ... --image=FOO --roottype btrfs --dry-run THEN vmdebootstrap exited with a non-zero exit code AND vmdebootstrap wrote an error message matching not yet supported + + SCENARIO bootflag requires argument + ASSUMING fast tests are requested + WHEN user attempts to run vmdebootstrap + ... --bootflag + THEN vmdebootstrap exited with a non-zero exit code + AND vmdebootstrap wrote an error message matching bootflag + AND vmdebootstrap wrote an error message matching requires an argument diff --git a/yarns/300-slow-build-tests.yarn b/yarns/300-slow-build-tests.yarn index 1934217..b4b0dd3 100644 --- a/yarns/300-slow-build-tests.yarn +++ b/yarns/300-slow-build-tests.yarn @@ -60,3 +60,13 @@ These tests are slow, since building images is slow. AND partition 2 has an ext4 filesystem AND partition 2 has file /etc/fstab matching ^\S+\s+\/\s+ext4\s+errors=remount-ro\s+\d\s+\d$ AND partition 2 has file /etc/fstab matching ^\S+\s+\/boot\s+ext3\s+errors=remount-ro\s+\d\s+\d$ + + SCENARIO build a Debian 8 armhf image with boot flag lba + ASSUMING build tests are requested + GIVEN user wants to build an image FOO.img that is 2GiB in size + WHEN the user runs vmdebootstrap --bootflag=lba --arch armhf + ... --foreign /usr/bin/qemu-arm-static --bootsize 100mib --boottype vfat + THEN the image has the correct size + AND the partition count of the image is 2 + AND partition 1 has the boot flag set + AND partition 1 has the lba flag set diff --git a/yarns/900-implements.yarn b/yarns/900-implements.yarn index 57889ab..a629dc9 100644 --- a/yarns/900-implements.yarn +++ b/yarns/900-implements.yarn @@ -112,6 +112,11 @@ Check partition boot flag. awk -v "PART=$MATCH_1" '/^ [0-9]+ / && $1 == PART && $7 ~ "^boot,?$"' | grep . + IMPLEMENTS THEN partition (\d+) has the lba flag set + parted --script "$IMAGE" print | + awk -v "PART=$MATCH_1" '/^ [0-9]+ / && $1 == PART && $8 ~ "^lba?$"' | + grep . + Check filesystem on a partition. This checks the actual filesystem, not a type declared in the partition table. -- cgit v1.2.1