| … | … | @@ -91,6 +91,10 @@ void SimpleBasicDeleteUTest::tearDown(void) |
| 91 | 91 | { |
| 92 | 92 | } |
| 93 | 93 | |
| 94 | // 9 more from CogServerNode and gorp; 2 for *-TruthValueKey-* and |
| 95 | // *-IsKeyFlag-* |
| 96 | int basic_offset = 9 + 2; |
| 97 | |
| 94 | 98 | // ============================================================ |
| 95 | 99 | |
| 96 | 100 | void SimpleBasicDeleteUTest::test_duplicates(void) |
| … | … | @@ -106,7 +110,7 @@ void SimpleBasicDeleteUTest::test_duplicates(void) |
| 106 | 110 | TS_ASSERT(store->connected()) |
| 107 | 111 | |
| 108 | 112 | // Clear out left-over junk, just in case. |
| 109 | | store->erase(); |
| 113 | ::kill_data(store.get(), _test_asp.get()); |
| 110 | 114 | |
| 111 | 115 | Handle ha(as->add_node(CONCEPT_NODE, "a")); |
| 112 | 116 | Handle hb(as->add_node(CONCEPT_NODE, "b")); |
| … | … | @@ -129,9 +133,9 @@ void SimpleBasicDeleteUTest::test_duplicates(void) |
| 129 | 133 | TS_ASSERT_EQUALS(as->get_size(), 3); |
| 130 | 134 | store->open(); |
| 131 | 135 | store->load_atomspace(); |
| 132 | | TS_ASSERT_EQUALS(as->get_size(), 5); |
| 136 | TS_ASSERT_EQUALS(as->get_size(), 3 + basic_offset); |
| 133 | 137 | |
| 134 | | store->erase(); |
| 138 | ::kill_data(store.get(), _test_asp.get()); |
| 135 | 139 | store->close(); |
| 136 | 140 | |
| 137 | 141 | logger().debug("END TEST: %s", __FUNCTION__); |
| … | … | @@ -152,7 +156,7 @@ void SimpleBasicDeleteUTest::test_recursive(void) |
| 152 | 156 | TS_ASSERT(store->connected()) |
| 153 | 157 | |
| 154 | 158 | // Clear out left-over junk, just in case. |
| 155 | | store->erase(); |
| 159 | ::kill_data(store.get(), _test_asp.get()); |
| 156 | 160 | |
| 157 | 161 | Handle ha(as->add_node(CONCEPT_NODE, "a")); |
| 158 | 162 | Handle hb(as->add_node(CONCEPT_NODE, "b")); |
| … | … | @@ -186,8 +190,7 @@ void SimpleBasicDeleteUTest::test_recursive(void) |
| 186 | 190 | as->extract_atom(ha, true); |
| 187 | 191 | store->open(); |
| 188 | 192 | store->load_atomspace(); |
| 189 | | // +2 for *-TruthValueKey-* and *-IsKeyFlag-* |
| 190 | | TS_ASSERT_EQUALS(as->get_size(), 4); |
| 193 | TS_ASSERT_EQUALS(as->get_size(), 2 + basic_offset); |
| 191 | 194 | |
| 192 | 195 | // -------------------------------------- |
| 193 | 196 | // Do it again, but with a different order. |
| … | … | @@ -200,16 +203,14 @@ void SimpleBasicDeleteUTest::test_recursive(void) |
| 200 | 203 | store->close(); |
| 201 | 204 | store->open(); |
| 202 | 205 | store->load_atomspace(); |
| 203 | | // +2 for *-TruthValueKey-* and *-IsKeyFlag-* |
| 204 | | TS_ASSERT_EQUALS(as->get_size(), 7); |
| 206 | TS_ASSERT_EQUALS(as->get_size(), 5 + basic_offset); |
| 205 | 207 | |
| 206 | 208 | store->remove_atom(as, ha, true); |
| 207 | 209 | store->close(); |
| 208 | 210 | as->extract_atom(ha, true); |
| 209 | 211 | store->open(); |
| 210 | 212 | store->load_atomspace(); |
| 211 | | // +2 for *-TruthValueKey-* and *-IsKeyFlag-* |
| 212 | | TS_ASSERT_EQUALS(as->get_size(), 4); |
| 213 | TS_ASSERT_EQUALS(as->get_size(), 2 + basic_offset); |
| 213 | 214 | |
| 214 | 215 | // -------------------------------------- |
| 215 | 216 | // Do it again, but with a complex order. |
| … | … | @@ -222,16 +223,14 @@ void SimpleBasicDeleteUTest::test_recursive(void) |
| 222 | 223 | store->close(); |
| 223 | 224 | store->open(); |
| 224 | 225 | store->load_atomspace(); |
| 225 | | // +2 for *-TruthValueKey-* and *-IsKeyFlag-* |
| 226 | | TS_ASSERT_EQUALS(as->get_size(), 7); |
| 226 | TS_ASSERT_EQUALS(as->get_size(), 5 + basic_offset); |
| 227 | 227 | |
| 228 | 228 | store->remove_atom(as, ha, true); |
| 229 | 229 | store->close(); |
| 230 | 230 | as->extract_atom(ha, true); |
| 231 | 231 | store->open(); |
| 232 | 232 | store->load_atomspace(); |
| 233 | | // +2 for *-TruthValueKey-* and *-IsKeyFlag-* |
| 234 | | TS_ASSERT_EQUALS(as->get_size(), 4); |
| 233 | TS_ASSERT_EQUALS(as->get_size(), 2 + basic_offset); |
| 235 | 234 | |
| 236 | 235 | // -------------------------------------- |
| 237 | 236 | // Do it again, but more deeply. |
| … | … | @@ -245,19 +244,17 @@ void SimpleBasicDeleteUTest::test_recursive(void) |
| 245 | 244 | store->close(); |
| 246 | 245 | store->open(); |
| 247 | 246 | store->load_atomspace(); |
| 248 | | // +2 for *-TruthValueKey-* and *-IsKeyFlag-* |
| 249 | | TS_ASSERT_EQUALS(as->get_size(), 8); |
| 247 | TS_ASSERT_EQUALS(as->get_size(), 6 + basic_offset); |
| 250 | 248 | |
| 251 | 249 | store->remove_atom(as, ha, true); |
| 252 | 250 | store->close(); |
| 253 | 251 | as->extract_atom(ha, true); |
| 254 | 252 | store->open(); |
| 255 | 253 | store->load_atomspace(); |
| 256 | | // +2 for *-TruthValueKey-* and *-IsKeyFlag-* |
| 257 | | TS_ASSERT_EQUALS(as->get_size(), 4); |
| 254 | TS_ASSERT_EQUALS(as->get_size(), 2 + basic_offset); |
| 258 | 255 | |
| 259 | 256 | // -------------------------------------- |
| 260 | | store->erase(); |
| 257 | ::kill_data(store.get(), _test_asp.get()); |
| 261 | 258 | store->close(); |
| 262 | 259 | |
| 263 | 260 | logger().debug("END TEST: %s", __FUNCTION__); |
| … | … | @@ -279,7 +276,7 @@ void SimpleBasicDeleteUTest::test_key_deletion(void) |
| 279 | 276 | TS_ASSERT(store->connected()) |
| 280 | 277 | |
| 281 | 278 | // Clear out left-over junk, just in case. |
| 282 | | store->erase(); |
| 279 | ::kill_data(store.get(), _test_asp.get()); |
| 283 | 280 | |
| 284 | 281 | Handle ha(as->add_node(CONCEPT_NODE, "a")); |
| 285 | 282 | Handle ka(as->add_node(PREDICATE_NODE, "key-a")); |
| … | … | @@ -339,10 +336,10 @@ void SimpleBasicDeleteUTest::test_key_deletion(void) |
| 339 | 336 | store->open(); |
| 340 | 337 | TS_ASSERT(store->connected()) |
| 341 | 338 | |
| 342 | | // We expect 6 atoms (+1 for *-IsKeyFlag-*) |
| 339 | // We expect 5 atoms |
| 343 | 340 | printf("Loading the atomspace ...\n"); |
| 344 | 341 | store->load_atomspace(); |
| 345 | | TS_ASSERT_EQUALS(as->get_size(), 6); |
| 342 | TS_ASSERT_EQUALS(as->get_size(), 5 + basic_offset); |
| 346 | 343 | |
| 347 | 344 | // Verify that there are only two keys .. haha no, three. |
| 348 | 345 | // That is because the deleted key gets restored when the |
| … | … | @@ -361,7 +358,7 @@ void SimpleBasicDeleteUTest::test_key_deletion(void) |
| 361 | 358 | printf("key=%s\n", k->get_name().c_str()); |
| 362 | 359 | TS_ASSERT_EQUALS(hs.size(), 3); |
| 363 | 360 | |
| 364 | | store->erase(); |
| 361 | ::kill_data(store.get(), _test_asp.get()); |
| 365 | 362 | store->close(); |
| 366 | 363 | |
| 367 | 364 | logger().debug("END TEST: %s", __FUNCTION__); |
| … | … | @@ -369,6 +366,9 @@ void SimpleBasicDeleteUTest::test_key_deletion(void) |
| 369 | 366 | |
| 370 | 367 | // ============================================================ |
| 371 | 368 | |
| 369 | // A few more that cannot be deleted. |
| 370 | int full_offset = basic_offset + 3; |
| 371 | |
| 372 | 372 | // This tests for a nasty off-by-one bug that showed up |
| 373 | 373 | // in RocksDB. Make sure it never happens again. |
| 374 | 374 | void SimpleBasicDeleteUTest::test_key_corruption(void) |
| … | … | @@ -385,7 +385,7 @@ void SimpleBasicDeleteUTest::test_key_corruption(void) |
| 385 | 385 | TS_ASSERT(store->connected()) |
| 386 | 386 | |
| 387 | 387 | // Clear out left-over junk, just in case. |
| 388 | | store->erase(); |
| 388 | ::kill_data(store.get(), _test_asp.get()); |
| 389 | 389 | |
| 390 | 390 | Handle hb(as->add_node(CONCEPT_NODE, "b")); |
| 391 | 391 | Handle hx(as->add_node(CONCEPT_NODE, "x")); |
| … | … | @@ -397,13 +397,11 @@ void SimpleBasicDeleteUTest::test_key_corruption(void) |
| 397 | 397 | store->store_atom(hb); |
| 398 | 398 | store->barrier(); |
| 399 | 399 | |
| 400 | | // Verify the atomspace size (+1 for *-IsKeyFlag-*) |
| 401 | 400 | TS_ASSERT_EQUALS(as->get_size(), 5); |
| 402 | 401 | |
| 403 | 402 | // Remove the value |
| 404 | 403 | store->remove_atom(as, hx); |
| 405 | 404 | as->extract_atom(hx); |
| 406 | | // +1 for *-IsKeyFlag-* |
| 407 | 405 | TS_ASSERT_EQUALS(as->get_size(), 4); |
| 408 | 406 | |
| 409 | 407 | // FYI, we should call store->close() at this point, but we |
| … | … | @@ -434,9 +432,8 @@ void SimpleBasicDeleteUTest::test_key_corruption(void) |
| 434 | 432 | for (const Handle& h: hset) |
| 435 | 433 | printf("Atomspace contains h=%s\n", h->to_short_string().c_str()); |
| 436 | 434 | |
| 437 | | // Size is 5 because (Concept "x") cannot be deleted. |
| 438 | | // +1 for *-IsKeyFlag-* |
| 439 | | TS_ASSERT_EQUALS(as->get_size(), 5); |
| 435 | // Size is 4 because (Concept "x") cannot be deleted. |
| 436 | TS_ASSERT_EQUALS(as->get_size(), 4 + full_offset); |
| 440 | 437 | |
| 441 | 438 | hb = as->add_node(CONCEPT_NODE, "b"); |
| 442 | 439 | hx = as->add_node(CONCEPT_NODE, "x"); |
| … | … | @@ -449,20 +446,17 @@ void SimpleBasicDeleteUTest::test_key_corruption(void) |
| 449 | 446 | store->store_atom(hb); |
| 450 | 447 | store->barrier(); |
| 451 | 448 | |
| 452 | | // +1 for *-IsKeyFlag-* |
| 453 | | TS_ASSERT_EQUALS(as->get_size(), 7); |
| 449 | TS_ASSERT_EQUALS(as->get_size(), 6 + full_offset); |
| 454 | 450 | |
| 455 | 451 | // Remove the value .. again |
| 456 | 452 | store->remove_atom(as, hx); |
| 457 | 453 | as->extract_atom(hx); |
| 458 | | // +1 for *-IsKeyFlag-* |
| 459 | | TS_ASSERT_EQUALS(as->get_size(), 6); |
| 454 | TS_ASSERT_EQUALS(as->get_size(), 5 + full_offset); |
| 460 | 455 | store->close(); |
| 461 | 456 | store->open(); |
| 462 | 457 | store->load_atomspace(); |
| 463 | | // Size is 7 because (Concept "x") cannot be deleted. |
| 464 | | // +1 for *-IsKeyFlag-* |
| 465 | | TS_ASSERT_EQUALS(as->get_size(), 7); |
| 458 | // Size is 6 because (Concept "x") cannot be deleted. |
| 459 | TS_ASSERT_EQUALS(as->get_size(), 6 + full_offset); |
| 466 | 460 | |
| 467 | 461 | // We are done. |
| 468 | 462 | store->close(); |
| … | … | @@ -479,10 +473,10 @@ void SimpleBasicDeleteUTest::test_key_corruption(void) |
| 479 | 473 | store->open(); |
| 480 | 474 | TS_ASSERT(store->connected()) |
| 481 | 475 | |
| 482 | | // We expect 7 atoms (+1 for *-IsKeyFlag-*) |
| 476 | // We expect 6 atoms |
| 483 | 477 | printf("Loading the atomspace ...\n"); |
| 484 | 478 | store->load_atomspace(); |
| 485 | | TS_ASSERT_EQUALS(as->get_size(), 7); |
| 479 | TS_ASSERT_EQUALS(as->get_size(), 6 + full_offset); |
| 486 | 480 | |
| 487 | 481 | // Verify that there are two keys |
| 488 | 482 | hb = as->add_node(CONCEPT_NODE, "b"); |
| … | … | @@ -495,7 +489,7 @@ void SimpleBasicDeleteUTest::test_key_corruption(void) |
| 495 | 489 | } |
| 496 | 490 | TS_ASSERT_EQUALS(hs.size(), 2); |
| 497 | 491 | |
| 498 | | store->erase(); |
| 492 | ::kill_data(store.get(), _test_asp.get()); |
| 499 | 493 | store->close(); |
| 500 | 494 | |
| 501 | 495 | logger().debug("END TEST: %s", __FUNCTION__); |