#ifndef _TEST_ASSETS_H #define _TEST_ASSETS_H #include "triple.h" #define NUM_TRP 10 LSUP_Triple *create_triples() { LSUP_Triple *trp; CRITICAL(trp = malloc(NUM_TRP * sizeof(LSUP_Triple))); // These constitute overall 10 individual triples, 8 unique. LSUP_uri_init(trp[0].s, "urn:s:0"); LSUP_uri_init(trp[0].p, "urn:p:0"); LSUP_uri_init(trp[0].o, "urn:o:0"); LSUP_uri_init(trp[1].s, "urn:s:1"); LSUP_uri_init(trp[1].p, "urn:p:1"); LSUP_uri_init(trp[1].o, "urn:o:1"); LSUP_uri_init(trp[2].s, "urn:s:2"); LSUP_uri_init(trp[2].p, "urn:p:2"); LSUP_uri_init(trp[2].o, "urn:o:2"); LSUP_uri_init(trp[3].s, "urn:s:0"); LSUP_uri_init(trp[3].p, "urn:p:1"); LSUP_uri_init(trp[3].o, "urn:o:2"); LSUP_uri_init(trp[4].s, "urn:s:0"); LSUP_uri_init(trp[4].p, "urn:p:2"); LSUP_term_init(trp[4].o, LSUP_TERM_LITERAL, "String 1", NULL, NULL); LSUP_uri_init(trp[5].s, "urn:s:0"); LSUP_uri_init(trp[5].p, "urn:p:5"); LSUP_term_init( trp[5].o, LSUP_TERM_LITERAL, "String 1", "xsd:string", NULL); LSUP_uri_init(trp[6].s, "urn:s:1"); LSUP_uri_init(trp[6].p, "urn:p:6"); LSUP_term_init( trp[6].o, LSUP_TERM_LITERAL, "String 1", "xsd:string", "es-ES"); // Let's reuse pointers. Do not double-free. trp[7].s = trp[0].s; // trp[7].p = trp[2].p; // trp[7].o = trp[5].o; // "String 1"^^xsd:string // Duplicate of trp[7]. Do not double-free. trp[8].s = trp[0].s; trp[8].p = trp[2].p; trp[8].o = trp[5].o; // Duplicate of trp[7] from different pointers with same value. // Do not double-free. trp[9].s = trp[5].s; trp[9].p = trp[4].p; trp[9].o = trp[5].o; return trp; } void free_triples(LSUP_Triple *trp) { // Last three triples are second pointers. for(int i=0; i < NUM_TRP - 3; i++) { LSUP_term_done(trp[i].s); LSUP_term_done(trp[i].p); LSUP_term_done(trp[i].o); } free(trp); } #endif