diff options
| author | Eric Biggers <ebiggers@google.com> | 2019-11-27 11:07:38 -0800 |
|---|---|---|
| committer | Eric Biggers <ebiggers@google.com> | 2019-11-27 11:07:38 -0800 |
| commit | 2a45549820a4e364d000ac62362d2feafbb0b3c1 (patch) | |
| tree | c70b8e254f291869e7d9374ed886866803fbf38d /filesystem/mountpoint_test.go | |
| parent | 9c2cc186ecce7d0bb6e220b0312222ce93090790 (diff) | |
Allow filesystem links to contain leading/trailing whitespace
To make manually editing linked protectors slightly more user-friendly,
automatically strip any leading or trailing whitespace. E.g. treat
"UUID=3a6d9a76-47f0-4f13-81bf-3332fbe984fb\n" the same as
"UUID=3a6d9a76-47f0-4f13-81bf-3332fbe984fb".
Update https://github.com/google/fscrypt/issues/115
Diffstat (limited to 'filesystem/mountpoint_test.go')
| -rw-r--r-- | filesystem/mountpoint_test.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/filesystem/mountpoint_test.go b/filesystem/mountpoint_test.go index d21ba48..ad0dab7 100644 --- a/filesystem/mountpoint_test.go +++ b/filesystem/mountpoint_test.go @@ -255,6 +255,38 @@ func TestLoadOnlyBindMounts(t *testing.T) { } } +// Test making a filesystem link (i.e. "UUID=...") and following it, and test +// that leading and trailing whitespace in the link is ignored. +func TestGetMountFromLink(t *testing.T) { + mnt, err := getTestMount(t) + if err != nil { + t.Skip(err) + } + link, err := makeLink(mnt, uuidToken) + if err != nil { + t.Fatal(err) + } + linkedMnt, err := getMountFromLink(link) + if err != nil { + t.Fatal(err) + } + if linkedMnt != mnt { + t.Fatal("Link doesn't point to the same Mount") + } + if linkedMnt, err = getMountFromLink(link + "\n"); err != nil { + t.Fatal(err) + } + if linkedMnt != mnt { + t.Fatal("Link doesn't point to the same Mount") + } + if linkedMnt, err = getMountFromLink(" " + link + " \r\n"); err != nil { + t.Fatal(err) + } + if linkedMnt != mnt { + t.Fatal("Link doesn't point to the same Mount") + } +} + // Benchmarks how long it takes to update the mountpoint data func BenchmarkLoadFirst(b *testing.B) { for n := 0; n < b.N; n++ { |