From e3729291bf01ce3e5f0dcf02ea3df491496bf27b Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Fri, 29 Sep 2023 16:39:54 +0200 Subject: [PATCH] kola: Add test case for extra partition creation This is a testcase for a regression that passes until Flatcar 3374 and fails on Flatcar 3510 (only checked stable releases). Signed-off-by: Jeremi Piotrowski --- kola/tests/ignition/filesystem.go | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/kola/tests/ignition/filesystem.go b/kola/tests/ignition/filesystem.go index 1892df9ef..5f7ed3be2 100644 --- a/kola/tests/ignition/filesystem.go +++ b/kola/tests/ignition/filesystem.go @@ -21,6 +21,7 @@ import ( "github.com/coreos/go-semver/semver" "github.com/flatcar/mantle/kola/cluster" "github.com/flatcar/mantle/kola/register" + "github.com/flatcar/mantle/kola/tests/util" "github.com/flatcar/mantle/platform/conf" ) @@ -322,6 +323,14 @@ systemd: Platforms: []string{"qemu", "qemu-unpriv"}, MinVersion: semver.Version{Major: 3033}, }) + + register.Register(®ister.Test{ + Name: "cl.ignition.extra_root_part", + Run: testExtraRootPartition, + ClusterSize: 0, + Distros: []string{"cl"}, + Platforms: []string{"qemu", "qemu-unpriv"}, + }) } var ext4NoClobberV2_1 = conf.Ignition(`{ @@ -437,3 +446,42 @@ func testSwapActivation(c cluster.TestCluster) { c.Fatalf("swap's size should be: %s, got %s", swapSize, size) } } + +var rootDiskExtraPartition = conf.ContainerLinuxConfig(` +storage: + disks: + - device: /dev/disk/by-id/virtio-primary-disk + partitions: + - label: VAR + number: 10 + start: '9GiB' + filesystems: + - name: var + mount: + device: /dev/disk/by-partlabel/VAR + format: xfs + label: var + files: + - filesystem: root + path: /etc/fstab + mode: 0644 + contents: + inline: | + /dev/disk/by-label/var /var xfs defaults 0 0 +`) + +func testExtraRootPartition(c cluster.TestCluster) { + m, err := util.NewMachineWithLargeDisk(c, "10G", rootDiskExtraPartition) + if err != nil { + c.Fatal(err) + } + out := c.MustSSH(m, "lsblk -f") + c.Logf("lsblk -f:\n%s", out) + out = c.MustSSH(m, "findmnt") + c.Logf("findmnt:\n%s", out) + + c.MustSSH(m, "mountpoint /var") + c.MustSSH(m, "ls -la /dev/disk/by-partlabel/VAR") + c.MustSSH(m, "ls -la /dev/disk/by-label/var") + c.AssertCmdOutputContains(m, "findmnt /var", "xfs") +}