diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-08-19 13:06:38 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-08-19 20:36:51 +0000 |
commit | 76db49d501be07b1fc6ac09370886bb89ffab8ef (patch) | |
tree | 78cf0462694f82e35caa87464a653a8208850040 /searchcore/src/tests/proton | |
parent | a39aced4a87decfb421b5402b0b8b6e5b5a46d4c (diff) |
Do the time tracking for immediate commit in the replay state instead of having it spread all over.
Diffstat (limited to 'searchcore/src/tests/proton')
-rw-r--r-- | searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp | 68 | ||||
-rw-r--r-- | searchcore/src/tests/proton/server/feedstates_test.cpp | 16 |
2 files changed, 40 insertions, 44 deletions
diff --git a/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp b/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp index d1d08a332e3..747c712bee8 100644 --- a/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp +++ b/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp @@ -107,17 +107,14 @@ struct MyOwner : public IFeedHandlerOwner _allowPrune(false) { } - virtual void onTransactionLogReplayDone() override { + void onTransactionLogReplayDone() override { LOG(info, "MyOwner::onTransactionLogReplayDone()"); } - virtual void enterRedoReprocessState() override {} - virtual void onPerformPrune(SerialNum) override {} + void enterRedoReprocessState() override {} + void onPerformPrune(SerialNum) override {} - virtual bool - getAllowPrune() const override - { - return _allowPrune; - } + bool getAllowPrune() const override { return _allowPrune; } + vespalib::duration getVisibilityDelay() const override { return vespalib::from_s(0.0); } }; @@ -130,15 +127,15 @@ struct MyResourceWriteFilter : public IResourceWriteFilter _message() {} - virtual bool acceptWriteOperation() const override { return _acceptWriteOperation; } - virtual State getAcceptState() const override { + bool acceptWriteOperation() const override { return _acceptWriteOperation; } + State getAcceptState() const override { return IResourceWriteFilter::State(acceptWriteOperation(), _message); } }; struct MyReplayConfig : public IReplayConfig { - virtual void replayConfig(SerialNum) override {} + void replayConfig(SerialNum) override {} }; struct MyDocumentMetaStore { @@ -172,7 +169,7 @@ struct MyDocumentMetaStore { if (itr != _allocated.end()) { return &itr->second; } - return NULL; + return nullptr; } }; @@ -197,9 +194,9 @@ struct MyFeedView : public test::DummyFeedView { void preparePut(PutOperation &op) override { prepareDocumentOperation(op, op.getDocument()->getId().getGlobalId()); } - void prepareDocumentOperation(DocumentOperation &op, const GlobalId &gid) { + void prepareDocumentOperation(DocumentOperation &op, const GlobalId &gid) const { const MyDocumentMetaStore::Entry *entry = metaStore.get(gid); - if (entry != NULL) { + if (entry != nullptr) { op.setDbDocumentId(entry->_id); op.setPrevDbDocumentId(entry->_prevId); op.setPrevTimestamp(entry->_prevTimestamp); @@ -209,7 +206,7 @@ struct MyFeedView : public test::DummyFeedView { (void) token; LOG(info, "MyFeedView::handlePut(): docId(%s), putCount(%u), putLatchCount(%u)", putOp.getDocument()->getId().toString().c_str(), put_count, - (putLatch.get() != NULL ? putLatch->getCount() : 0u)); + (putLatch ? putLatch->getCount() : 0u)); if (usePutRdz) { putRdz.run(); } @@ -218,7 +215,7 @@ struct MyFeedView : public test::DummyFeedView { ++put_count; put_serial = putOp.getSerialNum(); metaStore.allocate(putOp.getDocument()->getId().getGlobalId()); - if (putLatch.get() != NULL) { + if (putLatch) { putLatch->countDown(); } } @@ -240,9 +237,9 @@ struct MyFeedView : public test::DummyFeedView { void heartBeat(SerialNum) override { ++heartbeat_count; } void handlePruneRemovedDocuments(const PruneRemovedDocumentsOperation &) override { ++prune_removed_count; } const ISimpleDocumentMetaStore *getDocumentMetaStorePtr() const override { - return NULL; + return nullptr; } - void checkCounts(int exp_update_count, SerialNum exp_update_serial, int exp_put_count, SerialNum exp_put_serial) { + void checkCounts(int exp_update_count, SerialNum exp_update_serial, int exp_put_count, SerialNum exp_put_serial) const { EXPECT_EQUAL(exp_update_count, update_count); EXPECT_EQUAL(exp_update_serial, update_serial); EXPECT_EQUAL(exp_put_count, put_count); @@ -266,7 +263,7 @@ MyFeedView::MyFeedView(const std::shared_ptr<const DocumentTypeRepo> &dtr, const update_serial(0), documentType(dtr->getDocumentType(docTypeName.getName())) {} -MyFeedView::~MyFeedView() {} +MyFeedView::~MyFeedView() = default; struct SchemaContext { @@ -358,7 +355,7 @@ struct MyTransport : public feedtoken::ITransport { ResultUP result; bool documentWasFound; MyTransport(); - ~MyTransport(); + ~MyTransport() override; void send(ResultUP res, bool documentWasFound_) override { result = std::move(res); documentWasFound = documentWasFound_; @@ -421,8 +418,8 @@ struct PutHandler { puts.push_back(pc); } bool await(uint32_t timeout = 80000) { - for (size_t i = 0; i < puts.size(); ++i) { - if (!puts[i]->tokenCtx.await(timeout)) { + for (const auto & put : puts) { + if (!put->tokenCtx.await(timeout)) { return false; } } @@ -475,7 +472,7 @@ struct FeedHandlerFixture feedView(schema.getRepo(), schema.getDocType()), _bucketDB(), _bucketDBHandler(_bucketDB), - handler(writeService, tlsSpec, schema.getDocType(), _state, owner, + handler(writeService, tlsSpec, schema.getDocType(), owner, writeFilter, replayConfig, tls, &tls_writer) { _state.enterLoadState(); @@ -500,18 +497,17 @@ struct FeedHandlerFixture struct MyConfigStore : ConfigStore { - virtual SerialNum getBestSerialNum() const override { return 1; } - virtual SerialNum getOldestSerialNum() const override { return 1; } - virtual void saveConfig(const DocumentDBConfig &, SerialNum) override {} - virtual void loadConfig(const DocumentDBConfig &, SerialNum, - DocumentDBConfig::SP &) override {} - virtual void removeInvalid() override {} + SerialNum getBestSerialNum() const override { return 1; } + SerialNum getOldestSerialNum() const override { return 1; } + void saveConfig(const DocumentDBConfig &, SerialNum) override {} + void loadConfig(const DocumentDBConfig &, SerialNum, DocumentDBConfig::SP &) override {} + void removeInvalid() override {} void prune(SerialNum) override {} - virtual bool hasValidSerial(SerialNum) const override { return true; } - virtual SerialNum getPrevValidSerial(SerialNum) const override { return 1; } - virtual void serializeConfig(SerialNum, vespalib::nbostream &) override {} - virtual void deserializeConfig(SerialNum, vespalib::nbostream &) override {} - virtual void setProtonConfig(const ProtonConfigSP &) override { } + bool hasValidSerial(SerialNum) const override { return true; } + SerialNum getPrevValidSerial(SerialNum) const override { return 1; } + void serializeConfig(SerialNum, vespalib::nbostream &) override {} + void deserializeConfig(SerialNum, vespalib::nbostream &) override {} + void setProtonConfig(const ProtonConfigSP &) override { } }; @@ -637,7 +633,7 @@ TEST_F("require that partial update for non-existing document is tagged as such" auto op = std::make_unique<UpdateOperation>(upCtx.bucketId, Timestamp(10), upCtx.update); FeedTokenContext token_context; f.handler.performOperation(std::move(token_context.token), std::move(op)); - const UpdateResult *result = static_cast<const UpdateResult *>(token_context.getResult()); + const auto *result = dynamic_cast<const UpdateResult *>(token_context.getResult()); EXPECT_FALSE(token_context.transport.documentWasFound); EXPECT_EQUAL(0u, result->getExistingTimestamp()); @@ -655,7 +651,7 @@ TEST_F("require that partial update for non-existing document is created if spec auto op = std::make_unique<UpdateOperation>(upCtx.bucketId, Timestamp(10), upCtx.update); FeedTokenContext token_context; f.handler.performOperation(std::move(token_context.token), std::move(op)); - const UpdateResult *result = static_cast<const UpdateResult *>(token_context.getResult()); + const auto * result = dynamic_cast<const UpdateResult *>(token_context.getResult()); EXPECT_TRUE(token_context.transport.documentWasFound); EXPECT_EQUAL(10u, result->getExistingTimestamp()); diff --git a/searchcore/src/tests/proton/server/feedstates_test.cpp b/searchcore/src/tests/proton/server/feedstates_test.cpp index 6643eb925b9..d28ea51acd1 100644 --- a/searchcore/src/tests/proton/server/feedstates_test.cpp +++ b/searchcore/src/tests/proton/server/feedstates_test.cpp @@ -39,21 +39,21 @@ struct MyFeedView : public test::DummyFeedView { int remove_handled; MyFeedView(); - ~MyFeedView(); + ~MyFeedView() override; const std::shared_ptr<const DocumentTypeRepo> &getDocumentTypeRepo() const override { return repo_sp; } void handleRemove(FeedToken , const RemoveOperation &) override { ++remove_handled; } }; MyFeedView::MyFeedView() : repo_sp(repo.getTypeRepoSp()), remove_handled(0) {} -MyFeedView::~MyFeedView() {} +MyFeedView::~MyFeedView() = default; struct MyReplayConfig : IReplayConfig { - virtual void replayConfig(SerialNum) override {} + void replayConfig(SerialNum) override {} }; struct InstantExecutor : vespalib::Executor { - virtual Task::UP execute(Task::UP task) override { + Task::UP execute(Task::UP task) override { task->run(); return Task::UP(); } @@ -82,7 +82,7 @@ Fixture::Fixture() config_store(), _bucketDB(), _bucketDBHandler(_bucketDB), - state("doctypename", feed_view_ptr, _bucketDBHandler, replay_config, config_store) + state("doctypename", feed_view_ptr, _bucketDBHandler, replay_config, config_store, vespalib::from_s(0.1)) { } Fixture::~Fixture() = default; @@ -95,7 +95,7 @@ struct RemoveOperationContext nbostream str; std::unique_ptr<Packet> packet; - RemoveOperationContext(search::SerialNum serial); + explicit RemoveOperationContext(search::SerialNum serial); ~RemoveOperationContext(); }; @@ -106,14 +106,14 @@ RemoveOperationContext::RemoveOperationContext(search::SerialNum serial) { op.serialize(str); ConstBufferRef buf(str.data(), str.wp()); - packet.reset(new Packet()); + packet = std::make_unique<Packet>(); packet->add(Packet::Entry(serial, FeedOperation::REMOVE, buf)); } RemoveOperationContext::~RemoveOperationContext() = default; TEST_F("require that active FeedView can change during replay", Fixture) { RemoveOperationContext opCtx(10); - PacketWrapper::SP wrap(new PacketWrapper(*opCtx.packet, NULL)); + auto wrap = std::make_shared<PacketWrapper>(*opCtx.packet, nullptr); InstantExecutor executor; EXPECT_EQUAL(0, f.feed_view1.remove_handled); |