Skip to content

Commit e0fdb2e

Browse files
committed
Verify fstab options.
1 parent 3e5c7c4 commit e0fdb2e

2 files changed

Lines changed: 68 additions & 4 deletions

File tree

toolkit/tools/pkg/imagecustomizerlib/customizepartitions_test.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -392,16 +392,24 @@ func testCustomizeImageNewUUIDsHelper(t *testing.T, testName string, imageType b
392392
imageVersion)
393393
}
394394

395-
func verifyFstabEntries(t *testing.T, imageConnection *ImageConnection, mountPoints []mountPoint,
396-
partitions map[int]diskutils.PartitionInfo,
397-
) {
395+
func getFilteredFstabEntries(t *testing.T, imageConnection *ImageConnection) []diskutils.FstabEntry {
398396
fstabPath := filepath.Join(imageConnection.Chroot().RootDir(), "/etc/fstab")
399397
fstabEntries, err := diskutils.ReadFstabFile(fstabPath)
400398
if !assert.NoError(t, err, "read /etc/fstab") {
401-
return
399+
return nil
402400
}
403401

404402
filteredFstabEntries := filterOutSpecialPartitions(fstabEntries)
403+
return filteredFstabEntries
404+
}
405+
406+
func verifyFstabEntries(t *testing.T, imageConnection *ImageConnection, mountPoints []mountPoint,
407+
partitions map[int]diskutils.PartitionInfo,
408+
) {
409+
filteredFstabEntries := getFilteredFstabEntries(t, imageConnection)
410+
if filteredFstabEntries == nil {
411+
return
412+
}
405413

406414
if !assert.Equalf(t, len(mountPoints), len(filteredFstabEntries), "/etc/fstab entries count: %v", filteredFstabEntries) {
407415
return

toolkit/tools/pkg/imagecustomizerlib/customizeuki_test.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"path/filepath"
88
"testing"
99

10+
"github.com/microsoft/azurelinux/toolkit/tools/imagegen/diskutils"
1011
"github.com/microsoft/azurelinux/toolkit/tools/internal/file"
1112
"github.com/stretchr/testify/assert"
1213
"golang.org/x/sys/unix"
@@ -80,4 +81,59 @@ func TestCustomizeImageVerityUsrUki(t *testing.T) {
8081
usrHashDevice := partitionDevPath(imageConnection, 4)
8182
verifyVerityUki(t, espPath, usrDevice, usrHashDevice, "PARTUUID="+partitions[3].PartUuid,
8283
"PARTUUID="+partitions[4].PartUuid, "usr", buildDir, "rd.info", "panic-on-corruption")
84+
85+
expectedFstabEntries := []diskutils.FstabEntry{
86+
{
87+
Source: "PARTUUID=" + partitions[5].PartUuid,
88+
Target: "/",
89+
FsType: "ext4",
90+
Options: "noexec",
91+
VfsOptions: 0x8,
92+
FsOptions: "",
93+
Freq: 0,
94+
PassNo: 1,
95+
},
96+
{
97+
Source: "PARTUUID=" + partitions[2].PartUuid,
98+
Target: "/boot",
99+
FsType: "ext4",
100+
Options: "defaults",
101+
VfsOptions: 0x0,
102+
FsOptions: "",
103+
Freq: 0,
104+
PassNo: 2,
105+
},
106+
{
107+
Source: "PARTUUID=" + partitions[1].PartUuid,
108+
Target: "/boot/efi",
109+
FsType: "vfat",
110+
Options: "umask=0077",
111+
VfsOptions: 0x0,
112+
FsOptions: "umask=0077",
113+
Freq: 0,
114+
PassNo: 2,
115+
},
116+
{
117+
Source: "/dev/mapper/usr",
118+
Target: "/usr",
119+
FsType: "ext4",
120+
Options: "ro",
121+
VfsOptions: 0x1,
122+
FsOptions: "",
123+
Freq: 0,
124+
PassNo: 2,
125+
},
126+
{
127+
Source: "PARTUUID=" + partitions[6].PartUuid,
128+
Target: "/var",
129+
FsType: "ext4",
130+
Options: "defaults",
131+
VfsOptions: 0x0,
132+
FsOptions: "",
133+
Freq: 0,
134+
PassNo: 2,
135+
},
136+
}
137+
filteredFstabEntries := getFilteredFstabEntries(t, imageConnection)
138+
assert.Equal(t, expectedFstabEntries, filteredFstabEntries)
83139
}

0 commit comments

Comments
 (0)