diff options
author | Steve Winslow <steve@swinslow.net> | 2020-05-10 11:50:28 -0400 |
---|---|---|
committer | Steve Winslow <steve@swinslow.net> | 2020-05-10 11:50:28 -0400 |
commit | acc6f35a32e34bdb94c30eb83cb97fcec1b0858d (patch) | |
tree | ce01a1e511bcfdd0d764f5e082fefe9b6cf8ae58 | |
parent | da0d742261dc36eada8660b8826296a613877096 (diff) | |
download | spdx-tools-acc6f35a32e34bdb94c30eb83cb97fcec1b0858d.tar.gz |
Refactor utils to handle element ID maps
Signed-off-by: Steve Winslow <steve@swinslow.net>
-rw-r--r-- | utils/verification.go | 4 | ||||
-rw-r--r-- | utils/verification_test.go | 92 |
2 files changed, 54 insertions, 42 deletions
diff --git a/utils/verification.go b/utils/verification.go index 5fbf62b..09907e6 100644 --- a/utils/verification.go +++ b/utils/verification.go @@ -15,12 +15,12 @@ import ( // GetVerificationCode2_1 takes a slice of files and an optional filename // for an "excludes" file, and returns a Package Verification Code calculated // according to SPDX spec version 2.1, section 3.9.4. -func GetVerificationCode2_1(files []*spdx.File2_1, excludeFile string) (string, error) { +func GetVerificationCode2_1(files map[spdx.ElementID]*spdx.File2_1, excludeFile string) (string, error) { // create slice of strings - unsorted SHA1s for all files shas := []string{} for i, f := range files { if f == nil { - return "", fmt.Errorf("got nil file in index %d", i) + return "", fmt.Errorf("got nil file for identifier %v", i) } if f.FileName != excludeFile { shas = append(shas, f.FileChecksumSHA1) diff --git a/utils/verification_test.go b/utils/verification_test.go index b8ba9a0..5dd807c 100644 --- a/utils/verification_test.go +++ b/utils/verification_test.go @@ -11,26 +11,31 @@ import ( // ===== Verification code functionality tests ===== func TestPackage2_1CanGetVerificationCode(t *testing.T) { - files := []*spdx.File2_1{ - &spdx.File2_1{ - FileName: "file2.txt", - FileChecksumSHA1: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", + files := map[spdx.ElementID]*spdx.File2_1{ + "File0": &spdx.File2_1{ + FileName: "file2.txt", + FileSPDXIdentifier: "File0", + FileChecksumSHA1: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", }, - &spdx.File2_1{ - FileName: "file1.txt", - FileChecksumSHA1: "3333333333bbbbbbbbbbccccccccccdddddddddd", + "File1": &spdx.File2_1{ + FileName: "file1.txt", + FileSPDXIdentifier: "File1", + FileChecksumSHA1: "3333333333bbbbbbbbbbccccccccccdddddddddd", }, - &spdx.File2_1{ - FileName: "file3.txt", - FileChecksumSHA1: "8888888888bbbbbbbbbbccccccccccdddddddddd", + "File2": &spdx.File2_1{ + FileName: "file3.txt", + FileSPDXIdentifier: "File2", + FileChecksumSHA1: "8888888888bbbbbbbbbbccccccccccdddddddddd", }, - &spdx.File2_1{ - FileName: "file5.txt", - FileChecksumSHA1: "2222222222bbbbbbbbbbccccccccccdddddddddd", + "File3": &spdx.File2_1{ + FileName: "file5.txt", + FileSPDXIdentifier: "File3", + FileChecksumSHA1: "2222222222bbbbbbbbbbccccccccccdddddddddd", }, - &spdx.File2_1{ - FileName: "file4.txt", - FileChecksumSHA1: "bbbbbbbbbbccccccccccddddddddddaaaaaaaaaa", + "File4": &spdx.File2_1{ + FileName: "file4.txt", + FileSPDXIdentifier: "File4", + FileChecksumSHA1: "bbbbbbbbbbccccccccccddddddddddaaaaaaaaaa", }, } @@ -47,26 +52,31 @@ func TestPackage2_1CanGetVerificationCode(t *testing.T) { } func TestPackage2_1CanGetVerificationCodeIgnoringExcludesFile(t *testing.T) { - files := []*spdx.File2_1{ - &spdx.File2_1{ - FileName: "file1.txt", - FileChecksumSHA1: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", + files := map[spdx.ElementID]*spdx.File2_1{ + spdx.ElementID("File0"): &spdx.File2_1{ + FileName: "file1.txt", + FileSPDXIdentifier: "File0", + FileChecksumSHA1: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", }, - &spdx.File2_1{ - FileName: "file2.txt", - FileChecksumSHA1: "3333333333bbbbbbbbbbccccccccccdddddddddd", + spdx.ElementID("File1"): &spdx.File2_1{ + FileName: "file2.txt", + FileSPDXIdentifier: "File1", + FileChecksumSHA1: "3333333333bbbbbbbbbbccccccccccdddddddddd", }, - &spdx.File2_1{ - FileName: "thisfile.spdx", - FileChecksumSHA1: "bbbbbbbbbbccccccccccddddddddddaaaaaaaaaa", + spdx.ElementID("File2"): &spdx.File2_1{ + FileName: "thisfile.spdx", + FileSPDXIdentifier: "File2", + FileChecksumSHA1: "bbbbbbbbbbccccccccccddddddddddaaaaaaaaaa", }, - &spdx.File2_1{ - FileName: "file3.txt", - FileChecksumSHA1: "8888888888bbbbbbbbbbccccccccccdddddddddd", + spdx.ElementID("File3"): &spdx.File2_1{ + FileName: "file3.txt", + FileSPDXIdentifier: "File3", + FileChecksumSHA1: "8888888888bbbbbbbbbbccccccccccdddddddddd", }, - &spdx.File2_1{ - FileName: "file4.txt", - FileChecksumSHA1: "2222222222bbbbbbbbbbccccccccccdddddddddd", + spdx.ElementID("File4"): &spdx.File2_1{ + FileName: "file4.txt", + FileSPDXIdentifier: "File4", + FileChecksumSHA1: "2222222222bbbbbbbbbbccccccccccdddddddddd", }, } @@ -83,15 +93,17 @@ func TestPackage2_1CanGetVerificationCodeIgnoringExcludesFile(t *testing.T) { } func TestPackage2_1GetVerificationCodeFailsIfNilFileInSlice(t *testing.T) { - files := []*spdx.File2_1{ - &spdx.File2_1{ - FileName: "file2.txt", - FileChecksumSHA1: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", + files := map[spdx.ElementID]*spdx.File2_1{ + spdx.ElementID("File0"): &spdx.File2_1{ + FileName: "file2.txt", + FileSPDXIdentifier: "File0", + FileChecksumSHA1: "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", }, - nil, - &spdx.File2_1{ - FileName: "file3.txt", - FileChecksumSHA1: "8888888888bbbbbbbbbbccccccccccdddddddddd", + spdx.ElementID("File1"): nil, + spdx.ElementID("File2"): &spdx.File2_1{ + FileName: "file3.txt", + FileSPDXIdentifier: "File2", + FileChecksumSHA1: "8888888888bbbbbbbbbbccccccccccdddddddddd", }, } |