Skip to content

Commit

Permalink
Merge pull request #1504 from shirou/feature/host_remove_double_quote…
Browse files Browse the repository at this point in the history
…_on_lsb

[host][linux]: remove double quote from lsb release info
  • Loading branch information
shirou committed Aug 17, 2023
2 parents d428168 + 3748c19 commit 8bcde84
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 8 deletions.
16 changes: 8 additions & 8 deletions host/host_linux.go
Expand Up @@ -138,13 +138,13 @@ func getlsbStruct(ctx context.Context) (*lsbStruct, error) {
}
switch field[0] {
case "DISTRIB_ID":
ret.ID = field[1]
ret.ID = strings.ReplaceAll(field[1], `"`, ``)
case "DISTRIB_RELEASE":
ret.Release = field[1]
ret.Release = strings.ReplaceAll(field[1], `"`, ``)
case "DISTRIB_CODENAME":
ret.Codename = field[1]
ret.Codename = strings.ReplaceAll(field[1], `"`, ``)
case "DISTRIB_DESCRIPTION":
ret.Description = field[1]
ret.Description = strings.ReplaceAll(field[1], `"`, ``)
}
}
} else if common.PathExists("/usr/bin/lsb_release") {
Expand All @@ -159,13 +159,13 @@ func getlsbStruct(ctx context.Context) (*lsbStruct, error) {
}
switch field[0] {
case "Distributor ID":
ret.ID = field[1]
ret.ID = strings.ReplaceAll(field[1], `"`, ``)
case "Release":
ret.Release = field[1]
ret.Release = strings.ReplaceAll(field[1], `"`, ``)
case "Codename":
ret.Codename = field[1]
ret.Codename = strings.ReplaceAll(field[1], `"`, ``)
case "Description":
ret.Description = field[1]
ret.Description = strings.ReplaceAll(field[1], `"`, ``)
}
}

Expand Down
45 changes: 45 additions & 0 deletions host/host_linux_test.go
Expand Up @@ -4,7 +4,10 @@
package host

import (
"context"
"testing"

"github.com/shirou/gopsutil/v3/common"
)

func TestGetRedhatishVersion(t *testing.T) {
Expand Down Expand Up @@ -60,3 +63,45 @@ func TestGetRedhatishPlatform(t *testing.T) {
t.Errorf("Could not get platform with no value: %v", ret)
}
}

func Test_getlsbStruct(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)
if err != nil {
t.Errorf("error %v", err)
}
if v.ID != tt.id {
t.Errorf("ID: want %v, got %v", tt.id, v.ID)
}
if v.Release != tt.release {
t.Errorf("Release: want %v, got %v", tt.release, v.Release)
}
if v.Codename != tt.codename {
t.Errorf("Codename: want %v, got %v", tt.codename, v.Codename)
}
if v.Description != tt.description {
t.Errorf("Description: want %v, got %v", tt.description, v.Description)
}

t.Log(v)
})
}
}
1 change: 1 addition & 0 deletions host/host_test.go
Expand Up @@ -29,6 +29,7 @@ func TestHostInfo(t *testing.T) {
if v.Procs == 0 {
t.Errorf("Could not determine the number of host processes")
}
t.Log(v)
}

func TestUptime(t *testing.T) {
Expand Down
3 changes: 3 additions & 0 deletions host/testdata/linux/lsbStruct/arch/lsb-release
@@ -0,0 +1,3 @@
DISTRIB_ID="Arch"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="Arch Linux"
4 changes: 4 additions & 0 deletions host/testdata/linux/lsbStruct/ubuntu_22_04/lsb-release
@@ -0,0 +1,4 @@
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"

0 comments on commit 8bcde84

Please sign in to comment.