fix unit test; use pax
This commit is contained in:
parent
c8907a411e
commit
25df146ca5
@ -136,7 +136,7 @@ func RootFS(in io.ReadSeeker, out io.Writer) (err error) {
|
|||||||
ModTime: hdr.ModTime,
|
ModTime: hdr.ModTime,
|
||||||
Devmajor: hdr.Devmajor,
|
Devmajor: hdr.Devmajor,
|
||||||
Devminor: hdr.Devminor,
|
Devminor: hdr.Devminor,
|
||||||
Format: tar.FormatGNU,
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := tw.WriteHeader(hdrOut); err != nil {
|
if err := tw.WriteHeader(hdrOut); err != nil {
|
||||||
|
@ -25,6 +25,7 @@ func (d dir) tar(t *testing.T, tw *tar.Writer) {
|
|||||||
hdr := &tar.Header{
|
hdr := &tar.Header{
|
||||||
Typeflag: tar.TypeDir,
|
Typeflag: tar.TypeDir,
|
||||||
Name: d.name,
|
Name: d.name,
|
||||||
|
Mode: 0644,
|
||||||
Uid: d.uid,
|
Uid: d.uid,
|
||||||
}
|
}
|
||||||
require.NoError(t, tw.WriteHeader(hdr))
|
require.NoError(t, tw.WriteHeader(hdr))
|
||||||
@ -41,6 +42,7 @@ func (f file) tar(t *testing.T, tw *tar.Writer) {
|
|||||||
hdr := &tar.Header{
|
hdr := &tar.Header{
|
||||||
Typeflag: tar.TypeReg,
|
Typeflag: tar.TypeReg,
|
||||||
Name: f.name,
|
Name: f.name,
|
||||||
|
Mode: 0644,
|
||||||
Uid: f.uid,
|
Uid: f.uid,
|
||||||
Size: int64(len(f.contents)),
|
Size: int64(len(f.contents)),
|
||||||
}
|
}
|
||||||
@ -72,10 +74,10 @@ func (tb tarball) bytes(t *testing.T) []byte {
|
|||||||
return buf.Bytes()
|
return buf.Bytes()
|
||||||
}
|
}
|
||||||
|
|
||||||
func extract(t *testing.T, tarball io.Reader) []file {
|
func extract(t *testing.T, f io.Reader) []file {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
ret := []file{}
|
ret := []file{}
|
||||||
tr := tar.NewReader(tarball)
|
tr := tar.NewReader(f)
|
||||||
for {
|
for {
|
||||||
hdr, err := tr.Next()
|
hdr, err := tr.Next()
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
@ -108,7 +110,7 @@ func TestRootFS(t *testing.T) {
|
|||||||
_image := tarball{
|
_image := tarball{
|
||||||
file{name: "layer1/layer.tar", contents: _layer1.bytes(t)},
|
file{name: "layer1/layer.tar", contents: _layer1.bytes(t)},
|
||||||
file{name: "layer0/layer.tar", contents: _layer0.bytes(t)},
|
file{name: "layer0/layer.tar", contents: _layer0.bytes(t)},
|
||||||
manifest{"layer0/layer0.tar", "layer1/layer.tar"},
|
manifest{"layer0/layer.tar", "layer1/layer.tar"},
|
||||||
}
|
}
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
@ -126,7 +128,7 @@ func TestRootFS(t *testing.T) {
|
|||||||
image: _image,
|
image: _image,
|
||||||
want: []file{
|
want: []file{
|
||||||
{name: "/", uid: 1},
|
{name: "/", uid: 1},
|
||||||
{name: "file", uid: 0, contents: []byte("from 1")},
|
{name: "/file", uid: 0, contents: []byte("from 1")},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -138,7 +140,7 @@ func TestRootFS(t *testing.T) {
|
|||||||
|
|
||||||
require.NoError(t, RootFS(in, &out))
|
require.NoError(t, RootFS(in, &out))
|
||||||
got := extract(t, &out)
|
got := extract(t, &out)
|
||||||
assert.Equal(t, tt.want, got)
|
assert.Equal(t, got, tt.want)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user