diff options
author | Rishabh Bhatnagar <bhatnagarrishabh4@gmail.com> | 2020-11-17 20:45:14 +0530 |
---|---|---|
committer | Rishabh Bhatnagar <bhatnagarrishabh4@gmail.com> | 2020-11-18 09:27:08 +0530 |
commit | f71fa04c39232d41b1f9f30d5e981c96f943df7d (patch) | |
tree | b3acc0d6282ca1def503bf4f99dfaa3e2bcbc3e3 /rdfloader/parser2v2/parse_package_test.go | |
parent | 302f983e7b61d30e81294efb1637e82056e81732 (diff) | |
download | spdx-tools-f71fa04c39232d41b1f9f30d5e981c96f943df7d.tar.gz |
Enable Caching And Parse Cyclic Dependent Objects
- File, Package, Relationship can have cyclic dependent objects.
- Cyclic dependent License will raise an error.
- Double computation for File, Package, Relationship and License is enabled.
Signed-off-by: Rishabh Bhatnagar <bhatnagarrishabh4@gmail.com>
Diffstat (limited to 'rdfloader/parser2v2/parse_package_test.go')
-rw-r--r-- | rdfloader/parser2v2/parse_package_test.go | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/rdfloader/parser2v2/parse_package_test.go b/rdfloader/parser2v2/parse_package_test.go index 35a67dc..2269826 100644 --- a/rdfloader/parser2v2/parse_package_test.go +++ b/rdfloader/parser2v2/parse_package_test.go @@ -459,7 +459,39 @@ func Test_rdfParser2_2_getPackageFromNode(t *testing.T) { t.Errorf("expected package name: %s, got %s", expectedPkgFileName, pkg.PackageName) } - // TestCase 8: everything valid + // TestCase 8: Checking if packages can handle cyclic dependencies: + // Simulating a smallest possible cycle: package related to itself. + parser, _ = parserFromBodyContent(` + <spdx:Package rdf:about="http://anupam-VirtualBox/repo/SPDX2_time-1.9#SPDXRef-upload2"> + <spdx:name>Test Package</spdx:name> + <spdx:relationship> + <spdx:Relationship> + <spdx:relationshipType rdf:resource="http://spdx.org/rdf/terms#relationshipType_describes" /> + <spdx:relatedSpdxElement> + <spdx:Package rdf:about="http://anupam-VirtualBox/repo/SPDX2_time-1.9#SPDXRef-upload2"> + <spdx:versionInfo>1.1.1</spdx:versionInfo> + </spdx:Package> + </spdx:relatedSpdxElement> + </spdx:Relationship> + </spdx:relationship> + </spdx:Package> + `) + node = parser.gordfParserObj.Triples[0].Subject + pkg, err = parser.getPackageFromNode(node) + if err != nil { + t.Errorf("error parsing a valid package: %v", err) + } + // checking if both the attributes of the packages are set. + expectedVersionInfo := "1.1.1" + expectedPackageName := "Test Package" + if pkg.PackageVersion != expectedVersionInfo { + t.Errorf("Expected %s, found %s", expectedVersionInfo, pkg.PackageVersion) + } + if pkg.PackageName != expectedPackageName { + t.Errorf("Expected %s, found %s", expectedPackageName, pkg.PackageName) + } + + // TestCase 9: everything valid parser, _ = parserFromBodyContent(` <spdx:Package rdf:about="http://anupam-VirtualBox/repo/SPDX2_time-1.9#SPDXRef-upload2"> <spdx:name>Test Package</spdx:name> |