From bafce1ce01a7043a3017f9f3917fb266e70a253a Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Fri, 15 Sep 2017 12:21:39 +0000 Subject: Handle delayed calls to notifyRemoveDone() in gid to lid change handler. --- .../gid_to_lid_change_handler_test.cpp | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp') diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp b/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp index 6aafb3217c7..263159cefea 100644 --- a/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp +++ b/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp @@ -260,6 +260,38 @@ TEST_F("Test that pending removes are merged", Fixture) f.removeListeners("testdoc", {}); } +TEST_F("Test that out of order notifyRemoveDone is handled", Fixture) +{ + auto &stats = f.addStats(); + auto listener = std::make_unique(stats, "test", "testdoc"); + f.addListener(std::move(listener)); + f.notifyRemove(toGid(doc1), 20); + TEST_DO(stats.assertChanges(0, 1)); + f.notifyRemove(toGid(doc1), 40); + TEST_DO(stats.assertChanges(0, 1)); + f.notifyRemoveDone(toGid(doc1), 40); + TEST_DO(stats.assertChanges(0, 1)); + f.notifyRemoveDone(toGid(doc1), 20); + TEST_DO(stats.assertChanges(0, 1)); + f.notifyPutDone(toGid(doc1), 12, 50); + TEST_DO(stats.assertChanges(1, 1)); + f.removeListeners("testdoc", {}); +} + +TEST_F("Test that out of order notifyPutDone is handled", Fixture) +{ + auto &stats = f.addStats(); + auto listener = std::make_unique(stats, "test", "testdoc"); + f.addListener(std::move(listener)); + f.notifyRemove(toGid(doc1), 20); + TEST_DO(stats.assertChanges(0, 1)); + f.notifyPutDone(toGid(doc1), 12, 50); + TEST_DO(stats.assertChanges(1, 1)); + f.notifyRemoveDone(toGid(doc1), 20); + TEST_DO(stats.assertChanges(1, 1)); + f.removeListeners("testdoc", {}); +} + } TEST_MAIN() -- cgit v1.2.3