OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomspace-cog commits / f9a900c

Restore SimpleBasicDeleteUTest to working condition
Actually its an improvement.
f9a900ce712aeff9f291364718012af3384b51fb
by Linas Vepstas <linasvepstas@gmail.com> · 2025-12-08T07:34:22.000Z

Changed files (3) +75 -5

tests/persist/cog-simple/CMakeLists.txt +1 -1
……@@ -14,7 +14,7 @@ ADD_CXXTEST(SimpleValueSaveUTest)
1414ADD_CXXTEST(SimplePersistUTest)
1515ADD_CXXTEST(SimpleFetchUTest)
1616TARGET_LINK_LIBRARIES(SimpleFetchUTest execution)
17# ADD_CXXTEST(SimpleBasicDeleteUTest)
17ADD_CXXTEST(SimpleBasicDeleteUTest)
1818# ADD_CXXTEST(SimpleDeleteUTest)
1919ADD_CXXTEST(SimpleAlphaEquivUTest)
2020ADD_CXXTEST(SimpleMultiPersistUTest)
tests/persist/cog-simple/SimpleBasicDeleteUTest.cxxtest +73 -3
……@@ -133,6 +133,14 @@ void SimpleBasicDeleteUTest::test_duplicates(void)
133133 // in it, this can cause trouble, depending on how the
134134 // incoming set is managed.
135135 store->remove_atom(as, li);
136 TS_ASSERT_EQUALS(as->get_size(), 4);
137 store->close();
138 as->extract_atom(li);
139 TS_ASSERT_EQUALS(as->get_size(), 3);
140 store->open();
141 store->load_atomspace();
142 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
143 if (tvk) as->extract_atom(tvk);
136144 TS_ASSERT_EQUALS(as->get_size(), 3);
137145
138146 store->erase();
……@@ -186,6 +194,12 @@ void SimpleBasicDeleteUTest::test_recursive(void)
186194 for (const Handle& h : hset)
187195 printf("Post delete: %s\n", h->to_short_string().c_str());
188196
197 store->close();
198 as->extract_atom(ha, true);
199 store->open();
200 store->load_atomspace();
201 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
202 if (tvk) as->extract_atom(tvk);
189203 TS_ASSERT_EQUALS(as->get_size(), 2);
190204
191205 // --------------------------------------
……@@ -196,9 +210,20 @@ void SimpleBasicDeleteUTest::test_recursive(void)
196210
197211 store->store_atom(lj);
198212 store->barrier();
213 store->close();
214 store->open();
215 store->load_atomspace();
216 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
217 if (tvk) as->extract_atom(tvk);
199218 TS_ASSERT_EQUALS(as->get_size(), 5);
200219
201220 store->remove_atom(as, ha, true);
221 store->close();
222 as->extract_atom(ha, true);
223 store->open();
224 store->load_atomspace();
225 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
226 if (tvk) as->extract_atom(tvk);
202227 TS_ASSERT_EQUALS(as->get_size(), 2);
203228
204229 // --------------------------------------
……@@ -209,9 +234,20 @@ void SimpleBasicDeleteUTest::test_recursive(void)
209234
210235 store->store_atom(lj);
211236 store->barrier();
237 store->close();
238 store->open();
239 store->load_atomspace();
240 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
241 if (tvk) as->extract_atom(tvk);
212242 TS_ASSERT_EQUALS(as->get_size(), 5);
213243
214244 store->remove_atom(as, ha, true);
245 store->close();
246 as->extract_atom(ha, true);
247 store->open();
248 store->load_atomspace();
249 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
250 if (tvk) as->extract_atom(tvk);
215251 TS_ASSERT_EQUALS(as->get_size(), 2);
216252
217253 // --------------------------------------
……@@ -223,9 +259,20 @@ void SimpleBasicDeleteUTest::test_recursive(void)
223259
224260 store->store_atom(lk);
225261 store->barrier();
262 store->close();
263 store->open();
264 store->load_atomspace();
265 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
266 if (tvk) as->extract_atom(tvk);
226267 TS_ASSERT_EQUALS(as->get_size(), 6);
227268
228269 store->remove_atom(as, ha, true);
270 store->close();
271 as->extract_atom(ha, true);
272 store->open();
273 store->load_atomspace();
274 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
275 if (tvk) as->extract_atom(tvk);
229276 TS_ASSERT_EQUALS(as->get_size(), 2);
230277
231278 // --------------------------------------
……@@ -277,7 +324,18 @@ void SimpleBasicDeleteUTest::test_key_deletion(void)
277324
278325 // Remove one of the keys
279326 store->remove_atom(as, kb);
280 TS_ASSERT_EQUALS(as->get_size(), 4);
327
328 // Verify the key was deleted by loading only PredicateNodes.
329 as = createAtomSpace();
330 hsn = as->add_node(COG_SIMPLE_STORAGE_NODE, std::string(uri));
331 store = StorageNodeCast(hsn);
332 store->open();
333 store->fetch_all_atoms_of_type(PREDICATE_NODE);
334
335 // key-b should be gone, key-a and key-c should be present
336 TS_ASSERT(nullptr == as->get_node(PREDICATE_NODE, "key-b"));
337 TS_ASSERT(nullptr != as->get_node(PREDICATE_NODE, "key-a"));
338 TS_ASSERT(nullptr != as->get_node(PREDICATE_NODE, "key-c"));
281339
282340 // FYI, we should call store->close() at this point, but we
283341 // don't, because ... most users forget to do this too.
……@@ -359,6 +417,7 @@ void SimpleBasicDeleteUTest::test_key_corruption(void)
359417
360418 // Remove the value
361419 store->remove_atom(as, hx);
420 as->extract_atom(hx);
362421 TS_ASSERT_EQUALS(as->get_size(), 3);
363422
364423 // FYI, we should call store->close() at this point, but we
……@@ -388,6 +447,10 @@ void SimpleBasicDeleteUTest::test_key_corruption(void)
388447 as->get_root_set_by_type(hset, ATOM, true);
389448 for (const Handle& h: hset)
390449 printf("Atomspace contains h=%s\n", h->to_short_string().c_str());
450
451 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
452 if (tvk) as->extract_atom(tvk);
453 // Size stays at 4 because (Concept "x") cannot be deleted.
391454 TS_ASSERT_EQUALS(as->get_size(), 4);
392455
393456 hb = as->add_node(CONCEPT_NODE, "b");
……@@ -403,9 +466,16 @@ void SimpleBasicDeleteUTest::test_key_corruption(void)
403466
404467 TS_ASSERT_EQUALS(as->get_size(), 6);
405468
406 // Remove the value .. again
469 // Remove the value .. again. It won't actually be deleted because
470 // (Concept "x") is still referenced in a Value on (Concept "b").
407471 store->remove_atom(as, hx);
408 TS_ASSERT_EQUALS(as->get_size(), 5);
472 store->close();
473 store->open();
474 store->load_atomspace();
475 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
476 if (tvk) as->extract_atom(tvk);
477 // Size stays at 6 because (Concept "x") cannot be deleted.
478 TS_ASSERT_EQUALS(as->get_size(), 6);
409479
410480 // We are done.
411481 store->close();
tests/persist/cog-storage/CMakeLists.txt +1 -1
……@@ -13,7 +13,7 @@ ADD_CXXTEST(ValueSaveUTest)
1313ADD_CXXTEST(PersistUTest)
1414ADD_CXXTEST(FetchUTest)
1515TARGET_LINK_LIBRARIES(FetchUTest execution)
16# ADD_CXXTEST(BasicDeleteUTest)
16ADD_CXXTEST(BasicDeleteUTest)
1717# ADD_CXXTEST(DeleteUTest)
1818ADD_CXXTEST(AlphaEquivUTest)
1919ADD_CXXTEST(QueryPersistUTest)