// SPDX-License-Identifier: BSD-3-Clause //go:build linux package host import ( "context" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/shirou/gopsutil/v4/common" ) func TestGetRedhatishVersion(t *testing.T) { var ret string c := []string{"Rawhide"} ret = getRedhatishVersion(c) assert.Equalf(t, "rawhide", ret, "Could not get version rawhide: %v", ret) c = []string{"Fedora release 15 (Lovelock)"} ret = getRedhatishVersion(c) assert.Equalf(t, "15", ret, "Could not get version fedora: %v", ret) c = []string{"Enterprise Linux Server release 5.5 (Carthage)"} ret = getRedhatishVersion(c) assert.Equalf(t, "5.5", ret, "Could not get version redhat enterprise: %v", ret) c = []string{""} ret = getRedhatishVersion(c) assert.Emptyf(t, ret, "Could not get version with no value: %v", ret) } func TestGetRedhatishPlatform(t *testing.T) { var ret string c := []string{"red hat"} ret = getRedhatishPlatform(c) assert.Equalf(t, "redhat", ret, "Could not get platform redhat: %v", ret) c = []string{"Fedora release 15 (Lovelock)"} ret = getRedhatishPlatform(c) assert.Equalf(t, "fedora", ret, "Could not get platform fedora: %v", ret) c = []string{"Enterprise Linux Server release 5.5 (Carthage)"} ret = getRedhatishPlatform(c) assert.Equalf(t, "enterprise", ret, "Could not get platform redhat enterprise: %v", ret) c = []string{""} ret = getRedhatishPlatform(c) assert.Emptyf(t, ret, "Could not get platform with no value: %v", ret) } func TestGetlsbStruct(t *testing.T) { cases := []struct { root string id string release string codename string description string }{ {"arch", "Arch", "rolling", "", "Arch Linux"}, {"ubuntu_22_04", "Ubuntu", "22.04", "jammy", "Ubuntu 22.04.2 LTS"}, } for _, tt := range cases { tt := tt t.Run(tt.root, func(t *testing.T) { ctx := context.WithValue(context.Background(), common.EnvKey, common.EnvMap{common.HostEtcEnvKey: "./testdata/linux/lsbStruct/" + tt.root}, ) v, err := getlsbStruct(ctx) require.NoError(t, err) assert.Equalf(t, v.ID, tt.id, "ID: want %v, got %v", tt.id, v.ID) assert.Equalf(t, v.Release, tt.release, "Release: want %v, got %v", tt.release, v.Release) assert.Equalf(t, v.Codename, tt.codename, "Codename: want %v, got %v", tt.codename, v.Codename) assert.Equalf(t, v.Description, tt.description, "Description: want %v, got %v", tt.description, v.Description) t.Log(v) }) } }