diff options
author | pxp928 <parth.psu@gmail.com> | 2022-09-28 07:54:50 -0400 |
---|---|---|
committer | pxp928 <parth.psu@gmail.com> | 2022-09-28 07:54:50 -0400 |
commit | 9c474845899d0fc801c3fd45d5c8980a6cd9e984 (patch) | |
tree | b959c5a0830cef8fb5eb837ddedeef000d616e22 | |
parent | 5eb9315c0c55cd107481fb259b85e4f223d2fb19 (diff) | |
download | spdx-tools-9c474845899d0fc801c3fd45d5c8980a6cd9e984.tar.gz |
added referenceType enum
Signed-off-by: pxp928 <parth.psu@gmail.com>
-rw-r--r-- | spdx/common/ext_package_manager.go | 13 | ||||
-rw-r--r-- | spdx/v2_1/package.go | 2 | ||||
-rw-r--r-- | tvloader/parser2v1/parse_package.go | 4 | ||||
-rw-r--r-- | tvloader/parser2v1/parse_package_test.go | 8 |
4 files changed, 20 insertions, 7 deletions
diff --git a/spdx/common/ext_package_manager.go b/spdx/common/ext_package_manager.go new file mode 100644 index 0000000..6e769ce --- /dev/null +++ b/spdx/common/ext_package_manager.go @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + +package common + +// ReferenceType is an [idstring] as defined in Appendix VI; +type ReferenceType string + +// *Type is the enumerable of ReferenceType +const ( + Cpe23Type ReferenceType = "cpe23Type" + PurlType ReferenceType = "purl" + Ref2Type ReferenceType = "LocationRef-acmeforge" +) diff --git a/spdx/v2_1/package.go b/spdx/v2_1/package.go index 4bf5636..3abc831 100644 --- a/spdx/v2_1/package.go +++ b/spdx/v2_1/package.go @@ -108,7 +108,7 @@ type PackageExternalReference struct { // type is an [idstring] as defined in Appendix VI; // called RefType here due to "type" being a Golang keyword - RefType string `json:"referenceType"` + RefType common.ReferenceType `json:"referenceType"` // locator is a unique string to access the package-specific // info, metadata or content within the target location diff --git a/tvloader/parser2v1/parse_package.go b/tvloader/parser2v1/parse_package.go index 7a3e2a8..24f791a 100644 --- a/tvloader/parser2v1/parse_package.go +++ b/tvloader/parser2v1/parse_package.go @@ -200,7 +200,7 @@ func extractCodeAndExcludes(value string) common.PackageVerificationCode { return common.PackageVerificationCode{Value: code, ExcludedFiles: []string{fileName}} } -func extractPackageExternalReference(value string) (string, string, string, error) { +func extractPackageExternalReference(value string) (string, common.ReferenceType, string, error) { sp := strings.Split(value, " ") // remove any that are just whitespace keepSp := []string{} @@ -214,5 +214,5 @@ func extractPackageExternalReference(value string) (string, string, string, erro if len(keepSp) != 3 { return "", "", "", fmt.Errorf("expected 3 elements, got %d", len(keepSp)) } - return keepSp[0], keepSp[1], keepSp[2], nil + return keepSp[0], common.ReferenceType(keepSp[1]), keepSp[2], nil } diff --git a/tvloader/parser2v1/parse_package_test.go b/tvloader/parser2v1/parse_package_test.go index 7189ba3..0a535ed 100644 --- a/tvloader/parser2v1/parse_package_test.go +++ b/tvloader/parser2v1/parse_package_test.go @@ -477,12 +477,12 @@ func TestParser2_1CanParsePackageTags(t *testing.T) { // Package External References and Comments ref1 := "SECURITY cpe23Type cpe:2.3:a:pivotal_software:spring_framework:4.1.0:*:*:*:*:*:*:*" ref1Category := "SECURITY" - ref1Type := "cpe23Type" + ref1Type := common.Cpe23Type ref1Locator := "cpe:2.3:a:pivotal_software:spring_framework:4.1.0:*:*:*:*:*:*:*" ref1Comment := "this is comment #1" ref2 := "OTHER LocationRef-acmeforge acmecorp/acmenator/4.1.3alpha" ref2Category := "OTHER" - ref2Type := "LocationRef-acmeforge" + ref2Type := common.Ref2Type ref2Locator := "acmecorp/acmenator/4.1.3alpha" ref2Comment := "this is comment #2" err = parser.parsePairFromPackage2_1("ExternalRef", ref1) @@ -1025,7 +1025,7 @@ func TestCanCheckAndExtractExcludesFilenameAndCode(t *testing.T) { func TestCanExtractPackageExternalReference(t *testing.T) { ref1 := "SECURITY cpe23Type cpe:2.3:a:pivotal_software:spring_framework:4.1.0:*:*:*:*:*:*:*" category := "SECURITY" - refType := "cpe23Type" + refType := common.Cpe23Type location := "cpe:2.3:a:pivotal_software:spring_framework:4.1.0:*:*:*:*:*:*:*" gotCategory, gotRefType, gotLocation, err := extractPackageExternalReference(ref1) @@ -1046,7 +1046,7 @@ func TestCanExtractPackageExternalReference(t *testing.T) { func TestCanExtractPackageExternalReferenceWithExtraWhitespace(t *testing.T) { ref1 := " SECURITY \t cpe23Type cpe:2.3:a:pivotal_software:spring_framework:4.1.0:*:*:*:*:*:*:* \t " category := "SECURITY" - refType := "cpe23Type" + refType := common.Cpe23Type location := "cpe:2.3:a:pivotal_software:spring_framework:4.1.0:*:*:*:*:*:*:*" gotCategory, gotRefType, gotLocation, err := extractPackageExternalReference(ref1) |