OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomspace-rocks commits / d1fb64b

Convert to new API
d1fb64bb4e8782124cf74978e97ba3ef6fce4e0d
by Linas Vepstas <linasvepstas@gmail.com> · 2026-01-18T23:52:45.000Z

Changed files (1) +88 -87

tests/persist/monospace/MonoBasicDeleteUTest.cxxtest +88 -87
……@@ -33,6 +33,7 @@
3333#include <opencog/atoms/atom_types/atom_types.h>
3434#include <opencog/atoms/value/FloatValue.h>
3535#include <opencog/atoms/value/LinkValue.h>
36#include <opencog/atoms/value/VoidValue.h>
3637#include <opencog/atomspace/AtomSpace.h>
3738#include <opencog/persist/rocks-types/atom_types.h>
3839
……@@ -97,12 +98,12 @@ void BasicDeleteUTest::test_duplicates(void)
9798{
9899 logger().debug("BEGIN TEST: %s", __FUNCTION__);
99100
100 AtomSpace* as = new AtomSpace();
101 AtomSpacePtr as = createAtomSpace();
101102
102103 Handle hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
103104 StorageNodePtr store = StorageNodeCast(hsn);
104105
105 store->open();
106 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
106107 TS_ASSERT(store->connected())
107108
108109 // Clear out left-over junk, just in case.
……@@ -116,25 +117,25 @@ void BasicDeleteUTest::test_duplicates(void)
116117 store->store_atom(li);
117118 store->barrier();
118119
119 // Verify the atomspace size
120 TS_ASSERT_EQUALS(as->get_size(), 4);
120 // Verify the atomspace size (+1 for *-open-*)
121 TS_ASSERT_EQUALS(as->get_size(), 5);
121122
122123 // Remove the link. Since the link has duplicate atoms
123124 // in it, this can cause trouble, depending on how the
124125 // incoming set is managed.
125 store->remove_atom(as, li);
126 TS_ASSERT_EQUALS(as->get_size(), 4);
126 store->remove_atom(as.get(), li);
127 TS_ASSERT_EQUALS(as->get_size(), 5);
127128 store->close();
128129 as->extract_atom(li);
129 TS_ASSERT_EQUALS(as->get_size(), 3);
130 store->open();
131 store->load_atomspace();
132 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*)
133130 TS_ASSERT_EQUALS(as->get_size(), 4);
131 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
132 store->load_atomspace();
133 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*), +1 for *-open-*
134 TS_ASSERT_EQUALS(as->get_size(), 5);
134135
135136 store->erase();
136137 store->close();
137 delete as;
138 as = nullptr;
138139
139140 logger().debug("END TEST: %s", __FUNCTION__);
140141}
……@@ -145,12 +146,12 @@ void BasicDeleteUTest::test_recursive(void)
145146{
146147 logger().debug("BEGIN TEST: %s", __FUNCTION__);
147148
148 AtomSpace* as = new AtomSpace();
149 AtomSpacePtr as = createAtomSpace();
149150
150151 Handle hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
151152 StorageNodePtr store = StorageNodeCast(hsn);
152153
153 store->open();
154 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
154155 TS_ASSERT(store->connected())
155156
156157 // Clear out left-over junk, just in case.
……@@ -171,12 +172,12 @@ void BasicDeleteUTest::test_recursive(void)
171172 for (const Handle& h : hset)
172173 printf("Atomspace contains: %s\n", h->to_short_string().c_str());
173174
174 // Verify the atomspace size
175 TS_ASSERT_EQUALS(as->get_size(), 5);
175 // Verify the atomspace size (+1 for *-open-*)
176 TS_ASSERT_EQUALS(as->get_size(), 6);
176177
177178 // Remove (Concept "a"). Since this appears twice, recursion
178179 // will hit it twice, in strange ways, and maybe crash.
179 store->remove_atom(as, ha, true);
180 store->remove_atom(as.get(), ha, true);
180181
181182 printf("Post-delete atomspace size=%lu\n", as->get_size());
182183 hset.clear();
……@@ -186,10 +187,10 @@ void BasicDeleteUTest::test_recursive(void)
186187
187188 store->close();
188189 as->extract_atom(ha, true);
189 store->open();
190 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
190191 store->load_atomspace();
191 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*)
192 TS_ASSERT_EQUALS(as->get_size(), 3);
192 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*), +1 for *-open-*
193 TS_ASSERT_EQUALS(as->get_size(), 4);
193194
194195 // --------------------------------------
195196 // Do it again, but with a different order.
……@@ -200,18 +201,18 @@ void BasicDeleteUTest::test_recursive(void)
200201 store->store_atom(lj);
201202 store->barrier();
202203 store->close();
203 store->open();
204 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
204205 store->load_atomspace();
205 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*)
206 TS_ASSERT_EQUALS(as->get_size(), 6);
206 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*), +1 for *-open-*
207 TS_ASSERT_EQUALS(as->get_size(), 7);
207208
208 store->remove_atom(as, ha, true);
209 store->remove_atom(as.get(), ha, true);
209210 store->close();
210211 as->extract_atom(ha, true);
211 store->open();
212 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
212213 store->load_atomspace();
213 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*)
214 TS_ASSERT_EQUALS(as->get_size(), 3);
214 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*), +1 for *-open-*
215 TS_ASSERT_EQUALS(as->get_size(), 4);
215216
216217 // --------------------------------------
217218 // Do it again, but with a complex order.
……@@ -222,18 +223,18 @@ void BasicDeleteUTest::test_recursive(void)
222223 store->store_atom(lj);
223224 store->barrier();
224225 store->close();
225 store->open();
226 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
226227 store->load_atomspace();
227 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*)
228 TS_ASSERT_EQUALS(as->get_size(), 6);
228 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*), +1 for *-open-*
229 TS_ASSERT_EQUALS(as->get_size(), 7);
229230
230 store->remove_atom(as, ha, true);
231 store->remove_atom(as.get(), ha, true);
231232 store->close();
232233 as->extract_atom(ha, true);
233 store->open();
234 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
234235 store->load_atomspace();
235 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*)
236 TS_ASSERT_EQUALS(as->get_size(), 3);
236 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*), +1 for *-open-*
237 TS_ASSERT_EQUALS(as->get_size(), 4);
237238
238239 // --------------------------------------
239240 // Do it again, but more deeply.
……@@ -245,23 +246,23 @@ void BasicDeleteUTest::test_recursive(void)
245246 store->store_atom(lk);
246247 store->barrier();
247248 store->close();
248 store->open();
249 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
249250 store->load_atomspace();
250 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*)
251 TS_ASSERT_EQUALS(as->get_size(), 7);
251 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*), +1 for *-open-*
252 TS_ASSERT_EQUALS(as->get_size(), 8);
252253
253 store->remove_atom(as, ha, true);
254 store->remove_atom(as.get(), ha, true);
254255 store->close();
255256 as->extract_atom(ha, true);
256 store->open();
257 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
257258 store->load_atomspace();
258 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*)
259 TS_ASSERT_EQUALS(as->get_size(), 3);
259 // +1 for *-IsKeyFlag-* (no TVs set, so no *-TruthValueKey-*), +1 for *-open-*
260 TS_ASSERT_EQUALS(as->get_size(), 4);
260261
261262 // --------------------------------------
262263 store->erase();
263264 store->close();
264 delete as;
265 as = nullptr;
265266
266267 logger().debug("END TEST: %s", __FUNCTION__);
267268}
……@@ -273,12 +274,12 @@ void BasicDeleteUTest::test_key_deletion(void)
273274 logger().debug("BEGIN TEST: %s", __FUNCTION__);
274275
275276 // Create an Atom with some keys on it.
276 AtomSpace* as = new AtomSpace();
277 AtomSpacePtr as = createAtomSpace();
277278
278279 Handle hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
279280 StorageNodePtr store = StorageNodeCast(hsn);
280281
281 store->open();
282 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
282283 TS_ASSERT(store->connected())
283284
284285 // Clear out left-over junk, just in case.
……@@ -297,8 +298,8 @@ void BasicDeleteUTest::test_key_deletion(void)
297298 store->store_atom(ha);
298299 store->barrier();
299300
300 // Verify the atomspace size (+1 for *-IsKeyFlag-*)
301 TS_ASSERT_EQUALS(as->get_size(), 6);
301 // Verify the atomspace size (+1 for *-IsKeyFlag-*, +1 for *-open-*)
302 TS_ASSERT_EQUALS(as->get_size(), 7);
302303
303304 // Verify that there are three keys (getKeys() does NOT include *-IsKeyFlag-*)
304305 HandleSet hs = ha->getKeys();
……@@ -309,17 +310,17 @@ void BasicDeleteUTest::test_key_deletion(void)
309310 // Remove one of the keys. But neither the AtomSpace, nor
310311 // MonoStorage allow this, and it stays both in the AtomSpace,
311312 // and in storage.
312 store->remove_atom(as, kb);
313 store->remove_atom(as.get(), kb);
313314 as->extract_atom(kb);
314 // +1 for *-IsKeyFlag-*
315 TS_ASSERT_EQUALS(as->get_size(), 6);
315 // +1 for *-IsKeyFlag-*, +1 for *-open-*
316 TS_ASSERT_EQUALS(as->get_size(), 7);
316317
317318 // Verify the key was NOT deleted by loading only PredicateNodes.
318 delete as;
319 as = new AtomSpace();
319 as = nullptr;
320 as = createAtomSpace();
320321 hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
321322 store = StorageNodeCast(hsn);
322 store->open();
323 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
323324 store->fetch_all_atoms_of_type(PREDICATE_NODE);
324325
325326 // key-b should still be there.
……@@ -333,28 +334,28 @@ void BasicDeleteUTest::test_key_deletion(void)
333334 // without the close().
334335
335336 // We are done.
336 delete as;
337 as = nullptr;
337338
338339 // -------------------------------------------------------
339340 // Start again, with a fresh connection.
340341 // Verify that keys that are in use cannot be deleted.
341342
342 as = new AtomSpace();
343 as = createAtomSpace();
343344
344345 hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
345346 store = StorageNodeCast(hsn);
346347
347 store->open();
348 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
348349 TS_ASSERT(store->connected())
349350
350 // We expect 7 atoms: +2 for *-TruthValueKey-* and *-IsKeyFlag-*
351 // We expect 8 atoms: +2 for *-TruthValueKey-* and *-IsKeyFlag-*, +1 for *-open-*
351352 // (Concept "a"), (Predicate "key-a"), (Predicate "key-b"), (Predicate "key-c"),
352353 // (MonoStorageNode ...), (Predicate "*-TruthValueKey-*"),
353 // (Predicate "*-IsKeyFlag-*")
354 // (Predicate "*-IsKeyFlag-*"), (Predicate "*-open-*")
354355 // Note: key-b removal doesn't work in Mono storage - it's still present
355356 printf("Loading the atomspace ...\n");
356357 store->load_atomspace();
357 TS_ASSERT_EQUALS(as->get_size(), 7);
358 TS_ASSERT_EQUALS(as->get_size(), 8);
358359
359360 // Cannot delete a key that is in use. So all 3 keys remain.
360361 ha = as->add_node(CONCEPT_NODE, "a");
……@@ -365,7 +366,7 @@ void BasicDeleteUTest::test_key_deletion(void)
365366
366367 store->erase();
367368 store->close();
368 delete as;
369 as = nullptr;
369370
370371 logger().debug("END TEST: %s", __FUNCTION__);
371372}
……@@ -379,12 +380,12 @@ void BasicDeleteUTest::test_key_corruption(void)
379380 logger().debug("BEGIN TEST: %s", __FUNCTION__);
380381
381382 // Create an Atom with some keys on it.
382 AtomSpace* as = new AtomSpace();
383 AtomSpacePtr as = createAtomSpace();
383384
384385 Handle hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
385386 StorageNodePtr store = StorageNodeCast(hsn);
386387
387 store->open();
388 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
388389 TS_ASSERT(store->connected())
389390
390391 // Clear out left-over junk, just in case.
……@@ -400,14 +401,14 @@ void BasicDeleteUTest::test_key_corruption(void)
400401 store->store_atom(hb);
401402 store->barrier();
402403
403 // Verify the atomspace size (+1 for *-IsKeyFlag-*)
404 TS_ASSERT_EQUALS(as->get_size(), 5);
404 // Verify the atomspace size (+1 for *-IsKeyFlag-*, +1 for *-open-*)
405 TS_ASSERT_EQUALS(as->get_size(), 6);
405406
406407 // Remove the value
407 store->remove_atom(as, hx);
408 store->remove_atom(as.get(), hx);
408409 as->extract_atom(hx);
409 // +1 for *-IsKeyFlag-*
410 TS_ASSERT_EQUALS(as->get_size(), 4);
410 // +1 for *-IsKeyFlag-*, +1 for *-open-*
411 TS_ASSERT_EQUALS(as->get_size(), 5);
411412
412413 // FYI, we should call store->close() at this point, but we
413414 // don't, because ... most users forget to do this too.
……@@ -415,21 +416,21 @@ void BasicDeleteUTest::test_key_corruption(void)
415416 // without the close().
416417
417418 // We are done.
418 delete as;
419 as = nullptr;
419420
420421 // -------------------------------------------------------
421422 // Start again, with a fresh connection.
422423 // Verify that the delete key is really deleted.
423424
424 as = new AtomSpace();
425 as = createAtomSpace();
425426
426427 hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
427428 store = StorageNodeCast(hsn);
428429
429 store->open();
430 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
430431 TS_ASSERT(store->connected())
431432
432 // We expect 6 keys: +1 for truth-value key, +1 for *-IsKeyFlag-*.
433 // We expect 7 keys: +1 for truth-value key, +1 for *-IsKeyFlag-*, +1 for *-open-*.
433434 // That's because the (Concept "x") sitting in the Value
434435 // was never actually deleted; thus it is restored.
435436 printf("Loading the atomspace ...\n");
……@@ -440,9 +441,9 @@ void BasicDeleteUTest::test_key_corruption(void)
440441 for (const Handle& h: hset)
441442 printf("Atomspace contains h=%s\n", h->to_short_string().c_str());
442443
443 // Size stays at 6 because (Concept "x") cannot be deleted.
444 // +2 for *-TruthValueKey-* and *-IsKeyFlag-*
445 TS_ASSERT_EQUALS(as->get_size(), 6);
444 // Size stays at 7 because (Concept "x") cannot be deleted.
445 // +2 for *-TruthValueKey-* and *-IsKeyFlag-*, +1 for *-open-*
446 TS_ASSERT_EQUALS(as->get_size(), 7);
446447
447448 hb = as->add_node(CONCEPT_NODE, "b");
448449 hx = as->add_node(CONCEPT_NODE, "x");
……@@ -455,41 +456,41 @@ void BasicDeleteUTest::test_key_corruption(void)
455456 store->store_atom(hb);
456457 store->barrier();
457458
458 // +2 for *-TruthValueKey-* and *-IsKeyFlag-*
459 TS_ASSERT_EQUALS(as->get_size(), 8);
459 // +2 for *-TruthValueKey-* and *-IsKeyFlag-*, +1 for *-open-*
460 TS_ASSERT_EQUALS(as->get_size(), 9);
460461
461462 // Remove the value .. again
462 store->remove_atom(as, hx);
463 store->remove_atom(as.get(), hx);
463464 as->extract_atom(hx);
464 // +2 for *-TruthValueKey-* and *-IsKeyFlag-*
465 TS_ASSERT_EQUALS(as->get_size(), 7);
465 // +2 for *-TruthValueKey-* and *-IsKeyFlag-*, +1 for *-open-*
466 TS_ASSERT_EQUALS(as->get_size(), 8);
466467 store->close();
467 store->open();
468 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
468469 store->load_atomspace();
469 // Size stays at 8 because (Concept "x") cannot be deleted.
470 // +2 for *-TruthValueKey-* and *-IsKeyFlag-*
471 TS_ASSERT_EQUALS(as->get_size(), 8);
470 // Size stays at 9 because (Concept "x") cannot be deleted.
471 // +2 for *-TruthValueKey-* and *-IsKeyFlag-*, +1 for *-open-*
472 TS_ASSERT_EQUALS(as->get_size(), 9);
472473
473474 // We are done.
474475 store->close();
475 delete as;
476 as = nullptr;
476477
477478 // -------------------------------------------------------
478479 // Start again, with a fresh connection.
479480 // Verify that the delete key is really deleted.
480481
481 as = new AtomSpace();
482 as = createAtomSpace();
482483
483484 hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
484485 store = StorageNodeCast(hsn);
485486
486 store->open();
487 store->setValue(as->add_node(PREDICATE_NODE, "*-open-*"), createVoidValue());
487488 TS_ASSERT(store->connected())
488489
489 // We expect 8 atoms: +2 for *-TruthValueKey-* and *-IsKeyFlag-*
490 // We expect 9 atoms: +2 for *-TruthValueKey-* and *-IsKeyFlag-*, +1 for *-open-*
490491 printf("Loading the atomspace ...\n");
491492 store->load_atomspace();
492 TS_ASSERT_EQUALS(as->get_size(), 8);
493 TS_ASSERT_EQUALS(as->get_size(), 9);
493494
494495 // Verify that there are two keys (getKeys() does NOT include internal markers)
495496 hb = as->add_node(CONCEPT_NODE, "b");
……@@ -504,7 +505,7 @@ void BasicDeleteUTest::test_key_corruption(void)
504505
505506 store->erase();
506507 store->close();
507 delete as;
508 as = nullptr;
508509
509510 logger().debug("END TEST: %s", __FUNCTION__);
510511}