diff options
author | Steve Winslow <steve@swinslow.net> | 2021-07-04 10:58:12 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-04 10:58:12 -0400 |
commit | edbff31685f91a801f64cd23c05b495141b66e60 (patch) | |
tree | bada1208dfc6effcf56c6d11d4f6a930a1f81603 /tvloader/parser2v2/parse_file_test.go | |
parent | 68f272030de367e80eab5338ea84aa8e0cd53620 (diff) | |
parent | b238c888559fcfaba7abc4d73741b633746c10d2 (diff) | |
download | spdx-tools-edbff31685f91a801f64cd23c05b495141b66e60.tar.gz |
Merge pull request #64 from specter25/package-spdxId
Throw error for pkgs / files without SPDX IDs
Diffstat (limited to 'tvloader/parser2v2/parse_file_test.go')
-rw-r--r-- | tvloader/parser2v2/parse_file_test.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tvloader/parser2v2/parse_file_test.go b/tvloader/parser2v2/parse_file_test.go index 411593f..689a2df 100644 --- a/tvloader/parser2v2/parse_file_test.go +++ b/tvloader/parser2v2/parse_file_test.go @@ -917,3 +917,48 @@ func TestParser2_2FailsIfArtifactURIBeforeArtifactName(t *testing.T) { t.Errorf("expected non-nil error, got nil") } } + +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: map[spdx.ElementID]*spdx.Package2_2{}}, + st: psFile2_2, + file: &spdx.File2_2{FileName: "FileName"}, + } + + err := parser1.parsePair2_2("FileName", "f2") + if err == nil { + t.Errorf("file without SPDX Identifier getting accepted") + } + + // case 2: Invalid file with snippet + // Last unpackaged file before the snippet start + fileName := "f2.txt" + sid1 := spdx.ElementID("s1") + parser2 := tvParser2_2{ + doc: &spdx.Document2_2{}, + st: psCreationInfo2_2, + file: &spdx.File2_2{FileName: fileName}, + } + err = parser2.parsePair2_2("SnippetSPDXID", string(sid1)) + if err == nil { + t.Errorf("file without SPDX Identifier getting accepted") + } + + // case 3: Invalid File without snippets + // Last unpackaged file before the package starts + // Last file of a package and New package starts + parser3 := tvParser2_2{ + doc: &spdx.Document2_2{}, + st: psCreationInfo2_2, + } + fileName = "f3.txt" + err = parser3.parsePair2_2("FileName", fileName) + if err != nil { + t.Errorf("%s", err) + } + err = parser3.parsePair2_2("PackageName", "p2") + if err == nil { + t.Errorf("file without SPDX Identifier getting accepted") + } +} |