OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomspace-rocks commits / 910d77c

Resotre to of the Delete tests
910d77cadecaeb4841bf0d62b54eb4d005158a5a
by Linas Vepstas <linasvepstas@gmail.com> · 2025-12-08T08:29:58.000Z

Changed files (4) +152 -4

tests/persist/monospace/CMakeLists.txt +1 -1
……@@ -14,7 +14,7 @@ ADD_CXXTEST(MonoValueSaveUTest)
1414ADD_CXXTEST(MonoPersistUTest)
1515ADD_CXXTEST(MonoFetchUTest)
1616TARGET_LINK_LIBRARIES(MonoFetchUTest execution)
17# ADD_CXXTEST(MonoBasicDeleteUTest)
17ADD_CXXTEST(MonoBasicDeleteUTest)
1818# ADD_CXXTEST(MonoDeleteUTest)
1919ADD_CXXTEST(MonoAlphaEquivUTest)
2020ADD_CXXTEST(MonoMultiPersistUTest)
tests/persist/monospace/MonoBasicDeleteUTest.cxxtest +75 -1
……@@ -123,6 +123,14 @@ void BasicDeleteUTest::test_duplicates(void)
123123 // in it, this can cause trouble, depending on how the
124124 // incoming set is managed.
125125 store->remove_atom(as, li);
126 TS_ASSERT_EQUALS(as->get_size(), 4);
127 store->close();
128 as->extract_atom(li);
129 TS_ASSERT_EQUALS(as->get_size(), 3);
130 store->open();
131 store->load_atomspace();
132 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
133 if (tvk) as->extract_atom(tvk);
126134 TS_ASSERT_EQUALS(as->get_size(), 3);
127135
128136 store->erase();
……@@ -177,6 +185,12 @@ void BasicDeleteUTest::test_recursive(void)
177185 for (const Handle& h : hset)
178186 printf("Post delete: %s\n", h->to_short_string().c_str());
179187
188 store->close();
189 as->extract_atom(ha, true);
190 store->open();
191 store->load_atomspace();
192 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
193 if (tvk) as->extract_atom(tvk);
180194 TS_ASSERT_EQUALS(as->get_size(), 2);
181195
182196 // --------------------------------------
……@@ -187,9 +201,20 @@ void BasicDeleteUTest::test_recursive(void)
187201
188202 store->store_atom(lj);
189203 store->barrier();
204 store->close();
205 store->open();
206 store->load_atomspace();
207 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
208 if (tvk) as->extract_atom(tvk);
190209 TS_ASSERT_EQUALS(as->get_size(), 5);
191210
192211 store->remove_atom(as, ha, true);
212 store->close();
213 as->extract_atom(ha, true);
214 store->open();
215 store->load_atomspace();
216 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
217 if (tvk) as->extract_atom(tvk);
193218 TS_ASSERT_EQUALS(as->get_size(), 2);
194219
195220 // --------------------------------------
……@@ -200,9 +225,20 @@ void BasicDeleteUTest::test_recursive(void)
200225
201226 store->store_atom(lj);
202227 store->barrier();
228 store->close();
229 store->open();
230 store->load_atomspace();
231 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
232 if (tvk) as->extract_atom(tvk);
203233 TS_ASSERT_EQUALS(as->get_size(), 5);
204234
205235 store->remove_atom(as, ha, true);
236 store->close();
237 as->extract_atom(ha, true);
238 store->open();
239 store->load_atomspace();
240 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
241 if (tvk) as->extract_atom(tvk);
206242 TS_ASSERT_EQUALS(as->get_size(), 2);
207243
208244 // --------------------------------------
……@@ -214,9 +250,20 @@ void BasicDeleteUTest::test_recursive(void)
214250
215251 store->store_atom(lk);
216252 store->barrier();
253 store->close();
254 store->open();
255 store->load_atomspace();
256 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
257 if (tvk) as->extract_atom(tvk);
217258 TS_ASSERT_EQUALS(as->get_size(), 6);
218259
219260 store->remove_atom(as, ha, true);
261 store->close();
262 as->extract_atom(ha, true);
263 store->open();
264 store->load_atomspace();
265 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
266 if (tvk) as->extract_atom(tvk);
220267 TS_ASSERT_EQUALS(as->get_size(), 2);
221268
222269 // --------------------------------------
……@@ -269,8 +316,22 @@ void BasicDeleteUTest::test_key_deletion(void)
269316
270317 // Remove one of the keys
271318 store->remove_atom(as, kb);
319 as->extract_atom(kb);
272320 TS_ASSERT_EQUALS(as->get_size(), 4);
273321
322 // Verify the key was deleted by loading only PredicateNodes.
323 delete as;
324 as = new AtomSpace();
325 hsn = as->add_node(MONO_STORAGE_NODE, std::string(uri));
326 store = StorageNodeCast(hsn);
327 store->open();
328 store->fetch_all_atoms_of_type(PREDICATE_NODE);
329
330 // key-b should be gone, key-a and key-c should be present
331 TS_ASSERT(nullptr == as->get_node(PREDICATE_NODE, "key-b"));
332 TS_ASSERT(nullptr != as->get_node(PREDICATE_NODE, "key-a"));
333 TS_ASSERT(nullptr != as->get_node(PREDICATE_NODE, "key-c"));
334
274335 // FYI, we should call store->close() at this point, but we
275336 // don't, because ... most users forget to do this too.
276337 // So this is a softball check that everything worked, even
……@@ -350,6 +411,7 @@ void BasicDeleteUTest::test_key_corruption(void)
350411
351412 // Remove the value
352413 store->remove_atom(as, hx);
414 as->extract_atom(hx);
353415 TS_ASSERT_EQUALS(as->get_size(), 3);
354416
355417 // FYI, we should call store->close() at this point, but we
……@@ -382,7 +444,11 @@ void BasicDeleteUTest::test_key_corruption(void)
382444 as->get_root_set_by_type(hset, ATOM, true);
383445 for (const Handle& h: hset)
384446 printf("Atomspace contains h=%s\n", h->to_short_string().c_str());
385 TS_ASSERT_EQUALS(as->get_size(), 5);
447
448 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
449 if (tvk) as->extract_atom(tvk);
450 // Size stays at 4 because (Concept "x") cannot be deleted.
451 TS_ASSERT_EQUALS(as->get_size(), 4);
386452
387453 hb = as->add_node(CONCEPT_NODE, "b");
388454 hx = as->add_node(CONCEPT_NODE, "x");
……@@ -399,6 +465,14 @@ void BasicDeleteUTest::test_key_corruption(void)
399465
400466 // Remove the value .. again
401467 store->remove_atom(as, hx);
468 as->extract_atom(hx);
469 TS_ASSERT_EQUALS(as->get_size(), 5);
470 store->close();
471 store->open();
472 store->load_atomspace();
473 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
474 if (tvk) as->extract_atom(tvk);
475 // Size stays at 6 because (Concept "x") cannot be deleted.
402476 TS_ASSERT_EQUALS(as->get_size(), 6);
403477
404478 // We are done.
tests/persist/rocks/BasicDeleteUTest.cxxtest +75 -1
……@@ -123,6 +123,14 @@ void BasicDeleteUTest::test_duplicates(void)
123123 // in it, this can cause trouble, depending on how the
124124 // incoming set is managed.
125125 store->remove_atom(as, li);
126 TS_ASSERT_EQUALS(as->get_size(), 4);
127 store->close();
128 as->extract_atom(li);
129 TS_ASSERT_EQUALS(as->get_size(), 3);
130 store->open();
131 store->load_atomspace();
132 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
133 if (tvk) as->extract_atom(tvk);
126134 TS_ASSERT_EQUALS(as->get_size(), 3);
127135
128136 store->erase();
……@@ -177,6 +185,12 @@ void BasicDeleteUTest::test_recursive(void)
177185 for (const Handle& h : hset)
178186 printf("Post delete: %s\n", h->to_short_string().c_str());
179187
188 store->close();
189 as->extract_atom(ha, true);
190 store->open();
191 store->load_atomspace();
192 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
193 if (tvk) as->extract_atom(tvk);
180194 TS_ASSERT_EQUALS(as->get_size(), 2);
181195
182196 // --------------------------------------
……@@ -187,9 +201,20 @@ void BasicDeleteUTest::test_recursive(void)
187201
188202 store->store_atom(lj);
189203 store->barrier();
204 store->close();
205 store->open();
206 store->load_atomspace();
207 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
208 if (tvk) as->extract_atom(tvk);
190209 TS_ASSERT_EQUALS(as->get_size(), 5);
191210
192211 store->remove_atom(as, ha, true);
212 store->close();
213 as->extract_atom(ha, true);
214 store->open();
215 store->load_atomspace();
216 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
217 if (tvk) as->extract_atom(tvk);
193218 TS_ASSERT_EQUALS(as->get_size(), 2);
194219
195220 // --------------------------------------
……@@ -200,9 +225,20 @@ void BasicDeleteUTest::test_recursive(void)
200225
201226 store->store_atom(lj);
202227 store->barrier();
228 store->close();
229 store->open();
230 store->load_atomspace();
231 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
232 if (tvk) as->extract_atom(tvk);
203233 TS_ASSERT_EQUALS(as->get_size(), 5);
204234
205235 store->remove_atom(as, ha, true);
236 store->close();
237 as->extract_atom(ha, true);
238 store->open();
239 store->load_atomspace();
240 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
241 if (tvk) as->extract_atom(tvk);
206242 TS_ASSERT_EQUALS(as->get_size(), 2);
207243
208244 // --------------------------------------
……@@ -214,9 +250,20 @@ void BasicDeleteUTest::test_recursive(void)
214250
215251 store->store_atom(lk);
216252 store->barrier();
253 store->close();
254 store->open();
255 store->load_atomspace();
256 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
257 if (tvk) as->extract_atom(tvk);
217258 TS_ASSERT_EQUALS(as->get_size(), 6);
218259
219260 store->remove_atom(as, ha, true);
261 store->close();
262 as->extract_atom(ha, true);
263 store->open();
264 store->load_atomspace();
265 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
266 if (tvk) as->extract_atom(tvk);
220267 TS_ASSERT_EQUALS(as->get_size(), 2);
221268
222269 // --------------------------------------
……@@ -269,8 +316,22 @@ void BasicDeleteUTest::test_key_deletion(void)
269316
270317 // Remove one of the keys
271318 store->remove_atom(as, kb);
319 as->extract_atom(kb);
272320 TS_ASSERT_EQUALS(as->get_size(), 4);
273321
322 // Verify the key was deleted by loading only PredicateNodes.
323 delete as;
324 as = new AtomSpace();
325 hsn = as->add_node(ROCKS_STORAGE_NODE, std::string(uri));
326 store = StorageNodeCast(hsn);
327 store->open();
328 store->fetch_all_atoms_of_type(PREDICATE_NODE);
329
330 // key-b should be gone, key-a and key-c should be present
331 TS_ASSERT(nullptr == as->get_node(PREDICATE_NODE, "key-b"));
332 TS_ASSERT(nullptr != as->get_node(PREDICATE_NODE, "key-a"));
333 TS_ASSERT(nullptr != as->get_node(PREDICATE_NODE, "key-c"));
334
274335 // FYI, we should call store->close() at this point, but we
275336 // don't, because ... most users forget to do this too.
276337 // So this is a softball check that everything worked, even
……@@ -350,6 +411,7 @@ void BasicDeleteUTest::test_key_corruption(void)
350411
351412 // Remove the value
352413 store->remove_atom(as, hx);
414 as->extract_atom(hx);
353415 TS_ASSERT_EQUALS(as->get_size(), 3);
354416
355417 // FYI, we should call store->close() at this point, but we
……@@ -382,7 +444,11 @@ void BasicDeleteUTest::test_key_corruption(void)
382444 as->get_root_set_by_type(hset, ATOM, true);
383445 for (const Handle& h: hset)
384446 printf("Atomspace contains h=%s\n", h->to_short_string().c_str());
385 TS_ASSERT_EQUALS(as->get_size(), 5);
447
448 Handle tvk(as->get_node(PREDICATE_NODE, "*-TruthValueKey-*"));
449 if (tvk) as->extract_atom(tvk);
450 // Size stays at 4 because (Concept "x") cannot be deleted.
451 TS_ASSERT_EQUALS(as->get_size(), 4);
386452
387453 hb = as->add_node(CONCEPT_NODE, "b");
388454 hx = as->add_node(CONCEPT_NODE, "x");
……@@ -399,6 +465,14 @@ void BasicDeleteUTest::test_key_corruption(void)
399465
400466 // Remove the value .. again
401467 store->remove_atom(as, hx);
468 as->extract_atom(hx);
469 TS_ASSERT_EQUALS(as->get_size(), 5);
470 store->close();
471 store->open();
472 store->load_atomspace();
473 tvk = as->get_node(PREDICATE_NODE, "*-TruthValueKey-*");
474 if (tvk) as->extract_atom(tvk);
475 // Size stays at 6 because (Concept "x") cannot be deleted.
402476 TS_ASSERT_EQUALS(as->get_size(), 6);
403477
404478 // We are done.
tests/persist/rocks/CMakeLists.txt +1 -1
……@@ -14,7 +14,7 @@ ADD_CXXTEST(ValueSaveUTest)
1414ADD_CXXTEST(PersistUTest)
1515ADD_CXXTEST(FetchUTest)
1616TARGET_LINK_LIBRARIES(FetchUTest execution)
17# ADD_CXXTEST(BasicDeleteUTest)
17ADD_CXXTEST(BasicDeleteUTest)
1818# ADD_CXXTEST(DeleteUTest)
1919ADD_CXXTEST(AlphaEquivUTest)
2020ADD_CXXTEST(MultiPersistUTest)