Cope with double quotes in Linux Mountinfo
Signed-off-by: Johannes Frey <me@johannes-frey.de>
This commit is contained in:
@@ -439,6 +439,9 @@ const (
|
||||
|
||||
mountInfoWithSpaces = `486 28 252:1 / /mnt/foo\040bar rw,relatime shared:243 - ext4 /dev/vda1 rw,data=ordered
|
||||
31 21 0:23 / /DATA/foo_bla_bla rw,relatime - cifs //foo/BLA\040BLA\040BLA/ rw,sec=ntlm,cache=loose,unc=\\foo\BLA BLA BLA,username=my_login,domain=mydomain.com,uid=12345678,forceuid,gid=12345678,forcegid,addr=10.1.30.10,file_mode=0755,dir_mode=0755,nounix,rsize=61440,wsize=65536,actimeo=1`
|
||||
|
||||
mountInfoWithDoubleQuotes = `1046 30 253:1 /tmp/bar /var/lib/kubelet/pods/98d150a4-d814-4d52-9068-b10f62d7a895/volumes/kubernetes.io~empty-dir/tmp-dir/"var rw,relatime shared:1 - ext4 /dev/mapper/ubuntu--vg-root rw,errors=remount-ro
|
||||
1046 30 253:1 /tmp/bar /tmp/"foo" rw,relatime shared:1 - ext4 /dev/mapper/ubuntu--vg-root rw,errors=remount-ro`
|
||||
)
|
||||
|
||||
func TestParseFedoraMountinfo(t *testing.T) {
|
||||
@@ -538,3 +541,48 @@ func TestParseMountinfoWithSpaces(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseMountinfoWithDoubleQuotes(t *testing.T) {
|
||||
r := bytes.NewBuffer([]byte(mountInfoWithDoubleQuotes))
|
||||
infos, err := parseInfoFile(r)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
expected := []Info{
|
||||
{
|
||||
ID: 1046,
|
||||
Parent: 30,
|
||||
Major: 253,
|
||||
Minor: 1,
|
||||
Root: "/tmp/bar",
|
||||
Mountpoint: `/var/lib/kubelet/pods/98d150a4-d814-4d52-9068-b10f62d7a895/volumes/kubernetes.io~empty-dir/tmp-dir/"var`,
|
||||
Options: "rw,relatime",
|
||||
Optional: "shared:1",
|
||||
FSType: "ext4",
|
||||
Source: "/dev/mapper/ubuntu--vg-root",
|
||||
VFSOptions: "rw,errors=remount-ro",
|
||||
},
|
||||
{
|
||||
ID: 1046,
|
||||
Parent: 30,
|
||||
Major: 253,
|
||||
Minor: 1,
|
||||
Root: "/tmp/bar",
|
||||
Mountpoint: `/tmp/"foo"`,
|
||||
Options: "rw,relatime",
|
||||
Optional: "shared:1",
|
||||
FSType: "ext4",
|
||||
Source: "/dev/mapper/ubuntu--vg-root",
|
||||
VFSOptions: "rw,errors=remount-ro",
|
||||
},
|
||||
}
|
||||
|
||||
if len(infos) != len(expected) {
|
||||
t.Fatalf("expected %d entries, got %d", len(expected), len(infos))
|
||||
}
|
||||
for i, mi := range expected {
|
||||
if infos[i] != mi {
|
||||
t.Fatalf("expected %#v, got %#v", mi, infos[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user