|
@@ -32,17 +32,17 @@ static int test_triple_store()
|
|
}
|
|
}
|
|
|
|
|
|
// Test adding.
|
|
// Test adding.
|
|
- void *it = store->sif->add_init_fn (store->data, NULL, NULL);
|
|
|
|
|
|
+ void *it = LSUP_store_add_init (store, NULL);
|
|
size_t ins = 0;
|
|
size_t ins = 0;
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
- LSUP_rc rc = store->sif->add_iter_fn (it, ser_trp + i);
|
|
|
|
|
|
+ LSUP_rc rc = LSUP_store_add_iter (store, it, ser_trp + i);
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
if (rc == LSUP_OK) ins++;
|
|
if (rc == LSUP_OK) ins++;
|
|
}
|
|
}
|
|
- store->sif->add_done_fn (it);
|
|
|
|
|
|
+ LSUP_store_add_done (store, it);
|
|
|
|
|
|
EXPECT_INT_EQ (ins, 8);
|
|
EXPECT_INT_EQ (ins, 8);
|
|
- EXPECT_INT_EQ (store->sif->size_fn (store->data), ins);
|
|
|
|
|
|
+ EXPECT_INT_EQ (LSUP_store_size (store), ins);
|
|
|
|
|
|
// Test lookups.
|
|
// Test lookups.
|
|
LSUP_Buffer *lut[12][3] = {
|
|
LSUP_Buffer *lut[12][3] = {
|
|
@@ -86,11 +86,11 @@ static int test_triple_store()
|
|
|
|
|
|
5,
|
|
5,
|
|
// Lookup on nonexisting context is ignored by non-context store.
|
|
// Lookup on nonexisting context is ignored by non-context store.
|
|
- store->sif->features & LSUP_STORE_CTX ? 0 : 1,
|
|
|
|
|
|
+ LSUP_store_features (store) & LSUP_STORE_CTX ? 0 : 1,
|
|
1, 0, 1,
|
|
1, 0, 1,
|
|
|
|
|
|
2, 1, 2,
|
|
2, 1, 2,
|
|
- store->sif->features & LSUP_STORE_CTX ? 0 : 2,
|
|
|
|
|
|
+ LSUP_store_features (store) & LSUP_STORE_CTX ? 0 : 2,
|
|
|
|
|
|
1, 0,
|
|
1, 0,
|
|
};
|
|
};
|
|
@@ -99,13 +99,12 @@ static int test_triple_store()
|
|
size_t ct;
|
|
size_t ct;
|
|
log_info ("Testing triple lookup #%d.", i);
|
|
log_info ("Testing triple lookup #%d.", i);
|
|
|
|
|
|
- void *it = store->sif->lookup_fn (
|
|
|
|
- store->data, lut[i][0], lut[i][1], lut[i][2], luc[i],
|
|
|
|
- NULL, &ct);
|
|
|
|
|
|
+ void *it = LSUP_store_lookup (
|
|
|
|
+ store, lut[i][0], lut[i][1], lut[i][2], luc[i], &ct);
|
|
ASSERT (it != NULL, "Error creating iterator!");
|
|
ASSERT (it != NULL, "Error creating iterator!");
|
|
EXPECT_INT_EQ (ct, results[i]);
|
|
EXPECT_INT_EQ (ct, results[i]);
|
|
|
|
|
|
- store->sif->lu_free_fn (it);
|
|
|
|
|
|
+ LSUP_store_iter_free (store, it);
|
|
}
|
|
}
|
|
|
|
|
|
for (int i = 0; i < NUM_TRP; i++) {
|
|
for (int i = 0; i < NUM_TRP; i++) {
|
|
@@ -131,7 +130,7 @@ static int test_quad_store()
|
|
{
|
|
{
|
|
LSUP_Store *store = LSUP_store_new (store_type, store_id, 0, true);
|
|
LSUP_Store *store = LSUP_store_new (store_type, store_id, 0, true);
|
|
ASSERT (store != NULL, "Error creating store!"); \
|
|
ASSERT (store != NULL, "Error creating store!"); \
|
|
- if (!(store->sif->features & LSUP_STORE_TXN)) {
|
|
|
|
|
|
+ if (!(LSUP_store_features (store) & LSUP_STORE_TXN)) {
|
|
LSUP_store_free (store);
|
|
LSUP_store_free (store);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -152,15 +151,15 @@ static int test_quad_store()
|
|
size_t ins;
|
|
size_t ins;
|
|
|
|
|
|
// Only triples 0÷5 in default context.
|
|
// Only triples 0÷5 in default context.
|
|
- it = store->sif->add_init_fn (store->data, NULL, NULL);
|
|
|
|
|
|
+ it = LSUP_store_add_init_txn (store, NULL, NULL);
|
|
ins = 0;
|
|
ins = 0;
|
|
for (size_t i = 0; i < 6; i++) {
|
|
for (size_t i = 0; i < 6; i++) {
|
|
log_info ("Inserting triple #%d in default context.", i);
|
|
log_info ("Inserting triple #%d in default context.", i);
|
|
- LSUP_rc rc = store->sif->add_iter_fn (it, ser_trp + i);
|
|
|
|
|
|
+ LSUP_rc rc = LSUP_store_add_iter (store, it, ser_trp + i);
|
|
EXPECT_PASS (rc);
|
|
EXPECT_PASS (rc);
|
|
if (rc == LSUP_OK) ins++;
|
|
if (rc == LSUP_OK) ins++;
|
|
}
|
|
}
|
|
- store->sif->add_done_fn (it);
|
|
|
|
|
|
+ LSUP_store_add_done (store, it);
|
|
EXPECT_INT_EQ (ins, 6);
|
|
EXPECT_INT_EQ (ins, 6);
|
|
|
|
|
|
LSUP_Buffer *sc1 = LSUP_default_ctx_buf;
|
|
LSUP_Buffer *sc1 = LSUP_default_ctx_buf;
|
|
@@ -169,20 +168,20 @@ static int test_quad_store()
|
|
LSUP_Buffer *sc2 = LSUP_term_serialize (ctx2);
|
|
LSUP_Buffer *sc2 = LSUP_term_serialize (ctx2);
|
|
|
|
|
|
// Only triples 4÷9 in context 2 (effectively 4 non-duplicates).
|
|
// Only triples 4÷9 in context 2 (effectively 4 non-duplicates).
|
|
- it = store->sif->add_init_fn (store->data, sc2, NULL);
|
|
|
|
|
|
+ it = LSUP_store_add_init (store, sc2);
|
|
ASSERT (it != NULL, "Error creating iterator!");
|
|
ASSERT (it != NULL, "Error creating iterator!");
|
|
ins = 0;
|
|
ins = 0;
|
|
for (size_t i = 4; i < 10; i++) {
|
|
for (size_t i = 4; i < 10; i++) {
|
|
log_info ("Inserting triple #%d in context 2.", i);
|
|
log_info ("Inserting triple #%d in context 2.", i);
|
|
- LSUP_rc rc = store->sif->add_iter_fn (it, ser_trp + i);
|
|
|
|
|
|
+ LSUP_rc rc = LSUP_store_add_iter (store, it, ser_trp + i);
|
|
ASSERT (rc == LSUP_OK || rc == LSUP_NOACTION, "Error adding triples!");
|
|
ASSERT (rc == LSUP_OK || rc == LSUP_NOACTION, "Error adding triples!");
|
|
if (rc == LSUP_OK) ins++;
|
|
if (rc == LSUP_OK) ins++;
|
|
}
|
|
}
|
|
- store->sif->add_done_fn (it);
|
|
|
|
|
|
+ LSUP_store_add_done (store, it);
|
|
EXPECT_INT_EQ (ins, 4);
|
|
EXPECT_INT_EQ (ins, 4);
|
|
|
|
|
|
// 6 triples in ctx1 + 6 in ctx2 - 2 duplicates
|
|
// 6 triples in ctx1 + 6 in ctx2 - 2 duplicates
|
|
- EXPECT_INT_EQ (store->sif->size_fn (store->data), 10);
|
|
|
|
|
|
+ EXPECT_INT_EQ (LSUP_store_size (store), 10);
|
|
|
|
|
|
// This context has no triples.
|
|
// This context has no triples.
|
|
LSUP_Term *ctx3 = LSUP_iriref_new("urn:c:3", NULL);
|
|
LSUP_Term *ctx3 = LSUP_iriref_new("urn:c:3", NULL);
|
|
@@ -320,24 +319,23 @@ static int test_quad_store()
|
|
size_t ct;
|
|
size_t ct;
|
|
|
|
|
|
log_info ("Checking triple #%d.", i);
|
|
log_info ("Checking triple #%d.", i);
|
|
- void *it = store->sif->lookup_fn (
|
|
|
|
- store->data, lut[i][0], lut[i][1], lut[i][2], luc[i],
|
|
|
|
- NULL, &ct);
|
|
|
|
|
|
+ void *it = LSUP_store_lookup (
|
|
|
|
+ store, lut[i][0], lut[i][1], lut[i][2], luc[i], &ct);
|
|
ASSERT (it != NULL, "Lookup error!");
|
|
ASSERT (it != NULL, "Lookup error!");
|
|
EXPECT_INT_EQ (ct, results[i]);
|
|
EXPECT_INT_EQ (ct, results[i]);
|
|
|
|
|
|
- store->sif->lu_free_fn (it);
|
|
|
|
|
|
+ LSUP_store_iter_free (store, it);
|
|
}
|
|
}
|
|
|
|
|
|
// Check triple contexts.
|
|
// Check triple contexts.
|
|
for (int i = 0; i < 10; i++) {
|
|
for (int i = 0; i < 10; i++) {
|
|
- void *it = store->sif->lookup_fn (
|
|
|
|
- store->data, ser_trp[i].s, ser_trp[i].p, ser_trp[i].o,
|
|
|
|
- NULL, NULL, NULL);
|
|
|
|
|
|
+ void *it = LSUP_store_lookup_txn (
|
|
|
|
+ store, NULL, ser_trp[i].s, ser_trp[i].p, ser_trp[i].o,
|
|
|
|
+ NULL, NULL);
|
|
log_info ("Checking contexts for triple %d.", i);
|
|
log_info ("Checking contexts for triple %d.", i);
|
|
LSUP_Buffer *ctx_a;
|
|
LSUP_Buffer *ctx_a;
|
|
- EXPECT_PASS (store->sif->lu_next_fn (it, NULL, &ctx_a));
|
|
|
|
- store->sif->lu_free_fn (it);
|
|
|
|
|
|
+ EXPECT_PASS (LSUP_store_iter_next (store, it, NULL, &ctx_a));
|
|
|
|
+ LSUP_store_iter_free (store, it);
|
|
|
|
|
|
ASSERT (ctx_a != NULL, "No contexts found!");
|
|
ASSERT (ctx_a != NULL, "No contexts found!");
|
|
|
|
|
|
@@ -369,7 +367,7 @@ static int test_txn_commit (void)
|
|
{
|
|
{
|
|
LSUP_Store *store = LSUP_store_new (store_type, store_id, 0, true);
|
|
LSUP_Store *store = LSUP_store_new (store_type, store_id, 0, true);
|
|
ASSERT (store != NULL, "Error creating store!"); \
|
|
ASSERT (store != NULL, "Error creating store!"); \
|
|
- if (!(store->sif->features & LSUP_STORE_TXN)) {
|
|
|
|
|
|
+ if (!(LSUP_store_features (store) & LSUP_STORE_TXN)) {
|
|
LSUP_store_free (store);
|
|
LSUP_store_free (store);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -402,44 +400,42 @@ static int test_txn_commit (void)
|
|
}
|
|
}
|
|
|
|
|
|
void *it;
|
|
void *it;
|
|
- // Start adding then commit.
|
|
|
|
- it = store->sif->add_init_fn (store->data, NULL, NULL);
|
|
|
|
|
|
+ // Start adding then abort.
|
|
|
|
+ it = LSUP_store_add_init_txn (store, NULL, NULL);
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
- LSUP_rc rc = store->sif->add_iter_fn (it, ser_trp + i);
|
|
|
|
|
|
+ LSUP_rc rc = LSUP_store_add_iter (store, it, ser_trp + i);
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
}
|
|
}
|
|
- store->sif->add_abort_fn (it);
|
|
|
|
|
|
+ LSUP_store_add_abort (store, it);
|
|
|
|
|
|
- EXPECT_INT_EQ (store->sif->size_fn (store->data), 0);
|
|
|
|
|
|
+ EXPECT_INT_EQ (LSUP_store_size (store), 0);
|
|
|
|
|
|
// Add within a transaction, commit, then commit parent transaction.
|
|
// Add within a transaction, commit, then commit parent transaction.
|
|
void *txn;
|
|
void *txn;
|
|
- EXPECT_PASS (store->sif->txn_begin_fn (store->data, 0, &txn));
|
|
|
|
- it = store->sif->add_init_fn (store->data, NULL, txn);
|
|
|
|
|
|
+ EXPECT_PASS (LSUP_store_begin (store, 0, &txn));
|
|
|
|
+ it = LSUP_store_add_init_txn (store, txn, NULL);
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
- LSUP_rc rc = store->sif->add_iter_fn (it, ser_trp + i);
|
|
|
|
|
|
+ LSUP_rc rc = LSUP_store_add_iter (store, it, ser_trp + i);
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
}
|
|
}
|
|
- store->sif->add_done_fn (it);
|
|
|
|
|
|
+ LSUP_store_add_done (store, it);
|
|
|
|
|
|
// Triples are added in child txn but parent is still open.
|
|
// Triples are added in child txn but parent is still open.
|
|
// Size function always calculates outside of all transactions.
|
|
// Size function always calculates outside of all transactions.
|
|
- EXPECT_INT_EQ (store->sif->size_fn (store->data), 0);
|
|
|
|
|
|
+ EXPECT_INT_EQ (LSUP_store_size (store), 0);
|
|
|
|
|
|
size_t ct;
|
|
size_t ct;
|
|
- it = store->sif->lookup_fn (
|
|
|
|
- store->data, NULL, NULL, NULL, NULL, txn, &ct);
|
|
|
|
- store->sif->lu_free_fn (it);
|
|
|
|
|
|
+ it = LSUP_store_lookup_txn (store, txn, NULL, NULL, NULL, NULL, &ct);
|
|
|
|
+ LSUP_store_iter_free (store, it);
|
|
// Should show triples added within the parent txn.
|
|
// Should show triples added within the parent txn.
|
|
EXPECT_INT_EQ (ct, 8);
|
|
EXPECT_INT_EQ (ct, 8);
|
|
|
|
|
|
// commit child txn operations.
|
|
// commit child txn operations.
|
|
- EXPECT_PASS (store->sif->txn_commit_fn (txn));
|
|
|
|
- it = store->sif->lookup_fn (
|
|
|
|
- store->data, NULL, NULL, NULL, NULL, NULL, &ct);
|
|
|
|
- store->sif->lu_free_fn (it);
|
|
|
|
|
|
+ EXPECT_PASS (LSUP_store_commit (store, txn));
|
|
|
|
+ it = LSUP_store_lookup (store, NULL, NULL, NULL, NULL, &ct);
|
|
|
|
+ LSUP_store_iter_free (store, it);
|
|
EXPECT_INT_EQ (ct, 8);
|
|
EXPECT_INT_EQ (ct, 8);
|
|
- EXPECT_INT_EQ (store->sif->size_fn (store->data), 8);
|
|
|
|
|
|
+ EXPECT_INT_EQ (LSUP_store_size (store), 8);
|
|
|
|
|
|
for (int i = 0; i < NUM_TRP; i++) {
|
|
for (int i = 0; i < NUM_TRP; i++) {
|
|
LSUP_buffer_free (ser_trp[i].s);
|
|
LSUP_buffer_free (ser_trp[i].s);
|
|
@@ -458,7 +454,7 @@ static int test_txn_abort (void)
|
|
{
|
|
{
|
|
LSUP_Store *store = LSUP_store_new (store_type, store_id, 0, true);
|
|
LSUP_Store *store = LSUP_store_new (store_type, store_id, 0, true);
|
|
ASSERT (store != NULL, "Error creating store!"); \
|
|
ASSERT (store != NULL, "Error creating store!"); \
|
|
- if (!(store->sif->features & LSUP_STORE_TXN)) {
|
|
|
|
|
|
+ if (!(LSUP_store_features (store) & LSUP_STORE_TXN)) {
|
|
LSUP_store_free (store);
|
|
LSUP_store_free (store);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -476,41 +472,39 @@ static int test_txn_abort (void)
|
|
|
|
|
|
void *it;
|
|
void *it;
|
|
// Start adding then abort.
|
|
// Start adding then abort.
|
|
- it = store->sif->add_init_fn (store->data, NULL, NULL);
|
|
|
|
|
|
+ it = LSUP_store_add_init (store, NULL);
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
- LSUP_rc rc = store->sif->add_iter_fn (it, ser_trp + i);
|
|
|
|
|
|
+ LSUP_rc rc = LSUP_store_add_iter (store, it, ser_trp + i);
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
}
|
|
}
|
|
- store->sif->add_abort_fn (it);
|
|
|
|
|
|
+ LSUP_store_add_abort (store, it);
|
|
|
|
|
|
- EXPECT_INT_EQ (store->sif->size_fn (store->data), 0);
|
|
|
|
|
|
+ EXPECT_INT_EQ (LSUP_store_size (store), 0);
|
|
|
|
|
|
// Add within a transaction, commit, then abort parent transaction.
|
|
// Add within a transaction, commit, then abort parent transaction.
|
|
void *txn;
|
|
void *txn;
|
|
- EXPECT_PASS (store->sif->txn_begin_fn (store->data, 0, &txn));
|
|
|
|
- it = store->sif->add_init_fn (store->data, NULL, txn);
|
|
|
|
|
|
+ EXPECT_PASS (LSUP_store_begin (store, 0, &txn));
|
|
|
|
+ it = LSUP_store_add_init_txn (store, txn, NULL);
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
for (size_t i = 0; i < NUM_TRP; i++) {
|
|
- LSUP_rc rc = store->sif->add_iter_fn (it, ser_trp + i);
|
|
|
|
|
|
+ LSUP_rc rc = LSUP_store_add_iter (store, it, ser_trp + i);
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
ASSERT (rc >= 0, "Error inserting triples!");
|
|
}
|
|
}
|
|
- store->sif->add_done_fn (it);
|
|
|
|
|
|
+ LSUP_store_add_done (store, it);
|
|
|
|
|
|
// Triples are added in child txn but parent is still open.
|
|
// Triples are added in child txn but parent is still open.
|
|
// Size function always calculates outside of all transactions.
|
|
// Size function always calculates outside of all transactions.
|
|
- EXPECT_INT_EQ (store->sif->size_fn (store->data), 0);
|
|
|
|
|
|
+ EXPECT_INT_EQ (LSUP_store_size (store), 0);
|
|
|
|
|
|
size_t ct;
|
|
size_t ct;
|
|
- it = store->sif->lookup_fn (
|
|
|
|
- store->data, NULL, NULL, NULL, NULL, txn, &ct);
|
|
|
|
- store->sif->lu_free_fn (it);
|
|
|
|
|
|
+ it = LSUP_store_lookup_txn (store, txn, NULL, NULL, NULL, NULL, &ct);
|
|
|
|
+ LSUP_store_iter_free (store, it);
|
|
// Should show triples added within the parent txn.
|
|
// Should show triples added within the parent txn.
|
|
EXPECT_INT_EQ (ct, 8);
|
|
EXPECT_INT_EQ (ct, 8);
|
|
|
|
|
|
// Discard child txn operations.
|
|
// Discard child txn operations.
|
|
- store->sif->txn_abort_fn (txn);
|
|
|
|
- it = store->sif->lookup_fn (
|
|
|
|
- store->data, NULL, NULL, NULL, NULL, NULL, &ct);
|
|
|
|
- store->sif->lu_free_fn (it);
|
|
|
|
|
|
+ LSUP_store_abort (store, txn);
|
|
|
|
+ it = LSUP_store_lookup (store, NULL, NULL, NULL, NULL, &ct);
|
|
|
|
+ LSUP_store_iter_free (store, it);
|
|
EXPECT_INT_EQ (ct, 0);
|
|
EXPECT_INT_EQ (ct, 0);
|
|
|
|
|
|
for (int i = 0; i < NUM_TRP; i++) {
|
|
for (int i = 0; i < NUM_TRP; i++) {
|