From 73d90814971033f61d8337191429d10bfc7da03f Mon Sep 17 00:00:00 2001 From: Elias Koromilas Date: Mon, 19 Sep 2022 19:19:24 +0300 Subject: [PATCH 1/4] Make sure class-related IDs are lower-case Signed-off-by: Elias Koromilas --- pkg/pci/pci_linux.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/pci/pci_linux.go b/pkg/pci/pci_linux.go index 485ac9bb..087da33d 100644 --- a/pkg/pci/pci_linux.go +++ b/pkg/pci/pci_linux.go @@ -160,9 +160,9 @@ func parseModaliasData(data string) *deviceModaliasInfo { productID := strings.ToLower(data[18:22]) subvendorID := strings.ToLower(data[28:32]) subproductID := strings.ToLower(data[38:42]) - classID := data[44:46] - subclassID := data[48:50] - progIfaceID := data[51:53] + classID := strings.ToLower(data[44:46]) + subclassID := strings.ToLower(data[48:50]) + progIfaceID := strings.ToLower(data[51:53]) return &deviceModaliasInfo{ vendorID: vendorID, productID: productID, From aa2a2108161b8bf92d6f4c070a146a074bbff2c1 Mon Sep 17 00:00:00 2001 From: Elias Koromilas Date: Fri, 23 Sep 2022 13:44:29 +0300 Subject: [PATCH 2/4] Fix `PCIMarshalJSON` test (missing newline) Signed-off-by: Elias Koromilas --- pkg/pci/pci_linux_test.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/pci/pci_linux_test.go b/pkg/pci/pci_linux_test.go index b352f413..8906910b 100644 --- a/pkg/pci/pci_linux_test.go +++ b/pkg/pci/pci_linux_test.go @@ -133,7 +133,10 @@ func TestPCIMarshalJSON(t *testing.T) { t.Fatalf("Expected no error creating PciInfo, but got %v", err) } - dev := info.ParseDevice("0000:3c:00.0", "pci:v0000144Dd0000A804sv0000144Dsd0000A801bc01sc08i02") + dev := info.ParseDevice("0000:3c:00.0", "pci:v0000144Dd0000A804sv0000144Dsd0000A801bc01sc08i02\n") + if dev == nil { + t.Fatalf("Failed to parse valid modalias") + } s := marshal.SafeJSON(context.FromEnv(), dev, true) if s == "" { t.Fatalf("Error marshalling device: %v", dev) From 4819e974c942d15139f4f0f60a880c41b73d1485 Mon Sep 17 00:00:00 2001 From: Elias Koromilas Date: Fri, 23 Sep 2022 14:04:14 +0300 Subject: [PATCH 3/4] Add class name lookup test (upper-case class id) Signed-off-by: Elias Koromilas --- pkg/pci/pci_linux_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkg/pci/pci_linux_test.go b/pkg/pci/pci_linux_test.go index 8906910b..2e683b27 100644 --- a/pkg/pci/pci_linux_test.go +++ b/pkg/pci/pci_linux_test.go @@ -214,3 +214,21 @@ func TestPCIMarshalUnmarshal(t *testing.T) { t.Fatalf("Expected no error unmarshaling pci.Info, but got %v", err) } } + +func TestPCIModaliasWithUpperCaseClassID(t *testing.T) { + if _, ok := os.LookupEnv("GHW_TESTING_SKIP_PCI"); ok { + t.Skip("Skipping PCI tests.") + } + info, err := pci.New() + if err != nil { + t.Fatalf("Expected no error creating PciInfo, but got %v", err) + } + + dev := info.ParseDevice("0000:00:1f.4", "pci:v00008086d00009D23sv00001028sd000007EAbc0Csc05i00\n") + if dev == nil { + t.Fatalf("Failed to parse valid modalias") + } + if dev.Class.Name == "unknown" { + t.Fatalf("Failed to lookup class name") + } +} From f17c87130fb6b5cce36cee690adf8668d1100faf Mon Sep 17 00:00:00 2001 From: Elias Koromilas Date: Fri, 23 Sep 2022 17:21:55 +0300 Subject: [PATCH 4/4] Use util constant for unknown class check Signed-off-by: Elias Koromilas --- pkg/pci/pci_linux_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/pci/pci_linux_test.go b/pkg/pci/pci_linux_test.go index 2e683b27..bc147622 100644 --- a/pkg/pci/pci_linux_test.go +++ b/pkg/pci/pci_linux_test.go @@ -17,6 +17,7 @@ import ( "github.com/jaypipes/ghw/pkg/marshal" "github.com/jaypipes/ghw/pkg/option" "github.com/jaypipes/ghw/pkg/pci" + "github.com/jaypipes/ghw/pkg/util" "github.com/jaypipes/ghw/testdata" ) @@ -228,7 +229,7 @@ func TestPCIModaliasWithUpperCaseClassID(t *testing.T) { if dev == nil { t.Fatalf("Failed to parse valid modalias") } - if dev.Class.Name == "unknown" { + if dev.Class.Name == util.UNKNOWN { t.Fatalf("Failed to lookup class name") } }