diff options
author | specter25 <ujjwalcoding012@gmail.com> | 2021-03-28 00:47:44 +0530 |
---|---|---|
committer | specter25 <ujjwalcoding012@gmail.com> | 2021-03-28 00:47:44 +0530 |
commit | 240e16abc6fa09ba7a2a138f5b8e258052bef856 (patch) | |
tree | db6caa7204f85b077538e2a96d22f42ead2e0e45 /tvloader/parser2v2/parse_package_test.go | |
parent | 42e18199b6c63eb39c1c3ea062e5417e8ab26068 (diff) | |
download | spdx-tools-240e16abc6fa09ba7a2a138f5b8e258052bef856.tar.gz |
Error on missing package and file ids in v2.2
- Shows error if a Package has a missing SPDXID tag
- Show error if a File has a missing SPDXID tag
Signed-off-by: specter25 <ujjwalcoding012@gmail.com>
Diffstat (limited to 'tvloader/parser2v2/parse_package_test.go')
-rw-r--r-- | tvloader/parser2v2/parse_package_test.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tvloader/parser2v2/parse_package_test.go b/tvloader/parser2v2/parse_package_test.go index 33b4784..1983baf 100644 --- a/tvloader/parser2v2/parse_package_test.go +++ b/tvloader/parser2v2/parse_package_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/spdx/tools-golang/spdx" + "github.com/spdx/tools-golang/tvloader/reader" ) // ===== Parser package section state change tests ===== @@ -1102,3 +1103,42 @@ func TestFailsPackageExternalRefWithInvalidFormat(t *testing.T) { t.Errorf("expected non-nil error, got nil") } } + +func TestParser2_2PackageWithoutSpdxIdentifierThrowsError(t *testing.T) { + // More than one package , the previous package doesn't contain the SPDXID + pkgOldName := "p1" + parser := tvParser2_2{ + doc: &spdx.Document2_2{Packages: map[spdx.ElementID]*spdx.Package2_2{}}, + st: psPackage2_2, + pkg: &spdx.Package2_2{PackageName: pkgOldName}, + } + pkgOld := parser.pkg + parser.doc.Packages["p1"] = pkgOld + // the Document's Packages should have this one only + if parser.doc.Packages["p1"] != pkgOld { + t.Errorf("expected package %v, got %v", pkgOld, parser.doc.Packages["p1"]) + } + if len(parser.doc.Packages) != 1 { + t.Errorf("expected 1 package, got %d", len(parser.doc.Packages)) + } + + // Case 2: Checks the Last package + pkgName := "p2" + err := parser.parsePair2_2("PackageName", pkgName) + if err == nil { + t.Errorf("Packages withoutSpdx Identifiers getting accepted") + } + var tvPairs []reader.TagValuePair + tvPair1 := reader.TagValuePair{Tag: "SPDXVersion", Value: "SPDX-2.2"} + tvPairs = append(tvPairs, tvPair1) + tvPair2 := reader.TagValuePair{Tag: "DataLicense", Value: "CC0-1.0"} + tvPairs = append(tvPairs, tvPair2) + tvPair3 := reader.TagValuePair{Tag: "SPDXID", Value: "SPDXRef-DOCUMENT"} + tvPairs = append(tvPairs, tvPair3) + tvPair4 := reader.TagValuePair{Tag: "PackageName", Value: "p1"} + tvPairs = append(tvPairs, tvPair4) + _, err = ParseTagValues(tvPairs) + if err == nil { + t.Errorf("Packages withoutSpdx Identifiers getting accepted") + } +} |