You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by ke...@apache.org on 2023/03/01 11:29:06 UTC

[skywalking-eyes] branch main updated: Remove space characters in license for cargo. (#154)

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-eyes.git


The following commit(s) were added to refs/heads/main by this push:
     new d299844  Remove space characters in license for cargo. (#154)
d299844 is described below

commit d299844e334855087f18ae1fe3c81ae8d22bc282
Author: jmjoy <jm...@apache.org>
AuthorDate: Wed Mar 1 19:28:59 2023 +0800

    Remove space characters in license for cargo. (#154)
---
 pkg/deps/cargo.go      |  1 +
 pkg/deps/cargo_test.go | 65 +++++++++++++++++++++++++++++++++++++++-----------
 2 files changed, 52 insertions(+), 14 deletions(-)

diff --git a/pkg/deps/cargo.go b/pkg/deps/cargo.go
index 5d900cd..70a2f03 100644
--- a/pkg/deps/cargo.go
+++ b/pkg/deps/cargo.go
@@ -167,6 +167,7 @@ func normalizeLicense(licenseStr string) string {
 	segs := make(map[string]struct{})
 	for _, ss := range strings.Split(licenseStr, "/") {
 		for _, s := range strings.Split(ss, " OR ") {
+			s = strings.TrimSpace(s)
 			segs[s] = struct{}{}
 		}
 	}
diff --git a/pkg/deps/cargo_test.go b/pkg/deps/cargo_test.go
index 469d32d..a36a55a 100644
--- a/pkg/deps/cargo_test.go
+++ b/pkg/deps/cargo_test.go
@@ -61,7 +61,7 @@ license = "Apache-2.0"
 			Excludes:  []deps.Exclude{},
 		}
 
-		report := resolveTmpCargo(t, cargoToml, &config)
+		report := resolveTmpCargo(t, cargoToml, "", &config)
 		if len(report.Resolved) != 1 {
 			t.Error("len(report.Resolved) != 1")
 		}
@@ -87,7 +87,7 @@ license = "Apache-2.0"
 			Excludes:  []deps.Exclude{{Name: "foo", Version: "0.0.0"}},
 		}
 
-		report := resolveTmpCargo(t, cargoToml, &config)
+		report := resolveTmpCargo(t, cargoToml, "", &config)
 		if len(report.Resolved) != 0 {
 			t.Error("len(report.Resolved) != 0")
 		}
@@ -116,7 +116,7 @@ license = "Apache-2.0"
 			Excludes: []deps.Exclude{},
 		}
 
-		report := resolveTmpCargo(t, cargoToml, &config)
+		report := resolveTmpCargo(t, cargoToml, "", &config)
 		if len(report.Resolved) != 1 {
 			t.Error("len(report.Resolved) != 1")
 		}
@@ -137,6 +137,40 @@ license = "Apache-2.0"
 [dependencies]
 libc = "0.2.126"    # actual license: MIT OR Apache-2.0
 bitflags = "1.3.2"  # actual license: MIT/Apache-2.0
+fnv = "1.0.7"       # actual license: Apache-2.0 / MIT
+`
+
+		cargoLock := `
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foo"
+version = "0.0.0"
+dependencies = [
+ "bitflags",
+ "fnv",
+ "libc",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
 `
 
 		config := deps.ConfigDeps{
@@ -146,26 +180,21 @@ bitflags = "1.3.2"  # actual license: MIT/Apache-2.0
 			Excludes:  []deps.Exclude{},
 		}
 
-		report := resolveTmpCargo(t, cargoToml, &config)
-		if len(report.Resolved) != 3 {
-			t.Error("len(report.Resolved) != 3")
+		report := resolveTmpCargo(t, cargoToml, cargoLock, &config)
+		if len(report.Resolved) != 4 {
+			t.Error("len(report.Resolved) != 4")
 		}
 		for _, result := range report.Resolved {
-			if result.Dependency == "libc" {
+			if result.Dependency == "libc" || result.Dependency == "bitflags" || result.Dependency == "fnv" {
 				if result.LicenseSpdxID != "Apache-2.0 OR MIT" || result.LicenseContent == "" {
-					t.Error("Resolve dependency libc failed")
-				}
-			}
-			if result.Dependency == "bitflags" {
-				if result.LicenseSpdxID != "Apache-2.0 OR MIT" || result.LicenseContent == "" {
-					t.Error("Resolve dependency libc failed")
+					t.Errorf("Resolve dependency %s failed", result.Dependency)
 				}
 			}
 		}
 	}
 }
 
-func resolveTmpCargo(t *testing.T, cargoTomlContent string, config *deps.ConfigDeps) *deps.Report {
+func resolveTmpCargo(t *testing.T, cargoTomlContent string, cargoLockContent string, config *deps.ConfigDeps) *deps.Report {
 	dir, err := os.MkdirTemp("", "skywalking-eyes-test-cargo-")
 	if err != nil {
 		t.Error("Make temp dir failed", err)
@@ -194,6 +223,14 @@ func resolveTmpCargo(t *testing.T, cargoTomlContent string, config *deps.ConfigD
 		return nil
 	}
 
+	if cargoLockContent != "" {
+		cargoLockFile := filepath.Join(dir, "Cargo.lock")
+		if err := os.WriteFile(cargoLockFile, []byte(cargoLockContent), 0644); err != nil {
+			t.Error("Write Cargo.lock failed", err)
+			return nil
+		}
+	}
+
 	resolver := new(deps.CargoTomlResolver)
 
 	var report deps.Report