mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00

given that we are moving to building our own machine images, we have decided to use zstd compression as it is superior in speed to the alternatives. as such, this pr adds zstd to our machine code; and also has to account for dealing with sparseness on darwin; which the default zstd golang library does not. [NO NEW TESTS NEEDED] Signed-off-by: Brent Baude <bbaude@redhat.com>
92 lines
1.3 KiB
Go
92 lines
1.3 KiB
Go
package compression
|
|
|
|
import "testing"
|
|
|
|
func Test_compressionFromFile(t *testing.T) {
|
|
type args struct {
|
|
path string
|
|
}
|
|
var tests = []struct {
|
|
name string
|
|
args args
|
|
want ImageCompression
|
|
}{
|
|
{
|
|
name: "xz",
|
|
args: args{
|
|
path: "/tmp/foo.xz",
|
|
},
|
|
want: Xz,
|
|
},
|
|
{
|
|
name: "gzip",
|
|
args: args{
|
|
path: "/tmp/foo.gz",
|
|
},
|
|
want: Gz,
|
|
},
|
|
{
|
|
name: "bz2",
|
|
args: args{
|
|
path: "/tmp/foo.bz2",
|
|
},
|
|
want: Bz2,
|
|
},
|
|
{
|
|
name: "default is zstd",
|
|
args: args{
|
|
path: "/tmp/foo",
|
|
},
|
|
want: Zstd,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := KindFromFile(tt.args.path); got != tt.want {
|
|
t.Errorf("KindFromFile() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestImageCompression_String(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
c ImageCompression
|
|
want string
|
|
}{
|
|
{
|
|
name: "xz",
|
|
c: Xz,
|
|
want: "xz",
|
|
},
|
|
{
|
|
name: "gz",
|
|
c: Gz,
|
|
want: "gz",
|
|
},
|
|
{
|
|
name: "bz2",
|
|
c: Bz2,
|
|
want: "bz2",
|
|
},
|
|
{
|
|
name: "zip",
|
|
c: Zip,
|
|
want: "zip",
|
|
},
|
|
{
|
|
name: "zstd is default",
|
|
c: 99,
|
|
want: "zst",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := tt.c.String(); got != tt.want {
|
|
t.Errorf("String() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|