assets.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #ifndef _TEST_ASSETS_H
  2. #define _TEST_ASSETS_H
  3. #include "triple.h"
  4. #define NUM_TRP 10
  5. LSUP_Triple *create_triples()
  6. {
  7. LSUP_Triple *trp;
  8. trp = malloc (NUM_TRP * sizeof (LSUP_Triple));
  9. if (!trp) abort();
  10. // These constitute overall 10 individual triples, 8 unique.
  11. /*
  12. LSUP_uri_init (&terms[0][0], "urn:s:0");
  13. LSUP_uri_init (&terms[0][1], "urn:p:0");
  14. LSUP_uri_init (&terms[0][2], "urn:o:0");
  15. trp[0] = {terms[1][0], terms[1][1], terms[1][2]};
  16. LSUP_uri_init (&terms[1][0], "urn:s:1");
  17. LSUP_uri_init (&terms[1][1], "urn:p:1");
  18. LSUP_uri_init (&terms[1][2], "urn:o:1");
  19. trp[1] = {terms[1][0], terms[1][1], terms[1][2]};
  20. LSUP_uri_init (&terms[2][0], "urn:s:2");
  21. LSUP_uri_init (&terms[2][1], "urn:p:2");
  22. LSUP_uri_init (&terms[2][2], "urn:o:2");
  23. trp[2] = {terms[2][0], terms[2][1], terms[2][2]};
  24. LSUP_uri_init (&terms[3][0], "urn:s:0");
  25. LSUP_uri_init (&terms[3][1], "urn:p:1");
  26. LSUP_uri_init (&terms[3][2], "urn:o:2");
  27. trp[3] = {terms[3][0], terms[3][1], terms[3][2]};
  28. LSUP_uri_init (&terms[4][0], "urn:s:0");
  29. LSUP_uri_init (&terms[4][1], "urn:p:2");
  30. LSUP_term_init (&terms[4][2], LSUP_TERM_LITERAL, "String 1", NULL, NULL);
  31. trp[4] = {terms[4][0], terms[4][1], terms[4][2]};
  32. LSUP_uri_init (&terms[5][0], "urn:s:0");
  33. LSUP_uri_init (&terms[5][1], "urn:p:5");
  34. LSUP_term_init(
  35. &terms[5][2], LSUP_TERM_LITERAL, "String 1", "xsd:string", NULL);
  36. trp[5] = {terms[5][0], terms[5][1], terms[5][2]};
  37. LSUP_uri_init (&terms[6][0], "urn:s:1");
  38. LSUP_uri_init (&terms[6][1], "urn:p:6");
  39. LSUP_term_init(
  40. &terms[6][2], LSUP_TERM_LITERAL, "String 1", "xsd:string", "es-ES");
  41. trp[6] = {terms[6][0], terms[6][1], terms[6][2]};
  42. */
  43. trp[0].s = LSUP_uri_new ("urn:s:0");
  44. trp[0].p = LSUP_uri_new ("urn:p:0");
  45. trp[0].o = LSUP_uri_new ("urn:o:0");
  46. trp[1].s = LSUP_uri_new ("urn:s:1");
  47. trp[1].p = LSUP_uri_new ("urn:p:1");
  48. trp[1].o = LSUP_uri_new ("urn:o:1");
  49. trp[2].s = LSUP_uri_new ("urn:s:2");
  50. trp[2].p = LSUP_uri_new ("urn:p:2");
  51. trp[2].o = LSUP_uri_new ("urn:o:2");
  52. trp[3].s = LSUP_uri_new ("urn:s:0");
  53. trp[3].p = LSUP_uri_new ("urn:p:1");
  54. trp[3].o = LSUP_uri_new ("urn:o:2");
  55. trp[4].s = LSUP_uri_new ("urn:s:0");
  56. trp[4].p = LSUP_uri_new ("urn:p:2");
  57. trp[4].o = LSUP_term_new (LSUP_TERM_LITERAL, "String 1", NULL, NULL);
  58. trp[5].s = LSUP_uri_new ("urn:s:0");
  59. trp[5].p = LSUP_uri_new ("urn:p:5");
  60. trp[5].o = LSUP_term_new(
  61. LSUP_TERM_LITERAL, "String 1", "xsd:string", NULL);
  62. trp[6].s = LSUP_uri_new ("urn:s:1");
  63. trp[6].p = LSUP_uri_new ("urn:p:6");
  64. trp[6].o = LSUP_term_new(
  65. LSUP_TERM_LITERAL, "String 1", "xsd:string", "es-ES");
  66. // Unique triple from reused pointers. Do not double-free.
  67. trp[7].s = trp[0].s; // <urn:s:0>
  68. trp[7].p = trp[2].p; // <urn:p:2>
  69. trp[7].o = trp[5].o; // "String 1"^^xsd:string
  70. // Duplicate of trp[7]. Do not double-free.
  71. trp[8].s = trp[0].s;
  72. trp[8].p = trp[2].p;
  73. trp[8].o = trp[5].o;
  74. // Duplicate of trp[7] from different pointers with same value.
  75. // Do not double-free.
  76. trp[9].s = trp[5].s;
  77. trp[9].p = trp[4].p;
  78. trp[9].o = trp[5].o;
  79. return trp;
  80. }
  81. void free_triples (LSUP_Triple *trp)
  82. {
  83. // Last three triples are second pointers.
  84. for (int i=0; i < NUM_TRP - 3; i++) {
  85. LSUP_term_free (trp[i].s);
  86. LSUP_term_free (trp[i].p);
  87. LSUP_term_free (trp[i].o);
  88. }
  89. free (trp);
  90. }
  91. #endif