diff options
Diffstat (limited to 'tvloader')
37 files changed, 775 insertions, 756 deletions
diff --git a/tvloader/parser2v1/parse_annotation_test.go b/tvloader/parser2v1/parse_annotation_test.go index eb0f4cf..41fe6a5 100644 --- a/tvloader/parser2v1/parse_annotation_test.go +++ b/tvloader/parser2v1/parse_annotation_test.go @@ -4,13 +4,13 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_1" ) // ===== Annotation section tests ===== func TestParser2_1FailsIfAnnotationNotSet(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePairForAnnotation2_1("Annotator", "Person: John Doe (jdoe@example.com)") @@ -21,7 +21,7 @@ func TestParser2_1FailsIfAnnotationNotSet(t *testing.T) { func TestParser2_1FailsIfAnnotationTagUnknown(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } // start with valid annotator @@ -38,7 +38,7 @@ func TestParser2_1FailsIfAnnotationTagUnknown(t *testing.T) { func TestParser2_1FailsIfAnnotationFieldsWithoutAnnotation(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePair2_1("AnnotationDate", "2018-09-15T17:25:00Z") @@ -61,7 +61,7 @@ func TestParser2_1FailsIfAnnotationFieldsWithoutAnnotation(t *testing.T) { func TestParser2_1CanParseAnnotationTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -121,7 +121,7 @@ func TestParser2_1CanParseAnnotationTags(t *testing.T) { func TestParser2_1FailsIfAnnotatorInvalid(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePair2_1("Annotator", "John Doe (jdoe@example.com)") @@ -132,7 +132,7 @@ func TestParser2_1FailsIfAnnotatorInvalid(t *testing.T) { func TestParser2_1FailsIfAnnotatorTypeInvalid(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePair2_1("Annotator", "Human: John Doe (jdoe@example.com)") @@ -143,7 +143,7 @@ func TestParser2_1FailsIfAnnotatorTypeInvalid(t *testing.T) { func TestParser2_1FailsIfAnnotationRefInvalid(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } // start with valid annotator diff --git a/tvloader/parser2v1/parse_creation_info.go b/tvloader/parser2v1/parse_creation_info.go index df16008..d7ca687 100644 --- a/tvloader/parser2v1/parse_creation_info.go +++ b/tvloader/parser2v1/parse_creation_info.go @@ -6,7 +6,8 @@ import ( "fmt" "strings" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" ) func (parser *tvParser2_1) parsePairFromCreationInfo2_1(tag string, value string) error { @@ -17,7 +18,7 @@ func (parser *tvParser2_1) parsePairFromCreationInfo2_1(tag string, value string // create an SPDX Creation Info data struct if we don't have one already if parser.doc.CreationInfo == nil { - parser.doc.CreationInfo = &spdx.CreationInfo2_1{} + parser.doc.CreationInfo = &v2_1.CreationInfo{} } ci := parser.doc.CreationInfo @@ -30,7 +31,7 @@ func (parser *tvParser2_1) parsePairFromCreationInfo2_1(tag string, value string return err } - creator := spdx.Creator{Creator: subvalue} + creator := common.Creator{Creator: subvalue} switch subkey { case "Person", "Organization", "Tool": creator.CreatorType = subkey @@ -54,7 +55,7 @@ func (parser *tvParser2_1) parsePairFromCreationInfo2_1(tag string, value string return fmt.Errorf("file with FileName %s does not have SPDX identifier", parser.file.FileName) } parser.st = psPackage2_1 - parser.pkg = &spdx.Package2_1{ + parser.pkg = &v2_1.Package{ FilesAnalyzed: true, IsFilesAnalyzedTagPresent: false, } @@ -75,14 +76,14 @@ func (parser *tvParser2_1) parsePairFromCreationInfo2_1(tag string, value string return parser.parsePairFromReview2_1(tag, value) // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_1{} + parser.rln = &v2_1.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_1(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_1(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_1{} + parser.ann = &v2_1.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_1(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v1/parse_creation_info_test.go b/tvloader/parser2v1/parse_creation_info_test.go index 83058dd..867491a 100644 --- a/tvloader/parser2v1/parse_creation_info_test.go +++ b/tvloader/parser2v1/parse_creation_info_test.go @@ -4,13 +4,13 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_1" ) // ===== Parser creation info state change tests ===== func TestParser2_1CIMovesToPackageAfterParsingPackageNameTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } pkgName := "testPkg" @@ -46,7 +46,7 @@ func TestParser2_1CIMovesToPackageAfterParsingPackageNameTag(t *testing.T) { func TestParser2_1CIMovesToFileAfterParsingFileNameTagWithNoPackages(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePair2_1("FileName", "testFile") @@ -66,7 +66,7 @@ func TestParser2_1CIMovesToFileAfterParsingFileNameTagWithNoPackages(t *testing. func TestParser2_1CIMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePair2_1("LicenseID", "LicenseRef-TestLic") @@ -80,7 +80,7 @@ func TestParser2_1CIMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { func TestParser2_1CIMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePair2_1("Reviewer", "Person: John Doe") @@ -94,7 +94,7 @@ func TestParser2_1CIMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_1CIStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -117,7 +117,7 @@ func TestParser2_1CIStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_1CIStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -164,7 +164,7 @@ func TestParser2_1CIStaysAfterParsingAnnotationTags(t *testing.T) { func TestParser2_1FailsParsingCreationInfoWithInvalidState(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psPackage2_1, } err := parser.parsePairFromCreationInfo2_1("SPDXVersion", "SPDX-2.1") @@ -176,7 +176,7 @@ func TestParser2_1FailsParsingCreationInfoWithInvalidState(t *testing.T) { // ===== Creation Info section tests ===== func TestParser2_1HasCreationInfoAfterCallToParseFirstTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePairFromCreationInfo2_1("LicenseListVersion", "3.9") @@ -190,7 +190,7 @@ func TestParser2_1HasCreationInfoAfterCallToParseFirstTag(t *testing.T) { func TestParser2_1CanParseCreationInfoTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -281,7 +281,7 @@ func TestParser2_1CanParseCreationInfoTags(t *testing.T) { func TestParser2_1InvalidCreatorTagsFail(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -298,7 +298,7 @@ func TestParser2_1InvalidCreatorTagsFail(t *testing.T) { func TestParser2_1CreatorTagWithMultipleColonsPasses(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -310,7 +310,7 @@ func TestParser2_1CreatorTagWithMultipleColonsPasses(t *testing.T) { func TestParser2_1CIUnknownTagFails(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -322,7 +322,7 @@ func TestParser2_1CIUnknownTagFails(t *testing.T) { func TestParser2_1CICreatesRelationship(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -340,7 +340,7 @@ func TestParser2_1CICreatesRelationship(t *testing.T) { func TestParser2_1CICreatesAnnotation(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } diff --git a/tvloader/parser2v1/parse_file.go b/tvloader/parser2v1/parse_file.go index 81768bb..8ecc280 100644 --- a/tvloader/parser2v1/parse_file.go +++ b/tvloader/parser2v1/parse_file.go @@ -5,7 +5,8 @@ package parser2v1 import ( "fmt" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" ) func (parser *tvParser2_1) parsePairFromFile2_1(tag string, value string) error { @@ -22,7 +23,7 @@ func (parser *tvParser2_1) parsePairFromFile2_1(tag string, value string) error if parser.file != nil && parser.file.FileSPDXIdentifier == nullSpdxElementId2_1 { return fmt.Errorf("file with FileName %s does not have SPDX identifier", parser.file.FileName) } - parser.file = &spdx.File2_1{} + parser.file = &v2_1.File{} parser.file.FileName = value // tag for creating new package section and going back to parsing Package case "PackageName": @@ -50,12 +51,12 @@ func (parser *tvParser2_1) parsePairFromFile2_1(tag string, value string) error parser.file.FileSPDXIdentifier = eID if parser.pkg == nil { if parser.doc.Files == nil { - parser.doc.Files = []*spdx.File2_1{} + parser.doc.Files = []*v2_1.File{} } parser.doc.Files = append(parser.doc.Files, parser.file) } else { if parser.pkg.Files == nil { - parser.pkg.Files = []*spdx.File2_1{} + parser.pkg.Files = []*v2_1.File{} } parser.pkg.Files = append(parser.pkg.Files, parser.file) } @@ -67,12 +68,12 @@ func (parser *tvParser2_1) parsePairFromFile2_1(tag string, value string) error return err } if parser.file.Checksums == nil { - parser.file.Checksums = []spdx.Checksum{} + parser.file.Checksums = []common.Checksum{} } - switch spdx.ChecksumAlgorithm(subkey) { - case spdx.SHA1, spdx.SHA256, spdx.MD5: - algorithm := spdx.ChecksumAlgorithm(subkey) - parser.file.Checksums = append(parser.file.Checksums, spdx.Checksum{Algorithm: algorithm, Value: subvalue}) + switch common.ChecksumAlgorithm(subkey) { + case common.SHA1, common.SHA256, common.MD5: + algorithm := common.ChecksumAlgorithm(subkey) + parser.file.Checksums = append(parser.file.Checksums, common.Checksum{Algorithm: algorithm, Value: subvalue}) default: return fmt.Errorf("got unknown checksum type %s", subkey) } @@ -85,7 +86,7 @@ func (parser *tvParser2_1) parsePairFromFile2_1(tag string, value string) error case "FileCopyrightText": parser.file.FileCopyrightText = value case "ArtifactOfProjectName": - parser.fileAOP = &spdx.ArtifactOfProject2_1{} + parser.fileAOP = &v2_1.ArtifactOfProject{} parser.file.ArtifactOfProjects = append(parser.file.ArtifactOfProjects, parser.fileAOP) parser.fileAOP.Name = value case "ArtifactOfProjectHomePage": @@ -108,14 +109,14 @@ func (parser *tvParser2_1) parsePairFromFile2_1(tag string, value string) error parser.file.FileDependencies = append(parser.file.FileDependencies, value) // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_1{} + parser.rln = &v2_1.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_1(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_1(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_1{} + parser.ann = &v2_1.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_1(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v1/parse_file_test.go b/tvloader/parser2v1/parse_file_test.go index 375f967..33f4ef2 100644 --- a/tvloader/parser2v1/parse_file_test.go +++ b/tvloader/parser2v1/parse_file_test.go @@ -4,7 +4,8 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" ) // ===== Parser file section state change tests ===== @@ -13,10 +14,10 @@ func TestParser2_1FileStartsNewFileAfterParsingFileNameTag(t *testing.T) { fileOldName := "f1.txt" parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: fileOldName, FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: fileOldName, FileSPDXIdentifier: "f1"}, } fileOld := parser.file parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -88,7 +89,7 @@ func TestParser2_1FileStartsNewFileAfterParsingFileNameTag(t *testing.T) { func TestParser2_1FileAddsToPackageOrUnpackagedFiles(t *testing.T) { // start with no packages parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -149,10 +150,10 @@ func TestParser2_1FileStartsNewPackageAfterParsingPackageNameTag(t *testing.T) { f1Name := "f1.txt" parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: p1Name, PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: f1Name, FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: p1Name, PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: f1Name, FileSPDXIdentifier: "f1"}, } p1 := parser.pkg f1 := parser.file @@ -217,10 +218,10 @@ func TestParser2_1FileStartsNewPackageAfterParsingPackageNameTag(t *testing.T) { func TestParser2_1FileMovesToSnippetAfterParsingSnippetSPDXIDTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -242,10 +243,10 @@ func TestParser2_1FileMovesToSnippetAfterParsingSnippetSPDXIDTag(t *testing.T) { func TestParser2_1FileMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -261,10 +262,10 @@ func TestParser2_1FileMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) func TestParser2_1FileMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -280,10 +281,10 @@ func TestParser2_1FileMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_1FileStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -309,10 +310,10 @@ func TestParser2_1FileStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_1FileStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -361,9 +362,9 @@ func TestParser2_1FileStaysAfterParsingAnnotationTags(t *testing.T) { // ===== File data section tests ===== func TestParser2_1CanParseFileTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -445,15 +446,15 @@ func TestParser2_1CanParseFileTags(t *testing.T) { } for _, checksum := range parser.file.Checksums { switch checksum.Algorithm { - case spdx.SHA1: + case common.SHA1: if checksum.Value != codeSha1 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeSha1, checksum.Value) } - case spdx.SHA256: + case common.SHA256: if checksum.Value != codeSha256 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeSha256, checksum.Value) } - case spdx.MD5: + case common.MD5: if checksum.Value != codeMd5 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeMd5, checksum.Value) } @@ -676,10 +677,10 @@ func TestParser2_1CanParseFileTags(t *testing.T) { func TestParser2_1FileCreatesRelationshipInDocument(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -698,10 +699,10 @@ func TestParser2_1FileCreatesRelationshipInDocument(t *testing.T) { func TestParser2_1FileCreatesAnnotationInDocument(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -720,10 +721,10 @@ func TestParser2_1FileCreatesAnnotationInDocument(t *testing.T) { func TestParser2_1FileUnknownTagFails(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -736,10 +737,10 @@ func TestParser2_1FileUnknownTagFails(t *testing.T) { func TestFileAOPPointerChangesAfterTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -793,9 +794,9 @@ func TestFileAOPPointerChangesAfterTags(t *testing.T) { func TestParser2_1FailsIfInvalidSPDXIDInFileSection(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -813,9 +814,9 @@ func TestParser2_1FailsIfInvalidSPDXIDInFileSection(t *testing.T) { func TestParser2_1FailsIfInvalidChecksumFormatInFileSection(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -833,9 +834,9 @@ func TestParser2_1FailsIfInvalidChecksumFormatInFileSection(t *testing.T) { func TestParser2_1FailsIfUnknownChecksumTypeInFileSection(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -853,9 +854,9 @@ func TestParser2_1FailsIfUnknownChecksumTypeInFileSection(t *testing.T) { func TestParser2_1FailsIfArtifactHomePageBeforeArtifactName(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -873,9 +874,9 @@ func TestParser2_1FailsIfArtifactHomePageBeforeArtifactName(t *testing.T) { func TestParser2_1FailsIfArtifactURIBeforeArtifactName(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -894,9 +895,9 @@ func TestParser2_1FailsIfArtifactURIBeforeArtifactName(t *testing.T) { func TestParser2_1FilesWithoutSpdxIdThrowError(t *testing.T) { // case 1: The previous file (packaged or unpackaged) does not contain spdxID parser1 := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, - file: &spdx.File2_1{FileName: "FileName"}, + file: &v2_1.File{FileName: "FileName"}, } err := parser1.parsePair2_1("FileName", "f2") @@ -906,12 +907,12 @@ func TestParser2_1FilesWithoutSpdxIdThrowError(t *testing.T) { // case 2: Invalid file with snippet // Last unpackaged file before a snippet starts - sid1 := spdx.ElementID("s1") + sid1 := common.ElementID("s1") fileName := "f2.txt" parser2 := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, - file: &spdx.File2_1{FileName: fileName}, + file: &v2_1.File{FileName: fileName}, } err = parser2.parsePair2_1("SnippetSPDXID", string(sid1)) if err == nil { @@ -922,7 +923,7 @@ func TestParser2_1FilesWithoutSpdxIdThrowError(t *testing.T) { // Last unpackaged file before a package starts // Last file of a package and New package starts parser3 := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } fileName = "f3.txt" diff --git a/tvloader/parser2v1/parse_other_license.go b/tvloader/parser2v1/parse_other_license.go index 3090a89..a2c3d00 100644 --- a/tvloader/parser2v1/parse_other_license.go +++ b/tvloader/parser2v1/parse_other_license.go @@ -5,14 +5,14 @@ package parser2v1 import ( "fmt" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_1" ) func (parser *tvParser2_1) parsePairFromOtherLicense2_1(tag string, value string) error { switch tag { // tag for creating new other license section case "LicenseID": - parser.otherLic = &spdx.OtherLicense2_1{} + parser.otherLic = &v2_1.OtherLicense{} parser.doc.OtherLicenses = append(parser.doc.OtherLicenses, parser.otherLic) parser.otherLic.LicenseIdentifier = value case "ExtractedText": @@ -25,14 +25,14 @@ func (parser *tvParser2_1) parsePairFromOtherLicense2_1(tag string, value string parser.otherLic.LicenseComment = value // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_1{} + parser.rln = &v2_1.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_1(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_1(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_1{} + parser.ann = &v2_1.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_1(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v1/parse_other_license_test.go b/tvloader/parser2v1/parse_other_license_test.go index 5ae520b..b1b7471 100644 --- a/tvloader/parser2v1/parse_other_license_test.go +++ b/tvloader/parser2v1/parse_other_license_test.go @@ -4,7 +4,7 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_1" ) // ===== Parser other license section state change tests ===== @@ -14,11 +14,11 @@ func TestParser2_1OLStartsNewOtherLicenseAfterParsingLicenseIDTag(t *testing.T) olname1 := "License 11" parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psOtherLicense2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: olid1, LicenseName: olname1, }, @@ -90,10 +90,10 @@ func TestParser2_1OLStartsNewOtherLicenseAfterParsingLicenseIDTag(t *testing.T) func TestParser2_1OLMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psOtherLicense2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -110,11 +110,11 @@ func TestParser2_1OLMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_1OtherLicenseStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psOtherLicense2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-whatever", LicenseName: "the whatever license", }, @@ -152,11 +152,11 @@ func TestParser2_1OtherLicenseStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_1OtherLicenseStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psOtherLicense2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-whatever", LicenseName: "the whatever license", }, @@ -216,11 +216,11 @@ func TestParser2_1OtherLicenseStaysAfterParsingAnnotationTags(t *testing.T) { func TestParser2_1OLFailsAfterParsingOtherSectionTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psOtherLicense2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, @@ -247,10 +247,10 @@ func TestParser2_1OLFailsAfterParsingOtherSectionTags(t *testing.T) { // ===== Other License data section tests ===== func TestParser2_1CanParseOtherLicenseTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psOtherLicense2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -323,10 +323,10 @@ func TestParser2_1CanParseOtherLicenseTags(t *testing.T) { func TestParser2_1OLUnknownTagFails(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psOtherLicense2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) diff --git a/tvloader/parser2v1/parse_package.go b/tvloader/parser2v1/parse_package.go index 22fc1ed..7a3e2a8 100644 --- a/tvloader/parser2v1/parse_package.go +++ b/tvloader/parser2v1/parse_package.go @@ -6,7 +6,8 @@ import ( "fmt" "strings" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" ) func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) error { @@ -24,7 +25,7 @@ func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) err if parser.pkg != nil && parser.pkg.PackageSPDXIdentifier == nullSpdxElementId2_1 { return fmt.Errorf("package with PackageName %s does not have SPDX identifier", parser.pkg.PackageName) } - parser.pkg = &spdx.Package2_1{ + parser.pkg = &v2_1.Package{ FilesAnalyzed: true, IsFilesAnalyzedTagPresent: false, } @@ -45,7 +46,7 @@ func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) err } parser.pkg.PackageSPDXIdentifier = eID if parser.doc.Packages == nil { - parser.doc.Packages = []*spdx.Package2_1{} + parser.doc.Packages = []*v2_1.Package{} } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) case "PackageVersion": @@ -53,7 +54,7 @@ func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) err case "PackageFileName": parser.pkg.PackageFileName = value case "PackageSupplier": - parser.pkg.PackageSupplier = &spdx.Supplier{} + parser.pkg.PackageSupplier = &common.Supplier{} if value == "NOASSERTION" { parser.pkg.PackageSupplier.Supplier = value break @@ -70,7 +71,7 @@ func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) err return fmt.Errorf("unrecognized PackageSupplier type %v", subkey) } case "PackageOriginator": - parser.pkg.PackageOriginator = &spdx.Originator{} + parser.pkg.PackageOriginator = &common.Originator{} if value == "NOASSERTION" { parser.pkg.PackageOriginator.Originator = value break @@ -103,12 +104,12 @@ func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) err return err } if parser.pkg.PackageChecksums == nil { - parser.pkg.PackageChecksums = []spdx.Checksum{} + parser.pkg.PackageChecksums = []common.Checksum{} } - switch spdx.ChecksumAlgorithm(subkey) { - case spdx.SHA1, spdx.SHA256, spdx.MD5: - algorithm := spdx.ChecksumAlgorithm(subkey) - parser.pkg.PackageChecksums = append(parser.pkg.PackageChecksums, spdx.Checksum{Algorithm: algorithm, Value: subvalue}) + switch common.ChecksumAlgorithm(subkey) { + case common.SHA1, common.SHA256, common.MD5: + algorithm := common.ChecksumAlgorithm(subkey) + parser.pkg.PackageChecksums = append(parser.pkg.PackageChecksums, common.Checksum{Algorithm: algorithm, Value: subvalue}) default: return fmt.Errorf("got unknown checksum type %s", subkey) } @@ -133,7 +134,7 @@ func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) err case "PackageComment": parser.pkg.PackageComment = value case "ExternalRef": - parser.pkgExtRef = &spdx.PackageExternalReference2_1{} + parser.pkgExtRef = &v2_1.PackageExternalReference{} parser.pkg.PackageExternalReferences = append(parser.pkg.PackageExternalReferences, parser.pkgExtRef) category, refType, locator, err := extractPackageExternalReference(value) if err != nil { @@ -151,14 +152,14 @@ func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) err parser.pkgExtRef = nil // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_1{} + parser.rln = &v2_1.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_1(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_1(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_1{} + parser.ann = &v2_1.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_1(tag, value) case "AnnotationDate": @@ -182,13 +183,13 @@ func (parser *tvParser2_1) parsePairFromPackage2_1(tag string, value string) err // ===== Helper functions ===== -func extractCodeAndExcludes(value string) spdx.PackageVerificationCode { +func extractCodeAndExcludes(value string) common.PackageVerificationCode { // FIXME this should probably be done using regular expressions instead // split by paren + word "excludes:" sp := strings.SplitN(value, "(excludes:", 2) if len(sp) < 2 { // not found; return the whole string as just the code - return spdx.PackageVerificationCode{Value: value, ExcludedFiles: []string{}} + return common.PackageVerificationCode{Value: value, ExcludedFiles: []string{}} } // if we're here, code is in first part and excludes filename is in @@ -196,7 +197,7 @@ func extractCodeAndExcludes(value string) spdx.PackageVerificationCode { code := strings.TrimSpace(sp[0]) parsedSp := strings.SplitN(sp[1], ")", 2) fileName := strings.TrimSpace(parsedSp[0]) - return spdx.PackageVerificationCode{Value: code, ExcludedFiles: []string{fileName}} + return common.PackageVerificationCode{Value: code, ExcludedFiles: []string{fileName}} } func extractPackageExternalReference(value string) (string, string, string, error) { diff --git a/tvloader/parser2v1/parse_package_test.go b/tvloader/parser2v1/parse_package_test.go index 734fc91..7189ba3 100644 --- a/tvloader/parser2v1/parse_package_test.go +++ b/tvloader/parser2v1/parse_package_test.go @@ -4,7 +4,8 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" ) // ===== Parser package section state change tests ===== @@ -13,9 +14,9 @@ func TestParser2_1PackageStartsNewPackageAfterParsingPackageNameTag(t *testing.T pkgOldName := "p1" parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: pkgOldName, PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: pkgOldName, PackageSPDXIdentifier: "p1"}, } pkgOld := parser.pkg parser.doc.Packages = append(parser.doc.Packages, pkgOld) @@ -62,7 +63,7 @@ func TestParser2_1PackageStartsNewPackageAfterParsingPackageNameTagWhileInUnpack // pkg is nil, so that Files appearing before the first PackageName tag // are added to Files instead of Packages parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psFile2_1, pkg: nil, } @@ -105,9 +106,9 @@ func TestParser2_1PackageStartsNewPackageAfterParsingPackageNameTagWhileInUnpack func TestParser2_1PackageMovesToFileAfterParsingFileNameTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) pkgCurrent := parser.pkg @@ -128,9 +129,9 @@ func TestParser2_1PackageMovesToFileAfterParsingFileNameTag(t *testing.T) { func TestParser2_1PackageMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -145,9 +146,9 @@ func TestParser2_1PackageMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing. func TestParser2_1PackageMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -162,9 +163,9 @@ func TestParser2_1PackageMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_1PackageStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -189,9 +190,9 @@ func TestParser2_1PackageStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_1PackageStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -239,9 +240,9 @@ func TestParser2_1PackageStaysAfterParsingAnnotationTags(t *testing.T) { // ===== Package data section tests ===== func TestParser2_1CanParsePackageTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // should not yet be in Packages map, b/c no SPDX identifier @@ -349,15 +350,15 @@ func TestParser2_1CanParsePackageTags(t *testing.T) { for _, checksum := range parser.pkg.PackageChecksums { switch checksum.Algorithm { - case spdx.SHA1: + case common.SHA1: if checksum.Value != codeSha1 { t.Errorf("expected %s for PackageChecksum SHA1, got %s", codeSha1, checksum.Value) } - case spdx.SHA256: + case common.SHA256: if checksum.Value != codeSha256 { t.Errorf("expected %s for PackageChecksum SHA256, got %s", codeSha256, checksum.Value) } - case spdx.MD5: + case common.MD5: if checksum.Value != codeMd5 { t.Errorf("expected %s for PackageChecksum MD5, got %s", codeMd5, checksum.Value) } @@ -556,9 +557,9 @@ func TestParser2_1CanParsePackageTags(t *testing.T) { func TestParser2_1CanParsePackageSupplierPersonTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -574,9 +575,9 @@ func TestParser2_1CanParsePackageSupplierPersonTag(t *testing.T) { func TestParser2_1CanParsePackageSupplierOrganizationTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -592,9 +593,9 @@ func TestParser2_1CanParsePackageSupplierOrganizationTag(t *testing.T) { func TestParser2_1CanParsePackageSupplierNOASSERTIONTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -610,9 +611,9 @@ func TestParser2_1CanParsePackageSupplierNOASSERTIONTag(t *testing.T) { func TestParser2_1CanParsePackageOriginatorPersonTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -628,9 +629,9 @@ func TestParser2_1CanParsePackageOriginatorPersonTag(t *testing.T) { func TestParser2_1CanParsePackageOriginatorOrganizationTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -646,9 +647,9 @@ func TestParser2_1CanParsePackageOriginatorOrganizationTag(t *testing.T) { func TestParser2_1CanParsePackageOriginatorNOASSERTIONTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -664,9 +665,9 @@ func TestParser2_1CanParsePackageOriginatorNOASSERTIONTag(t *testing.T) { func TestParser2_1CanParsePackageVerificationCodeTagWithExcludes(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -689,9 +690,9 @@ func TestParser2_1CanParsePackageVerificationCodeTagWithExcludes(t *testing.T) { func TestParser2_1CanParsePackageVerificationCodeTagWithoutExcludes(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -712,9 +713,9 @@ func TestParser2_1CanParsePackageVerificationCodeTagWithoutExcludes(t *testing.T func TestPackageExternalRefPointerChangesAfterTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -757,9 +758,9 @@ func TestPackageExternalRefPointerChangesAfterTags(t *testing.T) { func TestParser2_1PackageCreatesRelationshipInDocument(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -777,9 +778,9 @@ func TestParser2_1PackageCreatesRelationshipInDocument(t *testing.T) { func TestParser2_1PackageCreatesAnnotationInDocument(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -797,9 +798,9 @@ func TestParser2_1PackageCreatesAnnotationInDocument(t *testing.T) { func TestParser2_1PackageUnknownTagFails(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_1.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -811,9 +812,9 @@ func TestParser2_1PackageUnknownTagFails(t *testing.T) { func TestParser2_1FailsIfInvalidSPDXIDInPackageSection(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -830,9 +831,9 @@ func TestParser2_1FailsIfInvalidSPDXIDInPackageSection(t *testing.T) { func TestParser2_1FailsIfInvalidPackageSupplierFormat(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -849,9 +850,9 @@ func TestParser2_1FailsIfInvalidPackageSupplierFormat(t *testing.T) { func TestParser2_1FailsIfUnknownPackageSupplierType(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -868,9 +869,9 @@ func TestParser2_1FailsIfUnknownPackageSupplierType(t *testing.T) { func TestParser2_1FailsIfInvalidPackageOriginatorFormat(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -887,9 +888,9 @@ func TestParser2_1FailsIfInvalidPackageOriginatorFormat(t *testing.T) { func TestParser2_1FailsIfUnknownPackageOriginatorType(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -906,9 +907,9 @@ func TestParser2_1FailsIfUnknownPackageOriginatorType(t *testing.T) { func TestParser2_1SetsFilesAnalyzedTagsCorrectly(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -931,9 +932,9 @@ func TestParser2_1SetsFilesAnalyzedTagsCorrectly(t *testing.T) { func TestParser2_1FailsIfInvalidPackageChecksumFormat(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -950,9 +951,9 @@ func TestParser2_1FailsIfInvalidPackageChecksumFormat(t *testing.T) { func TestParser2_1FailsIfInvalidPackageChecksumType(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -969,9 +970,9 @@ func TestParser2_1FailsIfInvalidPackageChecksumType(t *testing.T) { func TestParser2_1FailsIfInvalidExternalRefFormat(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -988,9 +989,9 @@ func TestParser2_1FailsIfInvalidExternalRefFormat(t *testing.T) { func TestParser2_1FailsIfExternalRefCommentBeforeExternalRef(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{}, + pkg: &v2_1.Package{}, } // start with Package Name @@ -1074,9 +1075,9 @@ func TestParser2_1PackageWithoutSpdxIdentifierThrowsError(t *testing.T) { // More than one package, the previous package doesn't contain the SPDXID pkgOldName := "p1" parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psPackage2_1, - pkg: &spdx.Package2_1{PackageName: pkgOldName}, + pkg: &v2_1.Package{PackageName: pkgOldName}, } pkgOld := parser.pkg parser.doc.Packages = append(parser.doc.Packages, pkgOld) diff --git a/tvloader/parser2v1/parse_relationship_test.go b/tvloader/parser2v1/parse_relationship_test.go index 3e5610f..6d44388 100644 --- a/tvloader/parser2v1/parse_relationship_test.go +++ b/tvloader/parser2v1/parse_relationship_test.go @@ -4,13 +4,13 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_1" ) // ===== Relationship section tests ===== func TestParser2_1FailsIfRelationshipNotSet(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePairForRelationship2_1("Relationship", "SPDXRef-A CONTAINS SPDXRef-B") @@ -21,7 +21,7 @@ func TestParser2_1FailsIfRelationshipNotSet(t *testing.T) { func TestParser2_1FailsIfRelationshipCommentWithoutRelationship(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } err := parser.parsePair2_1("RelationshipComment", "comment whatever") @@ -32,7 +32,7 @@ func TestParser2_1FailsIfRelationshipCommentWithoutRelationship(t *testing.T) { func TestParser2_1CanParseRelationshipTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -64,7 +64,7 @@ func TestParser2_1CanParseRelationshipTags(t *testing.T) { func TestParser2_1InvalidRelationshipTagsNoValueFail(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -78,7 +78,7 @@ func TestParser2_1InvalidRelationshipTagsNoValueFail(t *testing.T) { func TestParser2_1InvalidRelationshipTagsOneValueFail(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -92,7 +92,7 @@ func TestParser2_1InvalidRelationshipTagsOneValueFail(t *testing.T) { func TestParser2_1InvalidRelationshipTagsTwoValuesFail(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -106,7 +106,7 @@ func TestParser2_1InvalidRelationshipTagsTwoValuesFail(t *testing.T) { func TestParser2_1InvalidRelationshipTagsThreeValuesSucceed(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -120,7 +120,7 @@ func TestParser2_1InvalidRelationshipTagsThreeValuesSucceed(t *testing.T) { func TestParser2_1InvalidRelationshipTagsFourValuesFail(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -134,7 +134,7 @@ func TestParser2_1InvalidRelationshipTagsFourValuesFail(t *testing.T) { func TestParser2_1InvalidRelationshipTagsInvalidRefIDs(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } @@ -154,7 +154,7 @@ func TestParser2_1InvalidRelationshipTagsInvalidRefIDs(t *testing.T) { func TestParser2_1FailsToParseUnknownTagInRelationshipSection(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, } diff --git a/tvloader/parser2v1/parse_review.go b/tvloader/parser2v1/parse_review.go index 0d102d3..b241a22 100644 --- a/tvloader/parser2v1/parse_review.go +++ b/tvloader/parser2v1/parse_review.go @@ -5,14 +5,14 @@ package parser2v1 import ( "fmt" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_1" ) func (parser *tvParser2_1) parsePairFromReview2_1(tag string, value string) error { switch tag { // tag for creating new review section case "Reviewer": - parser.rev = &spdx.Review2_1{} + parser.rev = &v2_1.Review{} parser.doc.Reviews = append(parser.doc.Reviews, parser.rev) subkey, subvalue, err := extractSubs(value) if err != nil { @@ -37,14 +37,14 @@ func (parser *tvParser2_1) parsePairFromReview2_1(tag string, value string) erro parser.rev.ReviewComment = value // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_1{} + parser.rln = &v2_1.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_1(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_1(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_1{} + parser.ann = &v2_1.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_1(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v1/parse_review_test.go b/tvloader/parser2v1/parse_review_test.go index 2ef7006..c3cea2d 100644 --- a/tvloader/parser2v1/parse_review_test.go +++ b/tvloader/parser2v1/parse_review_test.go @@ -4,7 +4,7 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_1" ) // ===== Parser review section state change tests ===== @@ -12,15 +12,15 @@ func TestParser2_1ReviewStartsNewReviewAfterParsingReviewerTag(t *testing.T) { // create the first review rev1 := "John Doe" parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{ + rev: &v2_1.Review{ Reviewer: rev1, ReviewerType: "Person", }, @@ -82,15 +82,15 @@ func TestParser2_1ReviewStartsNewReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_1ReviewStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{ + rev: &v2_1.Review{ Reviewer: "Jane Doe", ReviewerType: "Person", }, @@ -129,15 +129,15 @@ func TestParser2_1ReviewStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_1ReviewStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{ + rev: &v2_1.Review{ Reviewer: "Jane Doe", ReviewerType: "Person", }, @@ -198,15 +198,15 @@ func TestParser2_1ReviewStaysAfterParsingAnnotationTags(t *testing.T) { func TestParser2_1ReviewFailsAfterParsingOtherSectionTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{}, + rev: &v2_1.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -235,15 +235,15 @@ func TestParser2_1ReviewFailsAfterParsingOtherSectionTags(t *testing.T) { // ===== Review data section tests ===== func TestParser2_1CanParseReviewTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{}, + rev: &v2_1.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -274,15 +274,15 @@ func TestParser2_1CanParseReviewTags(t *testing.T) { func TestParser2_1CanParseReviewerPersonTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{}, + rev: &v2_1.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -304,15 +304,15 @@ func TestParser2_1CanParseReviewerPersonTag(t *testing.T) { func TestParser2_1CanParseReviewerOrganizationTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{}, + rev: &v2_1.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -334,15 +334,15 @@ func TestParser2_1CanParseReviewerOrganizationTag(t *testing.T) { func TestParser2_1CanParseReviewerToolTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{}, + rev: &v2_1.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -364,9 +364,9 @@ func TestParser2_1CanParseReviewerToolTag(t *testing.T) { func TestParser2_1FailsIfReviewerInvalidFormat(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - rev: &spdx.Review2_1{}, + rev: &v2_1.Review{}, } parser.doc.Reviews = append(parser.doc.Reviews, parser.rev) @@ -378,9 +378,9 @@ func TestParser2_1FailsIfReviewerInvalidFormat(t *testing.T) { func TestParser2_1FailsIfReviewerUnknownType(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - rev: &spdx.Review2_1{}, + rev: &v2_1.Review{}, } parser.doc.Reviews = append(parser.doc.Reviews, parser.rev) @@ -392,15 +392,15 @@ func TestParser2_1FailsIfReviewerUnknownType(t *testing.T) { func TestParser2_1ReviewUnknownTagFails(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psReview2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_1{ + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_1.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_1{}, + rev: &v2_1.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) diff --git a/tvloader/parser2v1/parse_snippet.go b/tvloader/parser2v1/parse_snippet.go index 33392d5..ad4c74f 100644 --- a/tvloader/parser2v1/parse_snippet.go +++ b/tvloader/parser2v1/parse_snippet.go @@ -6,7 +6,8 @@ import ( "fmt" "strconv" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" ) func (parser *tvParser2_1) parsePairFromSnippet2_1(tag string, value string) error { @@ -17,7 +18,7 @@ func (parser *tvParser2_1) parsePairFromSnippet2_1(tag string, value string) err if parser.file != nil && parser.file.FileSPDXIdentifier == nullSpdxElementId2_1 { return fmt.Errorf("file with FileName %s does not have SPDX identifier", parser.file.FileName) } - parser.snippet = &spdx.Snippet2_1{} + parser.snippet = &v2_1.Snippet{} eID, err := extractElementID(value) if err != nil { return err @@ -25,7 +26,7 @@ func (parser *tvParser2_1) parsePairFromSnippet2_1(tag string, value string) err // FIXME: how should we handle where not associated with current file? if parser.file != nil { if parser.file.Snippets == nil { - parser.file.Snippets = map[spdx.ElementID]*spdx.Snippet2_1{} + parser.file.Snippets = map[common.ElementID]*v2_1.Snippet{} } parser.file.Snippets[eID] = parser.snippet } @@ -67,9 +68,9 @@ func (parser *tvParser2_1) parsePairFromSnippet2_1(tag string, value string) err } if parser.snippet.Ranges == nil { - parser.snippet.Ranges = []spdx.SnippetRange{} + parser.snippet.Ranges = []common.SnippetRange{} } - byteRange := spdx.SnippetRange{StartPointer: spdx.SnippetRangePointer{Offset: bIntStart}, EndPointer: spdx.SnippetRangePointer{Offset: bIntEnd}} + byteRange := common.SnippetRange{StartPointer: common.SnippetRangePointer{Offset: bIntStart}, EndPointer: common.SnippetRangePointer{Offset: bIntEnd}} parser.snippet.Ranges = append(parser.snippet.Ranges, byteRange) case "SnippetLineRange": lineStart, lineEnd, err := extractSubs(value) @@ -86,9 +87,9 @@ func (parser *tvParser2_1) parsePairFromSnippet2_1(tag string, value string) err } if parser.snippet.Ranges == nil { - parser.snippet.Ranges = []spdx.SnippetRange{} + parser.snippet.Ranges = []common.SnippetRange{} } - lineRange := spdx.SnippetRange{StartPointer: spdx.SnippetRangePointer{LineNumber: lInttStart}, EndPointer: spdx.SnippetRangePointer{LineNumber: lInttEnd}} + lineRange := common.SnippetRange{StartPointer: common.SnippetRangePointer{LineNumber: lInttStart}, EndPointer: common.SnippetRangePointer{LineNumber: lInttEnd}} parser.snippet.Ranges = append(parser.snippet.Ranges, lineRange) case "SnippetLicenseConcluded": parser.snippet.SnippetLicenseConcluded = value @@ -104,14 +105,14 @@ func (parser *tvParser2_1) parsePairFromSnippet2_1(tag string, value string) err parser.snippet.SnippetName = value // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_1{} + parser.rln = &v2_1.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_1(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_1(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_1{} + parser.ann = &v2_1.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_1(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v1/parse_snippet_test.go b/tvloader/parser2v1/parse_snippet_test.go index ea747f4..aa42c3c 100644 --- a/tvloader/parser2v1/parse_snippet_test.go +++ b/tvloader/parser2v1/parse_snippet_test.go @@ -4,19 +4,20 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" ) // ===== Parser snippet section state change tests ===== func TestParser2_1SnippetStartsNewSnippetAfterParsingSnippetSPDXIDTag(t *testing.T) { // create the first snippet - sid1 := spdx.ElementID("s1") + sid1 := common.ElementID("s1") parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{SnippetSPDXIdentifier: sid1}, + pkg: &v2_1.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{SnippetSPDXIdentifier: sid1}, } s1 := parser.snippet parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -71,11 +72,11 @@ func TestParser2_1SnippetStartsNewSnippetAfterParsingSnippetSPDXIDTag(t *testing func TestParser2_1SnippetStartsNewPackageAfterParsingPackageNameTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{SnippetSPDXIdentifier: "s1"}, } p1 := parser.pkg f1 := parser.file @@ -146,11 +147,11 @@ func TestParser2_1SnippetStartsNewPackageAfterParsingPackageNameTag(t *testing.T func TestParser2_1SnippetMovesToFileAfterParsingFileNameTag(t *testing.T) { f1Name := "f1.txt" parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{SnippetSPDXIdentifier: "s1"}, } p1 := parser.pkg f1 := parser.file @@ -198,11 +199,11 @@ func TestParser2_1SnippetMovesToFileAfterParsingFileNameTag(t *testing.T) { func TestParser2_1SnippetMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -219,11 +220,11 @@ func TestParser2_1SnippetMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing. func TestParser2_1SnippetMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -240,11 +241,11 @@ func TestParser2_1SnippetMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_1SnippetStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -279,11 +280,11 @@ func TestParser2_1SnippetStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_1SnippetStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -341,11 +342,11 @@ func TestParser2_1SnippetStaysAfterParsingAnnotationTags(t *testing.T) { // ===== Snippet data section tests ===== func TestParser2_1CanParseSnippetTags(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -364,7 +365,7 @@ func TestParser2_1CanParseSnippetTags(t *testing.T) { if err != nil { t.Errorf("expected nil error, got %v", err) } - wantDeID := spdx.DocElementID{DocumentRefID: "", ElementRefID: spdx.ElementID("f1")} + wantDeID := common.DocElementID{DocumentRefID: "", ElementRefID: common.ElementID("f1")} if parser.snippet.SnippetFromFileSPDXIdentifier != wantDeID.ElementRefID { t.Errorf("got %v for SnippetFromFileSPDXIdentifier", parser.snippet.SnippetFromFileSPDXIdentifier) } @@ -469,11 +470,11 @@ func TestParser2_1CanParseSnippetTags(t *testing.T) { func TestParser2_1SnippetUnknownTagFails(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -486,11 +487,11 @@ func TestParser2_1SnippetUnknownTagFails(t *testing.T) { func TestParser2_1FailsForInvalidSnippetSPDXID(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -504,11 +505,11 @@ func TestParser2_1FailsForInvalidSnippetSPDXID(t *testing.T) { func TestParser2_1FailsForInvalidSnippetFromFileSPDXID(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -527,11 +528,11 @@ func TestParser2_1FailsForInvalidSnippetFromFileSPDXID(t *testing.T) { func TestParser2_1FailsForInvalidSnippetByteValues(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -558,11 +559,11 @@ func TestParser2_1FailsForInvalidSnippetByteValues(t *testing.T) { func TestParser2_1FailsForInvalidSnippetLineValues(t *testing.T) { parser := tvParser2_1{ - doc: &spdx.Document2_1{Packages: []*spdx.Package2_1{}}, + doc: &v2_1.Document{Packages: []*v2_1.Package{}}, st: psSnippet2_1, - pkg: &spdx.Package2_1{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_1{}}, - file: &spdx.File2_1{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_1{}}, - snippet: &spdx.Snippet2_1{}, + pkg: &v2_1.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_1.File{}}, + file: &v2_1.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_1.Snippet{}}, + snippet: &v2_1.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -592,11 +593,11 @@ func TestParser2_1FilesWithoutSpdxIdThrowErrorWithSnippets(t *testing.T) { // Last unpackaged file before the snippet starts // Last file of a package and new snippet starts fileName := "f2.txt" - sid1 := spdx.ElementID("s1") + sid1 := common.ElementID("s1") parser2 := tvParser2_1{ - doc: &spdx.Document2_1{}, + doc: &v2_1.Document{}, st: psCreationInfo2_1, - file: &spdx.File2_1{FileName: fileName}, + file: &v2_1.File{FileName: fileName}, } err := parser2.parsePair2_1("SnippetSPDXID", string(sid1)) if err == nil { diff --git a/tvloader/parser2v1/parser.go b/tvloader/parser2v1/parser.go index 70f4819..c083fc9 100644 --- a/tvloader/parser2v1/parser.go +++ b/tvloader/parser2v1/parser.go @@ -6,13 +6,14 @@ package parser2v1 import ( "fmt" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" "github.com/spdx/tools-golang/tvloader/reader" ) // ParseTagValues takes a list of (tag, value) pairs, parses it and returns // a pointer to a parsed SPDX Document. -func ParseTagValues(tvs []reader.TagValuePair) (*spdx.Document2_1, error) { +func ParseTagValues(tvs []reader.TagValuePair) (*v2_1.Document, error) { parser := tvParser2_1{} for _, tv := range tvs { err := parser.parsePair2_1(tv.Tag, tv.Value) @@ -59,8 +60,8 @@ func (parser *tvParser2_1) parsePairFromStart2_1(tag string, value string) error // create an SPDX Document data struct if we don't have one already if parser.doc == nil { - parser.doc = &spdx.Document2_1{ - ExternalDocumentReferences: []spdx.ExternalDocumentRef2_1{}, + parser.doc = &v2_1.Document{ + ExternalDocumentReferences: []v2_1.ExternalDocumentRef{}, } } @@ -84,10 +85,10 @@ func (parser *tvParser2_1) parsePairFromStart2_1(tag string, value string) error if err != nil { return err } - edr := spdx.ExternalDocumentRef2_1{ + edr := v2_1.ExternalDocumentRef{ DocumentRefID: documentRefID, URI: uri, - Checksum: spdx.Checksum{Algorithm: spdx.ChecksumAlgorithm(alg), Value: checksum}, + Checksum: common.Checksum{Algorithm: common.ChecksumAlgorithm(alg), Value: checksum}, } parser.doc.ExternalDocumentReferences = append(parser.doc.ExternalDocumentReferences, edr) case "DocumentComment": diff --git a/tvloader/parser2v1/types.go b/tvloader/parser2v1/types.go index 164f6a8..8f3cf23 100644 --- a/tvloader/parser2v1/types.go +++ b/tvloader/parser2v1/types.go @@ -3,26 +3,27 @@ package parser2v1 import ( - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_1" ) type tvParser2_1 struct { // document into which data is being parsed - doc *spdx.Document2_1 + doc *v2_1.Document // current parser state st tvParserState2_1 // current SPDX item being filled in, if any - pkg *spdx.Package2_1 - pkgExtRef *spdx.PackageExternalReference2_1 - file *spdx.File2_1 - fileAOP *spdx.ArtifactOfProject2_1 - snippet *spdx.Snippet2_1 - otherLic *spdx.OtherLicense2_1 - rln *spdx.Relationship2_1 - ann *spdx.Annotation2_1 - rev *spdx.Review2_1 + pkg *v2_1.Package + pkgExtRef *v2_1.PackageExternalReference + file *v2_1.File + fileAOP *v2_1.ArtifactOfProject + snippet *v2_1.Snippet + otherLic *v2_1.OtherLicense + rln *v2_1.Relationship + ann *v2_1.Annotation + rev *v2_1.Review // don't need creation info pointer b/c only one, // and we can get to it via doc.CreationInfo } @@ -53,4 +54,4 @@ const ( psReview2_1 ) -const nullSpdxElementId2_1 = spdx.ElementID("") +const nullSpdxElementId2_1 = common.ElementID("") diff --git a/tvloader/parser2v1/util.go b/tvloader/parser2v1/util.go index d2df57b..7cac43d 100644 --- a/tvloader/parser2v1/util.go +++ b/tvloader/parser2v1/util.go @@ -6,7 +6,7 @@ import ( "fmt" "strings" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" ) // used to extract key / value from embedded substrings @@ -26,7 +26,7 @@ func extractSubs(value string) (string, string, error) { // used to extract DocumentRef and SPDXRef values from an SPDX Identifier // which can point either to this document or to a different one -func extractDocElementID(value string) (spdx.DocElementID, error) { +func extractDocElementID(value string) (common.DocElementID, error) { docRefID := "" idStr := value @@ -36,16 +36,16 @@ func extractDocElementID(value string) (spdx.DocElementID, error) { strs := strings.Split(idStr, ":") // should be exactly two, part before and part after if len(strs) < 2 { - return spdx.DocElementID{}, fmt.Errorf("no colon found although DocumentRef- prefix present") + return common.DocElementID{}, fmt.Errorf("no colon found although DocumentRef- prefix present") } if len(strs) > 2 { - return spdx.DocElementID{}, fmt.Errorf("more than one colon found") + return common.DocElementID{}, fmt.Errorf("more than one colon found") } // trim the prefix and confirm non-empty docRefID = strings.TrimPrefix(strs[0], "DocumentRef-") if docRefID == "" { - return spdx.DocElementID{}, fmt.Errorf("document identifier has nothing after prefix") + return common.DocElementID{}, fmt.Errorf("document identifier has nothing after prefix") } // and use remainder for element ID parsing idStr = strs[1] @@ -53,46 +53,46 @@ func extractDocElementID(value string) (spdx.DocElementID, error) { // check prefix to confirm it's got the right prefix for element IDs if !strings.HasPrefix(idStr, "SPDXRef-") { - return spdx.DocElementID{}, fmt.Errorf("missing SPDXRef- prefix for element identifier") + return common.DocElementID{}, fmt.Errorf("missing SPDXRef- prefix for element identifier") } // make sure no colons are present if strings.Contains(idStr, ":") { // we know this means there was no DocumentRef- prefix, because // we would have handled multiple colons above if it was - return spdx.DocElementID{}, fmt.Errorf("invalid colon in element identifier") + return common.DocElementID{}, fmt.Errorf("invalid colon in element identifier") } // trim the prefix and confirm non-empty eltRefID := strings.TrimPrefix(idStr, "SPDXRef-") if eltRefID == "" { - return spdx.DocElementID{}, fmt.Errorf("element identifier has nothing after prefix") + return common.DocElementID{}, fmt.Errorf("element identifier has nothing after prefix") } // we're good - return spdx.DocElementID{DocumentRefID: docRefID, ElementRefID: spdx.ElementID(eltRefID)}, nil + return common.DocElementID{DocumentRefID: docRefID, ElementRefID: common.ElementID(eltRefID)}, nil } // used to extract SPDXRef values only from an SPDX Identifier which can point // to this document only. Use extractDocElementID for parsing IDs that can // refer either to this document or a different one. -func extractElementID(value string) (spdx.ElementID, error) { +func extractElementID(value string) (common.ElementID, error) { // check prefix to confirm it's got the right prefix for element IDs if !strings.HasPrefix(value, "SPDXRef-") { - return spdx.ElementID(""), fmt.Errorf("missing SPDXRef- prefix for element identifier") + return common.ElementID(""), fmt.Errorf("missing SPDXRef- prefix for element identifier") } // make sure no colons are present if strings.Contains(value, ":") { - return spdx.ElementID(""), fmt.Errorf("invalid colon in element identifier") + return common.ElementID(""), fmt.Errorf("invalid colon in element identifier") } // trim the prefix and confirm non-empty eltRefID := strings.TrimPrefix(value, "SPDXRef-") if eltRefID == "" { - return spdx.ElementID(""), fmt.Errorf("element identifier has nothing after prefix") + return common.ElementID(""), fmt.Errorf("element identifier has nothing after prefix") } // we're good - return spdx.ElementID(eltRefID), nil + return common.ElementID(eltRefID), nil } diff --git a/tvloader/parser2v1/util_test.go b/tvloader/parser2v1/util_test.go index 79afc1e..349d84f 100644 --- a/tvloader/parser2v1/util_test.go +++ b/tvloader/parser2v1/util_test.go @@ -4,7 +4,7 @@ package parser2v1 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" ) // ===== Helper function tests ===== @@ -65,7 +65,7 @@ func helperForExtractDocElementID(t *testing.T, tst string, wantErr bool, wantDo t.Errorf("testing %v: want %v for DocumentRefID, got %v", tst, wantDoc, deID.DocumentRefID) } } - if deID.ElementRefID != spdx.ElementID(wantElt) { + if deID.ElementRefID != common.ElementID(wantElt) { if wantElt == "" { t.Errorf("testing %v: want emptyString for ElementRefID, got %v", tst, deID.ElementRefID) } else { @@ -101,7 +101,7 @@ func helperForExtractElementID(t *testing.T, tst string, wantErr bool, wantElt s if err == nil && wantErr == true { t.Errorf("testing %v: expected non-nil error, got nil", tst) } - if eID != spdx.ElementID(wantElt) { + if eID != common.ElementID(wantElt) { if wantElt == "" { t.Errorf("testing %v: want emptyString for ElementRefID, got %v", tst, eID) } else { diff --git a/tvloader/parser2v2/parse_annotation_test.go b/tvloader/parser2v2/parse_annotation_test.go index cdd0541..c2ba487 100644 --- a/tvloader/parser2v2/parse_annotation_test.go +++ b/tvloader/parser2v2/parse_annotation_test.go @@ -4,13 +4,13 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_2" ) // ===== Annotation section tests ===== func TestParser2_2FailsIfAnnotationNotSet(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePairForAnnotation2_2("Annotator", "Person: John Doe (jdoe@example.com)") @@ -21,7 +21,7 @@ func TestParser2_2FailsIfAnnotationNotSet(t *testing.T) { func TestParser2_2FailsIfAnnotationTagUnknown(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } // start with valid annotator @@ -38,7 +38,7 @@ func TestParser2_2FailsIfAnnotationTagUnknown(t *testing.T) { func TestParser2_2FailsIfAnnotationFieldsWithoutAnnotation(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePair2_2("AnnotationDate", "2018-09-15T17:25:00Z") @@ -61,7 +61,7 @@ func TestParser2_2FailsIfAnnotationFieldsWithoutAnnotation(t *testing.T) { func TestParser2_2CanParseAnnotationTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -121,7 +121,7 @@ func TestParser2_2CanParseAnnotationTags(t *testing.T) { func TestParser2_2FailsIfAnnotatorInvalid(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePair2_2("Annotator", "John Doe (jdoe@example.com)") @@ -132,7 +132,7 @@ func TestParser2_2FailsIfAnnotatorInvalid(t *testing.T) { func TestParser2_2FailsIfAnnotatorTypeInvalid(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePair2_2("Annotator", "Human: John Doe (jdoe@example.com)") @@ -143,7 +143,7 @@ func TestParser2_2FailsIfAnnotatorTypeInvalid(t *testing.T) { func TestParser2_2FailsIfAnnotationRefInvalid(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } // start with valid annotator diff --git a/tvloader/parser2v2/parse_creation_info.go b/tvloader/parser2v2/parse_creation_info.go index f8406fc..da258bd 100644 --- a/tvloader/parser2v2/parse_creation_info.go +++ b/tvloader/parser2v2/parse_creation_info.go @@ -6,7 +6,8 @@ import ( "fmt" "strings" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" ) func (parser *tvParser2_2) parsePairFromCreationInfo2_2(tag string, value string) error { @@ -17,7 +18,7 @@ func (parser *tvParser2_2) parsePairFromCreationInfo2_2(tag string, value string // create an SPDX Creation Info data struct if we don't have one already if parser.doc.CreationInfo == nil { - parser.doc.CreationInfo = &spdx.CreationInfo2_2{} + parser.doc.CreationInfo = &v2_2.CreationInfo{} } ci := parser.doc.CreationInfo @@ -30,7 +31,7 @@ func (parser *tvParser2_2) parsePairFromCreationInfo2_2(tag string, value string return err } - creator := spdx.Creator{Creator: subvalue} + creator := common.Creator{Creator: subvalue} switch subkey { case "Person", "Organization", "Tool": creator.CreatorType = subkey @@ -54,7 +55,7 @@ func (parser *tvParser2_2) parsePairFromCreationInfo2_2(tag string, value string return fmt.Errorf("file with FileName %s does not have SPDX identifier", parser.file.FileName) } parser.st = psPackage2_2 - parser.pkg = &spdx.Package2_2{ + parser.pkg = &v2_2.Package{ FilesAnalyzed: true, IsFilesAnalyzedTagPresent: false, } @@ -75,14 +76,14 @@ func (parser *tvParser2_2) parsePairFromCreationInfo2_2(tag string, value string return parser.parsePairFromReview2_2(tag, value) // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_2{} + parser.rln = &v2_2.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_2(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_2(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_2{} + parser.ann = &v2_2.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_2(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v2/parse_creation_info_test.go b/tvloader/parser2v2/parse_creation_info_test.go index 7121346..dcf6098 100644 --- a/tvloader/parser2v2/parse_creation_info_test.go +++ b/tvloader/parser2v2/parse_creation_info_test.go @@ -4,13 +4,13 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_2" ) // ===== Parser creation info state change tests ===== func TestParser2_2CIMovesToPackageAfterParsingPackageNameTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } pkgName := "testPkg" @@ -46,7 +46,7 @@ func TestParser2_2CIMovesToPackageAfterParsingPackageNameTag(t *testing.T) { func TestParser2_2CIMovesToFileAfterParsingFileNameTagWithNoPackages(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePair2_2("FileName", "testFile") @@ -66,7 +66,7 @@ func TestParser2_2CIMovesToFileAfterParsingFileNameTagWithNoPackages(t *testing. func TestParser2_2CIMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePair2_2("LicenseID", "LicenseRef-TestLic") @@ -80,7 +80,7 @@ func TestParser2_2CIMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { func TestParser2_2CIMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePair2_2("Reviewer", "Person: John Doe") @@ -94,7 +94,7 @@ func TestParser2_2CIMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_2CIStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -117,7 +117,7 @@ func TestParser2_2CIStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_2CIStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -164,7 +164,7 @@ func TestParser2_2CIStaysAfterParsingAnnotationTags(t *testing.T) { func TestParser2_2FailsParsingCreationInfoWithInvalidState(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psPackage2_2, } err := parser.parsePairFromCreationInfo2_2("SPDXVersion", "SPDX-2.2") @@ -176,7 +176,7 @@ func TestParser2_2FailsParsingCreationInfoWithInvalidState(t *testing.T) { // ===== Creation Info section tests ===== func TestParser2_2HasCreationInfoAfterCallToParseFirstTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePairFromCreationInfo2_2("LicenseListVersion", "3.9") @@ -190,7 +190,7 @@ func TestParser2_2HasCreationInfoAfterCallToParseFirstTag(t *testing.T) { func TestParser2_2CanParseCreationInfoTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -281,7 +281,7 @@ func TestParser2_2CanParseCreationInfoTags(t *testing.T) { func TestParser2_2InvalidCreatorTagsFail(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -298,7 +298,7 @@ func TestParser2_2InvalidCreatorTagsFail(t *testing.T) { func TestParser2_2CreatorTagWithMultipleColonsPasses(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -310,7 +310,7 @@ func TestParser2_2CreatorTagWithMultipleColonsPasses(t *testing.T) { func TestParser2_2CIUnknownTagFails(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -322,7 +322,7 @@ func TestParser2_2CIUnknownTagFails(t *testing.T) { func TestParser2_2CICreatesRelationship(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -340,7 +340,7 @@ func TestParser2_2CICreatesRelationship(t *testing.T) { func TestParser2_2CICreatesAnnotation(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } diff --git a/tvloader/parser2v2/parse_file.go b/tvloader/parser2v2/parse_file.go index e564147..96cefce 100644 --- a/tvloader/parser2v2/parse_file.go +++ b/tvloader/parser2v2/parse_file.go @@ -5,7 +5,8 @@ package parser2v2 import ( "fmt" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" ) func (parser *tvParser2_2) parsePairFromFile2_2(tag string, value string) error { @@ -22,7 +23,7 @@ func (parser *tvParser2_2) parsePairFromFile2_2(tag string, value string) error if parser.file != nil && parser.file.FileSPDXIdentifier == nullSpdxElementId2_2 { return fmt.Errorf("file with FileName %s does not have SPDX identifier", parser.file.FileName) } - parser.file = &spdx.File2_2{} + parser.file = &v2_2.File{} parser.file.FileName = value // tag for creating new package section and going back to parsing Package case "PackageName": @@ -50,12 +51,12 @@ func (parser *tvParser2_2) parsePairFromFile2_2(tag string, value string) error parser.file.FileSPDXIdentifier = eID if parser.pkg == nil { if parser.doc.Files == nil { - parser.doc.Files = []*spdx.File2_2{} + parser.doc.Files = []*v2_2.File{} } parser.doc.Files = append(parser.doc.Files, parser.file) } else { if parser.pkg.Files == nil { - parser.pkg.Files = []*spdx.File2_2{} + parser.pkg.Files = []*v2_2.File{} } parser.pkg.Files = append(parser.pkg.Files, parser.file) } @@ -67,12 +68,12 @@ func (parser *tvParser2_2) parsePairFromFile2_2(tag string, value string) error return err } if parser.file.Checksums == nil { - parser.file.Checksums = []spdx.Checksum{} + parser.file.Checksums = []common.Checksum{} } - switch spdx.ChecksumAlgorithm(subkey) { - case spdx.SHA1, spdx.SHA256, spdx.MD5: - algorithm := spdx.ChecksumAlgorithm(subkey) - parser.file.Checksums = append(parser.file.Checksums, spdx.Checksum{Algorithm: algorithm, Value: subvalue}) + switch common.ChecksumAlgorithm(subkey) { + case common.SHA1, common.SHA256, common.MD5: + algorithm := common.ChecksumAlgorithm(subkey) + parser.file.Checksums = append(parser.file.Checksums, common.Checksum{Algorithm: algorithm, Value: subvalue}) default: return fmt.Errorf("got unknown checksum type %s", subkey) } @@ -85,7 +86,7 @@ func (parser *tvParser2_2) parsePairFromFile2_2(tag string, value string) error case "FileCopyrightText": parser.file.FileCopyrightText = value case "ArtifactOfProjectName": - parser.fileAOP = &spdx.ArtifactOfProject2_2{} + parser.fileAOP = &v2_2.ArtifactOfProject{} parser.file.ArtifactOfProjects = append(parser.file.ArtifactOfProjects, parser.fileAOP) parser.fileAOP.Name = value case "ArtifactOfProjectHomePage": @@ -110,14 +111,14 @@ func (parser *tvParser2_2) parsePairFromFile2_2(tag string, value string) error parser.file.FileAttributionTexts = append(parser.file.FileAttributionTexts, value) // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_2{} + parser.rln = &v2_2.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_2(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_2(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_2{} + parser.ann = &v2_2.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_2(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v2/parse_file_test.go b/tvloader/parser2v2/parse_file_test.go index 30f9f5e..7341d9e 100644 --- a/tvloader/parser2v2/parse_file_test.go +++ b/tvloader/parser2v2/parse_file_test.go @@ -4,7 +4,8 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" ) // ===== Parser file section state change tests ===== @@ -13,10 +14,10 @@ func TestParser2_2FileStartsNewFileAfterParsingFileNameTag(t *testing.T) { fileOldName := "f1.txt" parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: fileOldName, FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: fileOldName, FileSPDXIdentifier: "f1"}, } fileOld := parser.file parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -88,7 +89,7 @@ func TestParser2_2FileStartsNewFileAfterParsingFileNameTag(t *testing.T) { func TestParser2_2FileAddsToPackageOrUnpackagedFiles(t *testing.T) { // start with no packages parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -149,10 +150,10 @@ func TestParser2_2FileStartsNewPackageAfterParsingPackageNameTag(t *testing.T) { f1Name := "f1.txt" parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: p1Name, PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: f1Name, FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: p1Name, PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: f1Name, FileSPDXIdentifier: "f1"}, } p1 := parser.pkg f1 := parser.file @@ -217,10 +218,10 @@ func TestParser2_2FileStartsNewPackageAfterParsingPackageNameTag(t *testing.T) { func TestParser2_2FileMovesToSnippetAfterParsingSnippetSPDXIDTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -242,10 +243,10 @@ func TestParser2_2FileMovesToSnippetAfterParsingSnippetSPDXIDTag(t *testing.T) { func TestParser2_2FileMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -261,10 +262,10 @@ func TestParser2_2FileMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) func TestParser2_2FileMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -280,10 +281,10 @@ func TestParser2_2FileMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_2FileStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -309,10 +310,10 @@ func TestParser2_2FileStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_2FileStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -361,9 +362,9 @@ func TestParser2_2FileStaysAfterParsingAnnotationTags(t *testing.T) { // ===== File data section tests ===== func TestParser2_2CanParseFileTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -445,15 +446,15 @@ func TestParser2_2CanParseFileTags(t *testing.T) { } for _, checksum := range parser.file.Checksums { switch checksum.Algorithm { - case spdx.SHA1: + case common.SHA1: if checksum.Value != codeSha1 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeSha1, checksum.Value) } - case spdx.SHA256: + case common.SHA256: if checksum.Value != codeSha256 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeSha256, checksum.Value) } - case spdx.MD5: + case common.MD5: if checksum.Value != codeMd5 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeMd5, checksum.Value) } @@ -703,10 +704,10 @@ func TestParser2_2CanParseFileTags(t *testing.T) { func TestParser2_2FileCreatesRelationshipInDocument(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -725,10 +726,10 @@ func TestParser2_2FileCreatesRelationshipInDocument(t *testing.T) { func TestParser2_2FileCreatesAnnotationInDocument(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -747,10 +748,10 @@ func TestParser2_2FileCreatesAnnotationInDocument(t *testing.T) { func TestParser2_2FileUnknownTagFails(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -763,10 +764,10 @@ func TestParser2_2FileUnknownTagFails(t *testing.T) { func TestFileAOPPointerChangesAfterTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -820,9 +821,9 @@ func TestFileAOPPointerChangesAfterTags(t *testing.T) { func TestParser2_2FailsIfInvalidSPDXIDInFileSection(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -840,9 +841,9 @@ func TestParser2_2FailsIfInvalidSPDXIDInFileSection(t *testing.T) { func TestParser2_2FailsIfInvalidChecksumFormatInFileSection(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -860,9 +861,9 @@ func TestParser2_2FailsIfInvalidChecksumFormatInFileSection(t *testing.T) { func TestParser2_1FailsIfUnknownChecksumTypeInFileSection(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -880,9 +881,9 @@ func TestParser2_1FailsIfUnknownChecksumTypeInFileSection(t *testing.T) { func TestParser2_2FailsIfArtifactHomePageBeforeArtifactName(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -900,9 +901,9 @@ func TestParser2_2FailsIfArtifactHomePageBeforeArtifactName(t *testing.T) { func TestParser2_2FailsIfArtifactURIBeforeArtifactName(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -921,9 +922,9 @@ func TestParser2_2FailsIfArtifactURIBeforeArtifactName(t *testing.T) { func TestParser2_2FilesWithoutSpdxIdThrowError(t *testing.T) { // case 1: The previous file (packaged or unpackaged) does not contain spdx ID parser1 := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, - file: &spdx.File2_2{FileName: "FileName"}, + file: &v2_2.File{FileName: "FileName"}, } err := parser1.parsePair2_2("FileName", "f2") @@ -934,11 +935,11 @@ func TestParser2_2FilesWithoutSpdxIdThrowError(t *testing.T) { // case 2: Invalid file with snippet // Last unpackaged file before the snippet start fileName := "f2.txt" - sid1 := spdx.ElementID("s1") + sid1 := common.ElementID("s1") parser2 := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, - file: &spdx.File2_2{FileName: fileName}, + file: &v2_2.File{FileName: fileName}, } err = parser2.parsePair2_2("SnippetSPDXID", string(sid1)) if err == nil { @@ -949,7 +950,7 @@ func TestParser2_2FilesWithoutSpdxIdThrowError(t *testing.T) { // Last unpackaged file before the package starts // Last file of a package and New package starts parser3 := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } fileName = "f3.txt" diff --git a/tvloader/parser2v2/parse_other_license.go b/tvloader/parser2v2/parse_other_license.go index 371f834..95250a6 100644 --- a/tvloader/parser2v2/parse_other_license.go +++ b/tvloader/parser2v2/parse_other_license.go @@ -5,14 +5,14 @@ package parser2v2 import ( "fmt" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_2" ) func (parser *tvParser2_2) parsePairFromOtherLicense2_2(tag string, value string) error { switch tag { // tag for creating new other license section case "LicenseID": - parser.otherLic = &spdx.OtherLicense2_2{} + parser.otherLic = &v2_2.OtherLicense{} parser.doc.OtherLicenses = append(parser.doc.OtherLicenses, parser.otherLic) parser.otherLic.LicenseIdentifier = value case "ExtractedText": @@ -25,14 +25,14 @@ func (parser *tvParser2_2) parsePairFromOtherLicense2_2(tag string, value string parser.otherLic.LicenseComment = value // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_2{} + parser.rln = &v2_2.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_2(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_2(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_2{} + parser.ann = &v2_2.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_2(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v2/parse_other_license_test.go b/tvloader/parser2v2/parse_other_license_test.go index e0607ee..cdba840 100644 --- a/tvloader/parser2v2/parse_other_license_test.go +++ b/tvloader/parser2v2/parse_other_license_test.go @@ -4,7 +4,7 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_2" ) // ===== Parser other license section state change tests ===== @@ -14,11 +14,11 @@ func TestParser2_2OLStartsNewOtherLicenseAfterParsingLicenseIDTag(t *testing.T) olname1 := "License 11" parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psOtherLicense2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: olid1, LicenseName: olname1, }, @@ -90,10 +90,10 @@ func TestParser2_2OLStartsNewOtherLicenseAfterParsingLicenseIDTag(t *testing.T) func TestParser2_2OLMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psOtherLicense2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -110,11 +110,11 @@ func TestParser2_2OLMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_2OtherLicenseStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psOtherLicense2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-whatever", LicenseName: "the whatever license", }, @@ -152,11 +152,11 @@ func TestParser2_2OtherLicenseStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_2OtherLicenseStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psOtherLicense2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-whatever", LicenseName: "the whatever license", }, @@ -216,11 +216,11 @@ func TestParser2_2OtherLicenseStaysAfterParsingAnnotationTags(t *testing.T) { func TestParser2_2OLFailsAfterParsingOtherSectionTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psOtherLicense2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, @@ -247,10 +247,10 @@ func TestParser2_2OLFailsAfterParsingOtherSectionTags(t *testing.T) { // ===== Other License data section tests ===== func TestParser2_2CanParseOtherLicenseTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psOtherLicense2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -323,10 +323,10 @@ func TestParser2_2CanParseOtherLicenseTags(t *testing.T) { func TestParser2_2OLUnknownTagFails(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psOtherLicense2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) diff --git a/tvloader/parser2v2/parse_package.go b/tvloader/parser2v2/parse_package.go index 4d6caf9..e8dbd7e 100644 --- a/tvloader/parser2v2/parse_package.go +++ b/tvloader/parser2v2/parse_package.go @@ -6,7 +6,8 @@ import ( "fmt" "strings" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" ) func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) error { @@ -24,7 +25,7 @@ func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) err if parser.pkg != nil && parser.pkg.PackageSPDXIdentifier == nullSpdxElementId2_2 { return fmt.Errorf("package with PackageName %s does not have SPDX identifier", parser.pkg.PackageName) } - parser.pkg = &spdx.Package2_2{ + parser.pkg = &v2_2.Package{ FilesAnalyzed: true, IsFilesAnalyzedTagPresent: false, } @@ -45,7 +46,7 @@ func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) err } parser.pkg.PackageSPDXIdentifier = eID if parser.doc.Packages == nil { - parser.doc.Packages = []*spdx.Package2_2{} + parser.doc.Packages = []*v2_2.Package{} } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) case "PackageVersion": @@ -53,7 +54,7 @@ func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) err case "PackageFileName": parser.pkg.PackageFileName = value case "PackageSupplier": - supplier := &spdx.Supplier{Supplier: value} + supplier := &common.Supplier{Supplier: value} if value == "NOASSERTION" { parser.pkg.PackageSupplier = supplier break @@ -72,7 +73,7 @@ func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) err } parser.pkg.PackageSupplier = supplier case "PackageOriginator": - originator := &spdx.Originator{Originator: value} + originator := &common.Originator{Originator: value} if value == "NOASSERTION" { parser.pkg.PackageOriginator = originator break @@ -107,12 +108,12 @@ func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) err return err } if parser.pkg.PackageChecksums == nil { - parser.pkg.PackageChecksums = []spdx.Checksum{} + parser.pkg.PackageChecksums = []common.Checksum{} } - switch spdx.ChecksumAlgorithm(subkey) { - case spdx.SHA1, spdx.SHA256, spdx.MD5: - algorithm := spdx.ChecksumAlgorithm(subkey) - parser.pkg.PackageChecksums = append(parser.pkg.PackageChecksums, spdx.Checksum{Algorithm: algorithm, Value: subvalue}) + switch common.ChecksumAlgorithm(subkey) { + case common.SHA1, common.SHA256, common.MD5: + algorithm := common.ChecksumAlgorithm(subkey) + parser.pkg.PackageChecksums = append(parser.pkg.PackageChecksums, common.Checksum{Algorithm: algorithm, Value: subvalue}) default: return fmt.Errorf("got unknown checksum type %s", subkey) } @@ -139,7 +140,7 @@ func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) err case "PackageAttributionText": parser.pkg.PackageAttributionTexts = append(parser.pkg.PackageAttributionTexts, value) case "ExternalRef": - parser.pkgExtRef = &spdx.PackageExternalReference2_2{} + parser.pkgExtRef = &v2_2.PackageExternalReference{} parser.pkg.PackageExternalReferences = append(parser.pkg.PackageExternalReferences, parser.pkgExtRef) category, refType, locator, err := extractPackageExternalReference(value) if err != nil { @@ -157,14 +158,14 @@ func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) err parser.pkgExtRef = nil // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_2{} + parser.rln = &v2_2.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_2(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_2(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_2{} + parser.ann = &v2_2.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_2(tag, value) case "AnnotationDate": @@ -188,13 +189,13 @@ func (parser *tvParser2_2) parsePairFromPackage2_2(tag string, value string) err // ===== Helper functions ===== -func extractCodeAndExcludes(value string) spdx.PackageVerificationCode { +func extractCodeAndExcludes(value string) common.PackageVerificationCode { // FIXME this should probably be done using regular expressions instead // split by paren + word "excludes:" sp := strings.SplitN(value, "(excludes:", 2) if len(sp) < 2 { // not found; return the whole string as just the code - return spdx.PackageVerificationCode{Value: value, ExcludedFiles: []string{}} + return common.PackageVerificationCode{Value: value, ExcludedFiles: []string{}} } // if we're here, code is in first part and excludes filename is in @@ -202,7 +203,7 @@ func extractCodeAndExcludes(value string) spdx.PackageVerificationCode { code := strings.TrimSpace(sp[0]) parsedSp := strings.SplitN(sp[1], ")", 2) fileName := strings.TrimSpace(parsedSp[0]) - return spdx.PackageVerificationCode{Value: code, ExcludedFiles: []string{fileName}} + return common.PackageVerificationCode{Value: code, ExcludedFiles: []string{fileName}} } func extractPackageExternalReference(value string) (string, string, string, error) { diff --git a/tvloader/parser2v2/parse_package_test.go b/tvloader/parser2v2/parse_package_test.go index 6b58d0f..a1610f7 100644 --- a/tvloader/parser2v2/parse_package_test.go +++ b/tvloader/parser2v2/parse_package_test.go @@ -4,7 +4,8 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" ) // ===== Parser package section state change tests ===== @@ -13,9 +14,9 @@ func TestParser2_2PackageStartsNewPackageAfterParsingPackageNameTag(t *testing.T pkgOldName := "p1" parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: pkgOldName, PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: pkgOldName, PackageSPDXIdentifier: "p1"}, } pkgOld := parser.pkg parser.doc.Packages = append(parser.doc.Packages, pkgOld) @@ -69,7 +70,7 @@ func TestParser2_2PackageStartsNewPackageAfterParsingPackageNameTagWhileInUnpack // pkg is nil, so that Files appearing before the first PackageName tag // are added to Files instead of Packages parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psFile2_2, pkg: nil, } @@ -112,9 +113,9 @@ func TestParser2_2PackageStartsNewPackageAfterParsingPackageNameTagWhileInUnpack func TestParser2_2PackageMovesToFileAfterParsingFileNameTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) pkgCurrent := parser.pkg @@ -135,9 +136,9 @@ func TestParser2_2PackageMovesToFileAfterParsingFileNameTag(t *testing.T) { func TestParser2_2PackageMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -152,9 +153,9 @@ func TestParser2_2PackageMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing. func TestParser2_2PackageMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -169,9 +170,9 @@ func TestParser2_2PackageMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_2PackageStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -196,9 +197,9 @@ func TestParser2_2PackageStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_2PackageStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -246,9 +247,9 @@ func TestParser2_2PackageStaysAfterParsingAnnotationTags(t *testing.T) { // ===== Package data section tests ===== func TestParser2_2CanParsePackageTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // should not yet be in Packages map, b/c no SPDX identifier @@ -355,15 +356,15 @@ func TestParser2_2CanParsePackageTags(t *testing.T) { } for _, checksum := range parser.pkg.PackageChecksums { switch checksum.Algorithm { - case spdx.SHA1: + case common.SHA1: if checksum.Value != codeSha1 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeSha1, checksum.Value) } - case spdx.SHA256: + case common.SHA256: if checksum.Value != codeSha256 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeSha256, checksum.Value) } - case spdx.MD5: + case common.MD5: if checksum.Value != codeMd5 { t.Errorf("expected %s for FileChecksumSHA1, got %s", codeMd5, checksum.Value) } @@ -589,9 +590,9 @@ func TestParser2_2CanParsePackageTags(t *testing.T) { func TestParser2_2CanParsePackageSupplierPersonTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -607,9 +608,9 @@ func TestParser2_2CanParsePackageSupplierPersonTag(t *testing.T) { func TestParser2_2CanParsePackageSupplierOrganizationTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -625,9 +626,9 @@ func TestParser2_2CanParsePackageSupplierOrganizationTag(t *testing.T) { func TestParser2_2CanParsePackageSupplierNOASSERTIONTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -643,9 +644,9 @@ func TestParser2_2CanParsePackageSupplierNOASSERTIONTag(t *testing.T) { func TestParser2_2CanParsePackageOriginatorPersonTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -661,9 +662,9 @@ func TestParser2_2CanParsePackageOriginatorPersonTag(t *testing.T) { func TestParser2_2CanParsePackageOriginatorOrganizationTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -679,9 +680,9 @@ func TestParser2_2CanParsePackageOriginatorOrganizationTag(t *testing.T) { func TestParser2_2CanParsePackageOriginatorNOASSERTIONTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -697,9 +698,9 @@ func TestParser2_2CanParsePackageOriginatorNOASSERTIONTag(t *testing.T) { func TestParser2_2CanParsePackageVerificationCodeTagWithExcludes(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -722,9 +723,9 @@ func TestParser2_2CanParsePackageVerificationCodeTagWithExcludes(t *testing.T) { func TestParser2_2CanParsePackageVerificationCodeTagWithoutExcludes(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -745,9 +746,9 @@ func TestParser2_2CanParsePackageVerificationCodeTagWithoutExcludes(t *testing.T func TestParser2_2PackageExternalRefPointerChangesAfterTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -790,9 +791,9 @@ func TestParser2_2PackageExternalRefPointerChangesAfterTags(t *testing.T) { func TestParser2_2PackageCreatesRelationshipInDocument(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -810,9 +811,9 @@ func TestParser2_2PackageCreatesRelationshipInDocument(t *testing.T) { func TestParser2_2PackageCreatesAnnotationInDocument(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -830,9 +831,9 @@ func TestParser2_2PackageCreatesAnnotationInDocument(t *testing.T) { func TestParser2_2PackageUnknownTagFails(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: "p1", PackageSPDXIdentifier: "p1"}, + pkg: &v2_2.Package{PackageName: "p1", PackageSPDXIdentifier: "p1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -844,9 +845,9 @@ func TestParser2_2PackageUnknownTagFails(t *testing.T) { func TestParser2_2FailsIfInvalidSPDXIDInPackageSection(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -863,9 +864,9 @@ func TestParser2_2FailsIfInvalidSPDXIDInPackageSection(t *testing.T) { func TestParser2_2FailsIfInvalidPackageSupplierFormat(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -882,9 +883,9 @@ func TestParser2_2FailsIfInvalidPackageSupplierFormat(t *testing.T) { func TestParser2_2FailsIfUnknownPackageSupplierType(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -901,9 +902,9 @@ func TestParser2_2FailsIfUnknownPackageSupplierType(t *testing.T) { func TestParser2_2FailsIfInvalidPackageOriginatorFormat(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -920,9 +921,9 @@ func TestParser2_2FailsIfInvalidPackageOriginatorFormat(t *testing.T) { func TestParser2_2FailsIfUnknownPackageOriginatorType(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -939,9 +940,9 @@ func TestParser2_2FailsIfUnknownPackageOriginatorType(t *testing.T) { func TestParser2_2SetsFilesAnalyzedTagsCorrectly(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -964,9 +965,9 @@ func TestParser2_2SetsFilesAnalyzedTagsCorrectly(t *testing.T) { func TestParser2_2FailsIfInvalidPackageChecksumFormat(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -983,9 +984,9 @@ func TestParser2_2FailsIfInvalidPackageChecksumFormat(t *testing.T) { func TestParser2_2FailsIfInvalidPackageChecksumType(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -1002,9 +1003,9 @@ func TestParser2_2FailsIfInvalidPackageChecksumType(t *testing.T) { func TestParser2_2FailsIfInvalidExternalRefFormat(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -1021,9 +1022,9 @@ func TestParser2_2FailsIfInvalidExternalRefFormat(t *testing.T) { func TestParser2_2FailsIfExternalRefCommentBeforeExternalRef(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{}, + pkg: &v2_2.Package{}, } // start with Package Name @@ -1107,9 +1108,9 @@ func TestParser2_2PackageWithoutSpdxIdentifierThrowsError(t *testing.T) { // More than one package, the previous package doesn't contain an SPDX ID pkgOldName := "p1" parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psPackage2_2, - pkg: &spdx.Package2_2{PackageName: pkgOldName}, + pkg: &v2_2.Package{PackageName: pkgOldName}, } pkgOld := parser.pkg parser.doc.Packages = append(parser.doc.Packages, pkgOld) diff --git a/tvloader/parser2v2/parse_relationship_test.go b/tvloader/parser2v2/parse_relationship_test.go index 0e6c013..48285fc 100644 --- a/tvloader/parser2v2/parse_relationship_test.go +++ b/tvloader/parser2v2/parse_relationship_test.go @@ -4,13 +4,13 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_2" ) // ===== Relationship section tests ===== func TestParser2_2FailsIfRelationshipNotSet(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePairForRelationship2_2("Relationship", "SPDXRef-A CONTAINS SPDXRef-B") @@ -21,7 +21,7 @@ func TestParser2_2FailsIfRelationshipNotSet(t *testing.T) { func TestParser2_2FailsIfRelationshipCommentWithoutRelationship(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } err := parser.parsePair2_2("RelationshipComment", "comment whatever") @@ -32,7 +32,7 @@ func TestParser2_2FailsIfRelationshipCommentWithoutRelationship(t *testing.T) { func TestParser2_2CanParseRelationshipTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -64,7 +64,7 @@ func TestParser2_2CanParseRelationshipTags(t *testing.T) { func TestParser2_2InvalidRelationshipTagsNoValueFail(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -78,7 +78,7 @@ func TestParser2_2InvalidRelationshipTagsNoValueFail(t *testing.T) { func TestParser2_2InvalidRelationshipTagsOneValueFail(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -92,7 +92,7 @@ func TestParser2_2InvalidRelationshipTagsOneValueFail(t *testing.T) { func TestParser2_2InvalidRelationshipTagsTwoValuesFail(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -106,7 +106,7 @@ func TestParser2_2InvalidRelationshipTagsTwoValuesFail(t *testing.T) { func TestParser2_2InvalidRelationshipTagsThreeValuesSucceed(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -120,7 +120,7 @@ func TestParser2_2InvalidRelationshipTagsThreeValuesSucceed(t *testing.T) { func TestParser2_2InvalidRelationshipTagsFourValuesFail(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -134,7 +134,7 @@ func TestParser2_2InvalidRelationshipTagsFourValuesFail(t *testing.T) { func TestParser2_2InvalidRelationshipTagsInvalidRefIDs(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -154,7 +154,7 @@ func TestParser2_2InvalidRelationshipTagsInvalidRefIDs(t *testing.T) { func TestParser2_2SpecialValuesValidForRightSideOfRelationship(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } @@ -185,7 +185,7 @@ func TestParser2_2SpecialValuesValidForRightSideOfRelationship(t *testing.T) { func TestParser2_2FailsToParseUnknownTagInRelationshipSection(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, } diff --git a/tvloader/parser2v2/parse_review.go b/tvloader/parser2v2/parse_review.go index 065d889..09691c8 100644 --- a/tvloader/parser2v2/parse_review.go +++ b/tvloader/parser2v2/parse_review.go @@ -5,14 +5,14 @@ package parser2v2 import ( "fmt" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_2" ) func (parser *tvParser2_2) parsePairFromReview2_2(tag string, value string) error { switch tag { // tag for creating new review section case "Reviewer": - parser.rev = &spdx.Review2_2{} + parser.rev = &v2_2.Review{} parser.doc.Reviews = append(parser.doc.Reviews, parser.rev) subkey, subvalue, err := extractSubs(value) if err != nil { @@ -37,14 +37,14 @@ func (parser *tvParser2_2) parsePairFromReview2_2(tag string, value string) erro parser.rev.ReviewComment = value // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_2{} + parser.rln = &v2_2.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_2(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_2(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_2{} + parser.ann = &v2_2.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_2(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v2/parse_review_test.go b/tvloader/parser2v2/parse_review_test.go index de73ede..f93afbf 100644 --- a/tvloader/parser2v2/parse_review_test.go +++ b/tvloader/parser2v2/parse_review_test.go @@ -4,7 +4,7 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_2" ) // ===== Parser review section state change tests ===== @@ -12,15 +12,15 @@ func TestParser2_2ReviewStartsNewReviewAfterParsingReviewerTag(t *testing.T) { // create the first review rev1 := "John Doe" parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{ + rev: &v2_2.Review{ Reviewer: rev1, ReviewerType: "Person", }, @@ -82,15 +82,15 @@ func TestParser2_2ReviewStartsNewReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_2ReviewStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{ + rev: &v2_2.Review{ Reviewer: "Jane Doe", ReviewerType: "Person", }, @@ -129,15 +129,15 @@ func TestParser2_2ReviewStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_2ReviewStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{ + rev: &v2_2.Review{ Reviewer: "Jane Doe", ReviewerType: "Person", }, @@ -198,15 +198,15 @@ func TestParser2_2ReviewStaysAfterParsingAnnotationTags(t *testing.T) { func TestParser2_2ReviewFailsAfterParsingOtherSectionTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{}, + rev: &v2_2.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -235,15 +235,15 @@ func TestParser2_2ReviewFailsAfterParsingOtherSectionTags(t *testing.T) { // ===== Review data section tests ===== func TestParser2_2CanParseReviewTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{}, + rev: &v2_2.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -274,15 +274,15 @@ func TestParser2_2CanParseReviewTags(t *testing.T) { func TestParser2_2CanParseReviewerPersonTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{}, + rev: &v2_2.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -304,15 +304,15 @@ func TestParser2_2CanParseReviewerPersonTag(t *testing.T) { func TestParser2_2CanParseReviewerOrganizationTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{}, + rev: &v2_2.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -334,15 +334,15 @@ func TestParser2_2CanParseReviewerOrganizationTag(t *testing.T) { func TestParser2_2CanParseReviewerToolTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{}, + rev: &v2_2.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -364,9 +364,9 @@ func TestParser2_2CanParseReviewerToolTag(t *testing.T) { func TestParser2_2FailsIfReviewerInvalidFormat(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - rev: &spdx.Review2_2{}, + rev: &v2_2.Review{}, } parser.doc.Reviews = append(parser.doc.Reviews, parser.rev) @@ -378,9 +378,9 @@ func TestParser2_2FailsIfReviewerInvalidFormat(t *testing.T) { func TestParser2_2FailsIfReviewerUnknownType(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - rev: &spdx.Review2_2{}, + rev: &v2_2.Review{}, } parser.doc.Reviews = append(parser.doc.Reviews, parser.rev) @@ -392,15 +392,15 @@ func TestParser2_2FailsIfReviewerUnknownType(t *testing.T) { func TestParser2_2ReviewUnknownTagFails(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psReview2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, - otherLic: &spdx.OtherLicense2_2{ + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1"}, + otherLic: &v2_2.OtherLicense{ LicenseIdentifier: "LicenseRef-Lic11", LicenseName: "License 11", }, - rev: &spdx.Review2_2{}, + rev: &v2_2.Review{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) diff --git a/tvloader/parser2v2/parse_snippet.go b/tvloader/parser2v2/parse_snippet.go index d3bac47..5b4f41a 100644 --- a/tvloader/parser2v2/parse_snippet.go +++ b/tvloader/parser2v2/parse_snippet.go @@ -6,7 +6,8 @@ import ( "fmt" "strconv" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" ) func (parser *tvParser2_2) parsePairFromSnippet2_2(tag string, value string) error { @@ -17,7 +18,7 @@ func (parser *tvParser2_2) parsePairFromSnippet2_2(tag string, value string) err if parser.file != nil && parser.file.FileSPDXIdentifier == nullSpdxElementId2_2 { return fmt.Errorf("file with FileName %s does not have SPDX identifier", parser.file.FileName) } - parser.snippet = &spdx.Snippet2_2{} + parser.snippet = &v2_2.Snippet{} eID, err := extractElementID(value) if err != nil { return err @@ -25,7 +26,7 @@ func (parser *tvParser2_2) parsePairFromSnippet2_2(tag string, value string) err // FIXME: how should we handle where not associated with current file? if parser.file != nil { if parser.file.Snippets == nil { - parser.file.Snippets = map[spdx.ElementID]*spdx.Snippet2_2{} + parser.file.Snippets = map[common.ElementID]*v2_2.Snippet{} } parser.file.Snippets[eID] = parser.snippet } @@ -67,9 +68,9 @@ func (parser *tvParser2_2) parsePairFromSnippet2_2(tag string, value string) err } if parser.snippet.Ranges == nil { - parser.snippet.Ranges = []spdx.SnippetRange{} + parser.snippet.Ranges = []common.SnippetRange{} } - byteRange := spdx.SnippetRange{StartPointer: spdx.SnippetRangePointer{Offset: bIntStart}, EndPointer: spdx.SnippetRangePointer{Offset: bIntEnd}} + byteRange := common.SnippetRange{StartPointer: common.SnippetRangePointer{Offset: bIntStart}, EndPointer: common.SnippetRangePointer{Offset: bIntEnd}} parser.snippet.Ranges = append(parser.snippet.Ranges, byteRange) case "SnippetLineRange": lineStart, lineEnd, err := extractSubs(value) @@ -86,9 +87,9 @@ func (parser *tvParser2_2) parsePairFromSnippet2_2(tag string, value string) err } if parser.snippet.Ranges == nil { - parser.snippet.Ranges = []spdx.SnippetRange{} + parser.snippet.Ranges = []common.SnippetRange{} } - lineRange := spdx.SnippetRange{StartPointer: spdx.SnippetRangePointer{LineNumber: lInttStart}, EndPointer: spdx.SnippetRangePointer{LineNumber: lInttEnd}} + lineRange := common.SnippetRange{StartPointer: common.SnippetRangePointer{LineNumber: lInttStart}, EndPointer: common.SnippetRangePointer{LineNumber: lInttEnd}} parser.snippet.Ranges = append(parser.snippet.Ranges, lineRange) case "SnippetLicenseConcluded": parser.snippet.SnippetLicenseConcluded = value @@ -106,14 +107,14 @@ func (parser *tvParser2_2) parsePairFromSnippet2_2(tag string, value string) err parser.snippet.SnippetAttributionTexts = append(parser.snippet.SnippetAttributionTexts, value) // for relationship tags, pass along but don't change state case "Relationship": - parser.rln = &spdx.Relationship2_2{} + parser.rln = &v2_2.Relationship{} parser.doc.Relationships = append(parser.doc.Relationships, parser.rln) return parser.parsePairForRelationship2_2(tag, value) case "RelationshipComment": return parser.parsePairForRelationship2_2(tag, value) // for annotation tags, pass along but don't change state case "Annotator": - parser.ann = &spdx.Annotation2_2{} + parser.ann = &v2_2.Annotation{} parser.doc.Annotations = append(parser.doc.Annotations, parser.ann) return parser.parsePairForAnnotation2_2(tag, value) case "AnnotationDate": diff --git a/tvloader/parser2v2/parse_snippet_test.go b/tvloader/parser2v2/parse_snippet_test.go index 545595a..1d6ddb2 100644 --- a/tvloader/parser2v2/parse_snippet_test.go +++ b/tvloader/parser2v2/parse_snippet_test.go @@ -4,19 +4,20 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" ) // ===== Parser snippet section state change tests ===== func TestParser2_2SnippetStartsNewSnippetAfterParsingSnippetSPDXIDTag(t *testing.T) { // create the first snippet - sid1 := spdx.ElementID("s1") + sid1 := common.ElementID("s1") parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{SnippetSPDXIdentifier: sid1}, + pkg: &v2_2.Package{PackageName: "test", PackageSPDXIdentifier: "test", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{SnippetSPDXIdentifier: sid1}, } s1 := parser.snippet parser.doc.Packages = append(parser.doc.Packages, parser.pkg) @@ -71,11 +72,11 @@ func TestParser2_2SnippetStartsNewSnippetAfterParsingSnippetSPDXIDTag(t *testing func TestParser2_2SnippetStartsNewPackageAfterParsingPackageNameTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{SnippetSPDXIdentifier: "s1"}, } p1 := parser.pkg f1 := parser.file @@ -146,11 +147,11 @@ func TestParser2_2SnippetStartsNewPackageAfterParsingPackageNameTag(t *testing.T func TestParser2_2SnippetMovesToFileAfterParsingFileNameTag(t *testing.T) { f1Name := "f1.txt" parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{SnippetSPDXIdentifier: "s1"}, } p1 := parser.pkg f1 := parser.file @@ -198,11 +199,11 @@ func TestParser2_2SnippetMovesToFileAfterParsingFileNameTag(t *testing.T) { func TestParser2_2SnippetMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -219,11 +220,11 @@ func TestParser2_2SnippetMovesToOtherLicenseAfterParsingLicenseIDTag(t *testing. func TestParser2_2SnippetMovesToReviewAfterParsingReviewerTag(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -240,11 +241,11 @@ func TestParser2_2SnippetMovesToReviewAfterParsingReviewerTag(t *testing.T) { func TestParser2_2SnippetStaysAfterParsingRelationshipTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -279,11 +280,11 @@ func TestParser2_2SnippetStaysAfterParsingRelationshipTags(t *testing.T) { func TestParser2_2SnippetStaysAfterParsingAnnotationTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -341,11 +342,11 @@ func TestParser2_2SnippetStaysAfterParsingAnnotationTags(t *testing.T) { // ===== Snippet data section tests ===== func TestParser2_2CanParseSnippetTags(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -364,7 +365,7 @@ func TestParser2_2CanParseSnippetTags(t *testing.T) { if err != nil { t.Errorf("expected nil error, got %v", err) } - wantDeID := spdx.DocElementID{DocumentRefID: "", ElementRefID: spdx.ElementID("f1")} + wantDeID := common.DocElementID{DocumentRefID: "", ElementRefID: common.ElementID("f1")} if parser.snippet.SnippetFromFileSPDXIdentifier != wantDeID.ElementRefID { t.Errorf("got %v for SnippetFromFileSPDXIdentifier", parser.snippet.SnippetFromFileSPDXIdentifier) } @@ -497,11 +498,11 @@ func TestParser2_2CanParseSnippetTags(t *testing.T) { func TestParser2_2SnippetUnknownTagFails(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{SnippetSPDXIdentifier: "s1"}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{SnippetSPDXIdentifier: "s1"}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -514,11 +515,11 @@ func TestParser2_2SnippetUnknownTagFails(t *testing.T) { func TestParser2_2FailsForInvalidSnippetSPDXID(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -532,11 +533,11 @@ func TestParser2_2FailsForInvalidSnippetSPDXID(t *testing.T) { func TestParser2_2FailsForInvalidSnippetFromFileSPDXID(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -555,11 +556,11 @@ func TestParser2_2FailsForInvalidSnippetFromFileSPDXID(t *testing.T) { func TestParser2_2FailsForInvalidSnippetByteValues(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -586,11 +587,11 @@ func TestParser2_2FailsForInvalidSnippetByteValues(t *testing.T) { func TestParser2_2FailsForInvalidSnippetLineValues(t *testing.T) { parser := tvParser2_2{ - doc: &spdx.Document2_2{Packages: []*spdx.Package2_2{}}, + doc: &v2_2.Document{Packages: []*v2_2.Package{}}, st: psSnippet2_2, - pkg: &spdx.Package2_2{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*spdx.File2_2{}}, - file: &spdx.File2_2{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[spdx.ElementID]*spdx.Snippet2_2{}}, - snippet: &spdx.Snippet2_2{}, + pkg: &v2_2.Package{PackageName: "package1", PackageSPDXIdentifier: "package1", Files: []*v2_2.File{}}, + file: &v2_2.File{FileName: "f1.txt", FileSPDXIdentifier: "f1", Snippets: map[common.ElementID]*v2_2.Snippet{}}, + snippet: &v2_2.Snippet{}, } parser.doc.Packages = append(parser.doc.Packages, parser.pkg) parser.pkg.Files = append(parser.pkg.Files, parser.file) @@ -620,11 +621,11 @@ func TestParser2_2FilesWithoutSpdxIdThrowErrorWithSnippets(t *testing.T) { // Last unpackaged file before the snippet starts // Last file of a package and New package starts fileName := "f2.txt" - sid1 := spdx.ElementID("s1") + sid1 := common.ElementID("s1") parser2 := tvParser2_2{ - doc: &spdx.Document2_2{}, + doc: &v2_2.Document{}, st: psCreationInfo2_2, - file: &spdx.File2_2{FileName: fileName}, + file: &v2_2.File{FileName: fileName}, } err := parser2.parsePair2_2("SnippetSPDXID", string(sid1)) if err == nil { diff --git a/tvloader/parser2v2/parser.go b/tvloader/parser2v2/parser.go index 1d9f8e9..72f67be 100644 --- a/tvloader/parser2v2/parser.go +++ b/tvloader/parser2v2/parser.go @@ -6,13 +6,14 @@ package parser2v2 import ( "fmt" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" "github.com/spdx/tools-golang/tvloader/reader" ) // ParseTagValues takes a list of (tag, value) pairs, parses it and returns // a pointer to a parsed SPDX Document. -func ParseTagValues(tvs []reader.TagValuePair) (*spdx.Document2_2, error) { +func ParseTagValues(tvs []reader.TagValuePair) (*v2_2.Document, error) { parser := tvParser2_2{} for _, tv := range tvs { err := parser.parsePair2_2(tv.Tag, tv.Value) @@ -58,7 +59,7 @@ func (parser *tvParser2_2) parsePairFromStart2_2(tag string, value string) error // create an SPDX Document data struct if we don't have one already if parser.doc == nil { - parser.doc = &spdx.Document2_2{ExternalDocumentReferences: []spdx.ExternalDocumentRef2_2{}} + parser.doc = &v2_2.Document{ExternalDocumentReferences: []v2_2.ExternalDocumentRef{}} } switch tag { @@ -83,10 +84,10 @@ func (parser *tvParser2_2) parsePairFromStart2_2(tag string, value string) error if err != nil { return err } - edr := spdx.ExternalDocumentRef2_2{ + edr := v2_2.ExternalDocumentRef{ DocumentRefID: documentRefID, URI: uri, - Checksum: spdx.Checksum{Algorithm: spdx.ChecksumAlgorithm(alg), Value: checksum}, + Checksum: common.Checksum{Algorithm: common.ChecksumAlgorithm(alg), Value: checksum}, } parser.doc.ExternalDocumentReferences = append(parser.doc.ExternalDocumentReferences, edr) default: diff --git a/tvloader/parser2v2/types.go b/tvloader/parser2v2/types.go index 1cdbcef..52d6a9a 100644 --- a/tvloader/parser2v2/types.go +++ b/tvloader/parser2v2/types.go @@ -3,26 +3,27 @@ package parser2v2 import ( - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" + "github.com/spdx/tools-golang/spdx/v2_2" ) type tvParser2_2 struct { // document into which data is being parsed - doc *spdx.Document2_2 + doc *v2_2.Document // current parser state st tvParserState2_2 // current SPDX item being filled in, if any - pkg *spdx.Package2_2 - pkgExtRef *spdx.PackageExternalReference2_2 - file *spdx.File2_2 - fileAOP *spdx.ArtifactOfProject2_2 - snippet *spdx.Snippet2_2 - otherLic *spdx.OtherLicense2_2 - rln *spdx.Relationship2_2 - ann *spdx.Annotation2_2 - rev *spdx.Review2_2 + pkg *v2_2.Package + pkgExtRef *v2_2.PackageExternalReference + file *v2_2.File + fileAOP *v2_2.ArtifactOfProject + snippet *v2_2.Snippet + otherLic *v2_2.OtherLicense + rln *v2_2.Relationship + ann *v2_2.Annotation + rev *v2_2.Review // don't need creation info pointer b/c only one, // and we can get to it via doc.CreationInfo } @@ -53,4 +54,4 @@ const ( psReview2_2 ) -const nullSpdxElementId2_2 = spdx.ElementID("") +const nullSpdxElementId2_2 = common.ElementID("") diff --git a/tvloader/parser2v2/util.go b/tvloader/parser2v2/util.go index 6676846..5e84433 100644 --- a/tvloader/parser2v2/util.go +++ b/tvloader/parser2v2/util.go @@ -6,7 +6,7 @@ import ( "fmt" "strings" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" ) // used to extract key / value from embedded substrings @@ -26,7 +26,7 @@ func extractSubs(value string) (string, string, error) { // used to extract DocumentRef and SPDXRef values from an SPDX Identifier // which can point either to this document or to a different one -func extractDocElementID(value string) (spdx.DocElementID, error) { +func extractDocElementID(value string) (common.DocElementID, error) { docRefID := "" idStr := value @@ -36,16 +36,16 @@ func extractDocElementID(value string) (spdx.DocElementID, error) { strs := strings.Split(idStr, ":") // should be exactly two, part before and part after if len(strs) < 2 { - return spdx.DocElementID{}, fmt.Errorf("no colon found although DocumentRef- prefix present") + return common.DocElementID{}, fmt.Errorf("no colon found although DocumentRef- prefix present") } if len(strs) > 2 { - return spdx.DocElementID{}, fmt.Errorf("more than one colon found") + return common.DocElementID{}, fmt.Errorf("more than one colon found") } // trim the prefix and confirm non-empty docRefID = strings.TrimPrefix(strs[0], "DocumentRef-") if docRefID == "" { - return spdx.DocElementID{}, fmt.Errorf("document identifier has nothing after prefix") + return common.DocElementID{}, fmt.Errorf("document identifier has nothing after prefix") } // and use remainder for element ID parsing idStr = strs[1] @@ -53,24 +53,24 @@ func extractDocElementID(value string) (spdx.DocElementID, error) { // check prefix to confirm it's got the right prefix for element IDs if !strings.HasPrefix(idStr, "SPDXRef-") { - return spdx.DocElementID{}, fmt.Errorf("missing SPDXRef- prefix for element identifier") + return common.DocElementID{}, fmt.Errorf("missing SPDXRef- prefix for element identifier") } // make sure no colons are present if strings.Contains(idStr, ":") { // we know this means there was no DocumentRef- prefix, because // we would have handled multiple colons above if it was - return spdx.DocElementID{}, fmt.Errorf("invalid colon in element identifier") + return common.DocElementID{}, fmt.Errorf("invalid colon in element identifier") } // trim the prefix and confirm non-empty eltRefID := strings.TrimPrefix(idStr, "SPDXRef-") if eltRefID == "" { - return spdx.DocElementID{}, fmt.Errorf("element identifier has nothing after prefix") + return common.DocElementID{}, fmt.Errorf("element identifier has nothing after prefix") } // we're good - return spdx.DocElementID{DocumentRefID: docRefID, ElementRefID: spdx.ElementID(eltRefID)}, nil + return common.DocElementID{DocumentRefID: docRefID, ElementRefID: common.ElementID(eltRefID)}, nil } // used to extract SPDXRef values from an SPDX Identifier, OR "special" strings @@ -79,11 +79,11 @@ func extractDocElementID(value string) (spdx.DocElementID, error) { // "NONE" and "NOASSERTION" are permitted. If the value does not match one of // the specified permitted values, it will fall back to the ordinary // DocElementID extractor. -func extractDocElementSpecial(value string, permittedSpecial []string) (spdx.DocElementID, error) { +func extractDocElementSpecial(value string, permittedSpecial []string) (common.DocElementID, error) { // check value against special set first for _, sp := range permittedSpecial { if sp == value { - return spdx.DocElementID{SpecialID: sp}, nil + return common.DocElementID{SpecialID: sp}, nil } } // not found, fall back to regular search @@ -93,23 +93,23 @@ func extractDocElementSpecial(value string, permittedSpecial []string) (spdx.Doc // used to extract SPDXRef values only from an SPDX Identifier which can point // to this document only. Use extractDocElementID for parsing IDs that can // refer either to this document or a different one. -func extractElementID(value string) (spdx.ElementID, error) { +func extractElementID(value string) (common.ElementID, error) { // check prefix to confirm it's got the right prefix for element IDs if !strings.HasPrefix(value, "SPDXRef-") { - return spdx.ElementID(""), fmt.Errorf("missing SPDXRef- prefix for element identifier") + return common.ElementID(""), fmt.Errorf("missing SPDXRef- prefix for element identifier") } // make sure no colons are present if strings.Contains(value, ":") { - return spdx.ElementID(""), fmt.Errorf("invalid colon in element identifier") + return common.ElementID(""), fmt.Errorf("invalid colon in element identifier") } // trim the prefix and confirm non-empty eltRefID := strings.TrimPrefix(value, "SPDXRef-") if eltRefID == "" { - return spdx.ElementID(""), fmt.Errorf("element identifier has nothing after prefix") + return common.ElementID(""), fmt.Errorf("element identifier has nothing after prefix") } // we're good - return spdx.ElementID(eltRefID), nil + return common.ElementID(eltRefID), nil } diff --git a/tvloader/parser2v2/util_test.go b/tvloader/parser2v2/util_test.go index e2f75d7..80050f3 100644 --- a/tvloader/parser2v2/util_test.go +++ b/tvloader/parser2v2/util_test.go @@ -4,7 +4,7 @@ package parser2v2 import ( "testing" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/common" ) // ===== Helper function tests ===== @@ -65,7 +65,7 @@ func helperForExtractDocElementID(t *testing.T, tst string, wantErr bool, wantDo t.Errorf("testing %v: want %v for DocumentRefID, got %v", tst, wantDoc, deID.DocumentRefID) } } - if deID.ElementRefID != spdx.ElementID(wantElt) { + if deID.ElementRefID != common.ElementID(wantElt) { if wantElt == "" { t.Errorf("testing %v: want empty string for ElementRefID, got %v", tst, deID.ElementRefID) } else { @@ -103,7 +103,7 @@ func helperForExtractDocElementSpecial(t *testing.T, permittedSpecial []string, t.Errorf("testing %v: want %v for DocumentRefID, got %v", tst, wantDoc, deID.DocumentRefID) } } - if deID.ElementRefID != spdx.ElementID(wantElt) { + if deID.ElementRefID != common.ElementID(wantElt) { if wantElt == "" { t.Errorf("testing %v: want empty string for ElementRefID, got %v", tst, deID.ElementRefID) } else { @@ -146,7 +146,7 @@ func helperForExtractElementID(t *testing.T, tst string, wantErr bool, wantElt s if err == nil && wantErr == true { t.Errorf("testing %v: expected non-nil error, got nil", tst) } - if eID != spdx.ElementID(wantElt) { + if eID != common.ElementID(wantElt) { if wantElt == "" { t.Errorf("testing %v: want emptyString for ElementRefID, got %v", tst, eID) } else { diff --git a/tvloader/tvloader.go b/tvloader/tvloader.go index 4ad95b1..b435f2c 100644 --- a/tvloader/tvloader.go +++ b/tvloader/tvloader.go @@ -6,7 +6,8 @@ package tvloader import ( "io" - "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/spdx/v2_1" + "github.com/spdx/tools-golang/spdx/v2_2" "github.com/spdx/tools-golang/tvloader/parser2v1" "github.com/spdx/tools-golang/tvloader/parser2v2" "github.com/spdx/tools-golang/tvloader/reader" @@ -14,7 +15,7 @@ import ( // Load2_1 takes an io.Reader and returns a fully-parsed SPDX Document // (version 2.1) if parseable, or error if any error is encountered. -func Load2_1(content io.Reader) (*spdx.Document2_1, error) { +func Load2_1(content io.Reader) (*v2_1.Document, error) { tvPairs, err := reader.ReadTagValues(content) if err != nil { return nil, err @@ -30,7 +31,7 @@ func Load2_1(content io.Reader) (*spdx.Document2_1, error) { // Load2_2 takes an io.Reader and returns a fully-parsed SPDX Document // (version 2.2) if parseable, or error if any error is encountered. -func Load2_2(content io.Reader) (*spdx.Document2_2, error) { +func Load2_2(content io.Reader) (*v2_2.Document, error) { tvPairs, err := reader.ReadTagValues(content) if err != nil { return nil, err |