diff --git a/internal/testutil/pkgdata.go b/internal/testutil/pkgdata.go index 0c71fa47..1371f443 100644 --- a/internal/testutil/pkgdata.go +++ b/internal/testutil/pkgdata.go @@ -274,3 +274,35 @@ func MustMakeDeb(entries []TarEntry) []byte { } return data } + +func REG(mode int64, path, content string) TarEntry { + return TarEntry{ + Header: tar.Header{ + Typeflag: tar.TypeReg, + Name: path, + Mode: mode, + }, + Content: []byte(content), + } +} + +func DIR(mode int64, path string) TarEntry { + return TarEntry{ + Header: tar.Header{ + Typeflag: tar.TypeDir, + Name: path, + Mode: mode, + }, + } +} + +func LNK(mode int64, path, target string) TarEntry { + return TarEntry{ + Header: tar.Header{ + Typeflag: tar.TypeSymlink, + Name: path, + Mode: mode, + Linkname: target, + }, + } +} diff --git a/internal/testutil/pkgdata_test.go b/internal/testutil/pkgdata_test.go index 5118fad0..9c0e2eec 100644 --- a/internal/testutil/pkgdata_test.go +++ b/internal/testutil/pkgdata_test.go @@ -397,3 +397,42 @@ func (s *S) TestMustMakeDeb(c *C) { }, }}) } + +func (s *S) TestTarEntryShortHands(c *C) { + var testCases = []struct { + shorthand testutil.TarEntry + result testutil.TarEntry + }{{ + testutil.REG(0600, "./document.txt", "cats are best"), + testutil.TarEntry{ + Header: tar.Header{ + Typeflag: tar.TypeReg, + Name: "./document.txt", + Mode: 0600, + }, + Content: []byte("cats are best"), + }, + }, { + testutil.DIR(0755, "./home/user"), + testutil.TarEntry{ + Header: tar.Header{ + Typeflag: tar.TypeDir, + Name: "./home/user", + Mode: 0755, + }, + }, + }, { + testutil.LNK(0755, "./lib", "./usr/lib/"), + testutil.TarEntry{ + Header: tar.Header{ + Typeflag: tar.TypeSymlink, + Name: "./lib", + Mode: 0755, + Linkname: "./usr/lib/", + }, + }, + }} + for _, test := range testCases { + c.Assert(test.shorthand, DeepEquals, test.result) + } +}