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 <[email protected]>
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

Reply via email to