aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Winslow <steve@swinslow.net>2020-05-10 11:50:28 -0400
committerSteve Winslow <steve@swinslow.net>2020-05-10 11:50:28 -0400
commitacc6f35a32e34bdb94c30eb83cb97fcec1b0858d (patch)
treece01a1e511bcfdd0d764f5e082fefe9b6cf8ae58
parentda0d742261dc36eada8660b8826296a613877096 (diff)
downloadspdx-tools-acc6f35a32e34bdb94c30eb83cb97fcec1b0858d.tar.gz
Refactor utils to handle element ID maps
Signed-off-by: Steve Winslow <steve@swinslow.net>
-rw-r--r--utils/verification.go4
-rw-r--r--utils/verification_test.go92
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",
},
}