From 673cb49f3e5472b269747dc14ef132caf9032050 Mon Sep 17 00:00:00 2001 From: Catalin Stratu Date: Mon, 14 Mar 2022 17:07:38 +0200 Subject: file patch fixes Signed-off-by: Catalin Stratu --- builder/build_test.go | 34 ++++++++++++++++---------------- builder/builder2v1/build_package.go | 11 +++++++---- builder/builder2v2/build_file_test.go | 2 +- builder/builder2v2/build_package.go | 12 +++++++---- builder/builder2v2/build_package_test.go | 12 +++++------ 5 files changed, 39 insertions(+), 32 deletions(-) (limited to 'builder') diff --git a/builder/build_test.go b/builder/build_test.go index 8c18c44..1ea7fd5 100644 --- a/builder/build_test.go +++ b/builder/build_test.go @@ -331,31 +331,31 @@ func TestBuild2_1CanIgnoreFiles(t *testing.T) { t.Fatalf("expected len %d, got %d", 5, len(pkg.Files)) } - want := "/dontscan.txt" + want := "./dontscan.txt" got := pkg.Files[spdx.ElementID("File0")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/keep/keep.txt" + want = "./keep/keep.txt" got = pkg.Files[spdx.ElementID("File1")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/keep.txt" + want = "./keep.txt" got = pkg.Files[spdx.ElementID("File2")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/subdir/keep/dontscan.txt" + want = "./subdir/keep/dontscan.txt" got = pkg.Files[spdx.ElementID("File3")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/subdir/keep/keep.txt" + want = "./subdir/keep/keep.txt" got = pkg.Files[spdx.ElementID("File4")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) @@ -476,8 +476,8 @@ func TestBuild2_2CreatesDocument(t *testing.T) { if fileEmpty == nil { t.Fatalf("expected non-nil file, got nil") } - if fileEmpty.FileName != "/emptyfile.testdata.txt" { - t.Errorf("expected %v, got %v", "/emptyfile.testdata.txt", fileEmpty.FileName) + if fileEmpty.FileName != "./emptyfile.testdata.txt" { + t.Errorf("expected %v, got %v", "./emptyfile.testdata.txt", fileEmpty.FileName) } if fileEmpty.FileSPDXIdentifier != spdx.ElementID("File0") { t.Errorf("expected %v, got %v", "File0", fileEmpty.FileSPDXIdentifier) @@ -513,8 +513,8 @@ func TestBuild2_2CreatesDocument(t *testing.T) { if file1 == nil { t.Fatalf("expected non-nil file, got nil") } - if file1.FileName != "/file1.testdata.txt" { - t.Errorf("expected %v, got %v", "/file1.testdata.txt", file1.FileName) + if file1.FileName != "./file1.testdata.txt" { + t.Errorf("expected %v, got %v", "./file1.testdata.txt", file1.FileName) } if file1.FileSPDXIdentifier != spdx.ElementID("File1") { t.Errorf("expected %v, got %v", "File1", file1.FileSPDXIdentifier) @@ -550,7 +550,7 @@ func TestBuild2_2CreatesDocument(t *testing.T) { if file3 == nil { t.Fatalf("expected non-nil file, got nil") } - if file3.FileName != "/file3.testdata.txt" { + if file3.FileName != "./file3.testdata.txt" { t.Errorf("expected %v, got %v", "/file3.testdata.txt", file3.FileName) } if file3.FileSPDXIdentifier != spdx.ElementID("File2") { @@ -587,7 +587,7 @@ func TestBuild2_2CreatesDocument(t *testing.T) { if file4 == nil { t.Fatalf("expected non-nil file, got nil") } - if file4.FileName != "/folder1/file4.testdata.txt" { + if file4.FileName != "./folder1/file4.testdata.txt" { t.Errorf("expected %v, got %v", "folder1/file4.testdata.txt", file4.FileName) } if file4.FileSPDXIdentifier != spdx.ElementID("File3") { @@ -624,7 +624,7 @@ func TestBuild2_2CreatesDocument(t *testing.T) { if lastfile == nil { t.Fatalf("expected non-nil file, got nil") } - if lastfile.FileName != "/lastfile.testdata.txt" { + if lastfile.FileName != "./lastfile.testdata.txt" { t.Errorf("expected %v, got %v", "/lastfile.testdata.txt", lastfile.FileName) } if lastfile.FileSPDXIdentifier != spdx.ElementID("File4") { @@ -719,31 +719,31 @@ func TestBuild2_2CanIgnoreFiles(t *testing.T) { t.Fatalf("expected len %d, got %d", 5, len(pkg.Files)) } - want := "/dontscan.txt" + want := "./dontscan.txt" got := pkg.Files[spdx.ElementID("File0")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/keep/keep.txt" + want = "./keep/keep.txt" got = pkg.Files[spdx.ElementID("File1")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/keep.txt" + want = "./keep.txt" got = pkg.Files[spdx.ElementID("File2")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/subdir/keep/dontscan.txt" + want = "./subdir/keep/dontscan.txt" got = pkg.Files[spdx.ElementID("File3")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/subdir/keep/keep.txt" + want = "./subdir/keep/keep.txt" got = pkg.Files[spdx.ElementID("File4")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) diff --git a/builder/builder2v1/build_package.go b/builder/builder2v1/build_package.go index b1503e1..c133055 100644 --- a/builder/builder2v1/build_package.go +++ b/builder/builder2v1/build_package.go @@ -4,11 +4,10 @@ package builder2v1 import ( "fmt" - "path/filepath" - "strings" - "github.com/spdx/tools-golang/spdx" "github.com/spdx/tools-golang/utils" + "path/filepath" + "regexp" ) // BuildPackageSection2_1 creates an SPDX Package (version 2.1), returning @@ -24,11 +23,15 @@ func BuildPackageSection2_1(packageName string, dirRoot string, pathsIgnore []st return nil, err } + re, ok := regexp.Compile("/+") + if ok != nil { + return nil, err + } files := map[spdx.ElementID]*spdx.File2_1{} fileNumber := 0 for _, fp := range filepaths { newFilePatch := filepath.FromSlash("./" + fp) - newFile, err := BuildFileSection2_1(strings.Replace(newFilePatch, string(filepath.Separator), "/", -1), dirRoot, fileNumber) + newFile, err := BuildFileSection2_1(re.ReplaceAllLiteralString(newFilePatch, string(filepath.Separator)), dirRoot, fileNumber) if err != nil { return nil, err } diff --git a/builder/builder2v2/build_file_test.go b/builder/builder2v2/build_file_test.go index 60f285c..6fc2643 100644 --- a/builder/builder2v2/build_file_test.go +++ b/builder/builder2v2/build_file_test.go @@ -22,7 +22,7 @@ func TestBuilder2_2CanBuildFileSection(t *testing.T) { if file1 == nil { t.Fatalf("expected non-nil file, got nil") } - if file1.FileName != "/file1.testdata.txt" { + if file1.FileName != "./file1.testdata.txt" { t.Errorf("expected %v, got %v", "/file1.testdata.txt", file1.FileName) } if file1.FileSPDXIdentifier != spdx.ElementID("File17") { diff --git a/builder/builder2v2/build_package.go b/builder/builder2v2/build_package.go index 7f871a4..53b2613 100644 --- a/builder/builder2v2/build_package.go +++ b/builder/builder2v2/build_package.go @@ -4,11 +4,10 @@ package builder2v2 import ( "fmt" - "path/filepath" - "strings" - "github.com/spdx/tools-golang/spdx" "github.com/spdx/tools-golang/utils" + "path/filepath" + "regexp" ) // BuildPackageSection2_2 creates an SPDX Package (version 2.2), returning @@ -24,11 +23,16 @@ func BuildPackageSection2_2(packageName string, dirRoot string, pathsIgnore []st return nil, err } + re, ok := regexp.Compile("/+") + if ok != nil { + return nil, err + } + files := map[spdx.ElementID]*spdx.File2_2{} fileNumber := 0 for _, fp := range filepaths { newFilePatch := filepath.FromSlash("./" + fp) - newFile, err := BuildFileSection2_2(strings.Replace(newFilePatch, string(filepath.Separator), "/", -1), dirRoot, fileNumber) + newFile, err := BuildFileSection2_2(re.ReplaceAllLiteralString(newFilePatch, string(filepath.Separator)), dirRoot, fileNumber) if err != nil { return nil, err } diff --git a/builder/builder2v2/build_package_test.go b/builder/builder2v2/build_package_test.go index f58d6b9..6f55abc 100644 --- a/builder/builder2v2/build_package_test.go +++ b/builder/builder2v2/build_package_test.go @@ -66,7 +66,7 @@ func TestBuilder2_2CanBuildPackageSection(t *testing.T) { t.Fatalf("expected non-nil file, got nil") } if fileEmpty.FileName != "./emptyfile.testdata.txt" { - t.Errorf("expected %v, got %v", "/emptyfile.testdata.txt", fileEmpty.FileName) + t.Errorf("expected %v, got %v", "./emptyfile.testdata.txt", fileEmpty.FileName) } if fileEmpty.FileSPDXIdentifier != spdx.ElementID("File0") { t.Errorf("expected %v, got %v", "File0", fileEmpty.FileSPDXIdentifier) @@ -120,31 +120,31 @@ func TestBuilder2_2CanIgnoreFiles(t *testing.T) { t.Fatalf("expected %d, got %d", 5, len(pkg.Files)) } - want := "/dontscan.txt" + want := "./dontscan.txt" got := pkg.Files[spdx.ElementID("File0")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/keep/keep.txt" + want = "./keep/keep.txt" got = pkg.Files[spdx.ElementID("File1")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/keep.txt" + want = "./keep.txt" got = pkg.Files[spdx.ElementID("File2")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/subdir/keep/dontscan.txt" + want = "./subdir/keep/dontscan.txt" got = pkg.Files[spdx.ElementID("File3")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) } - want = "/subdir/keep/keep.txt" + want = "./subdir/keep/keep.txt" got = pkg.Files[spdx.ElementID("File4")].FileName if want != got { t.Errorf("expected %v, got %v", want, got) -- cgit v1.2.3