blob: d037ac48bf8b441752dc964d51d4d3f3149010c3 [file] [log] [blame]
package packagediff
import (
"testing"
"cos.googlesource.com/cos/tools.git/src/cmd/cos_image_analyzer/internal/input"
)
// test GetPackageInfo function
func TestGetPackageInfo(t *testing.T) {
testPackageList1 := []Package{
{Category: "sys-boot", Name: "shim", Version: "14.0.20180308", Revision: "4"},
{Category: "chromeos-launch", Name: "cloud-network-boot", Version: "1.0.0", Revision: "4"},
{Category: "sys-kernel", Name: "lakitu-kernel-4_19", Version: "4.20.127", Revision: "533"},
{Category: "sys-apps", Name: "findutils", Version: "4.9.10", Revision: "1"},
{Category: "app-emulation", Name: "runc", Version: "1.0.0_rc10", Revision: "1"}}
testPackageList2 := []Package{}
testPackageList3 := []Package{
{Category: "sys-boot", Name: "shim", Version: "14.0.20180308", Revision: "4"},
{Category: "chromeos-base", Name: "cloud-network-init", Version: "1.0.0", Revision: "4"},
{Category: "sys-kernel", Name: "lakitu-kernel-4_19", Version: "4.19.127", Revision: "535"},
{Category: "app-shells", Name: "dash", Version: "0.5.9.1", Revision: "7"}}
for _, tc := range []struct {
image *input.ImageInfo
flagInfo *input.FlagInfo
want []Package
}{ // Test image1
{image: &input.ImageInfo{TempDir: "../testdata/image1/", RootfsPartition3: "../testdata/image1/rootfs/"},
flagInfo: &input.FlagInfo{PackageSelected: true},
want: testPackageList1},
// Test empty image
{image: &input.ImageInfo{},
flagInfo: &input.FlagInfo{PackageSelected: true},
want: testPackageList2},
// Test image2
{image: &input.ImageInfo{TempDir: "../testdata/image2/", RootfsPartition3: "../testdata/image2/rootfs/"},
flagInfo: &input.FlagInfo{PackageSelected: true},
want: testPackageList3},
} {
got, _ := GetPackageInfo(tc.image, tc.flagInfo)
for _, pw := range tc.want {
pg, ok := searchPackageList(pw.Name, got)
if !ok {
t.Fatalf("GetPackageInfo expected: %v, got: %v", tc.want, got)
}
if pw.Name != pg.Name {
t.Fatalf("GetPackageInfo expected: %v, got: %v", tc.want, got)
}
if pw.Category != pg.Category {
t.Fatalf("GetPackageInfo expected: %v, got: %v", tc.want, got)
}
if pw.Version != pg.Version {
t.Fatalf("GetPackageInfo expected: %v, got: %v", tc.want, got)
}
if pw.Revision != pg.Revision {
t.Fatalf("GetPackageInfo expected: %v, got: %v", tc.want, got)
}
}
}
}