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_relationship_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_relationship_test.go')
-rw-r--r-- | rdfloader/parser2v2/parse_relationship_test.go | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/rdfloader/parser2v2/parse_relationship_test.go b/rdfloader/parser2v2/parse_relationship_test.go index c02f15b..14f4c12 100644 --- a/rdfloader/parser2v2/parse_relationship_test.go +++ b/rdfloader/parser2v2/parse_relationship_test.go @@ -320,7 +320,33 @@ func Test_rdfParser2_2_parseRelationship(t *testing.T) { t.Errorf("should've raised an error due to unknown predicate in a relationship") } - // TestCase 6: completely valid example: + // TestCase 8: Recursive relationships mustn't raise any error: + parser, _ = parserFromBodyContent(` + <spdx:File rdf:about="http://spdx.org/spdxdocs/spdx-example-444504E0-4F89-41D3-9A0C-0305E82C3301#SPDXRef-File"> + <spdx:relationship> + <spdx:Relationship rdf:about="#SPDXRef-reln"> + <spdx:relationshipType rdf:resource="http://spdx.org/rdf/terms#relationshipType_describes"/> + <spdx:relatedSpdxElement> + <spdx:Package rdf:about="http://spdx.org/spdxdocs/spdx-example-444504E0-4F89-41D3-9A0C-0305E82C3301#SPDXRef-Saxon"> + <spdx:relationship> + <spdx:Relationship rdf:about="#SPDXRef-reln"> + <spdx:relationshipType rdf:resource="http://spdx.org/rdf/terms#relationshipType_describes"/> + <spdx:relatedSpdxElement rdf:resource="http://spdx.org/spdxdocs/spdx-example-444504E0-4F89-41D3-9A0C-0305E82C3301#SPDXRef-File"/> + </spdx:Relationship> + </spdx:relationship> + </spdx:Package> + </spdx:relatedSpdxElement> + </spdx:Relationship> + </spdx:relationship> + </spdx:File> + `) + triple = rdfwriter.FilterTriples(parser.gordfParserObj.Triples, nil, &SPDX_RELATIONSHIP, nil)[0] + err = parser.parseRelationship(triple) + if err != nil { + t.Errorf("error parsing a valid example") + } + + // TestCase 7: completely valid example: parser, _ = parserFromBodyContent(` <spdx:File rdf:about="http://spdx.org/spdxdocs/spdx-example-444504E0-4F89-41D3-9A0C-0305E82C3301#SPDXRef-File"> <spdx:relationship> |