diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-01-12 21:59:29 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-01-12 22:00:32 +0000 |
commit | 195ff57d49d01a132d86f62f8ad9fc8b8cab65cc (patch) | |
tree | c1dd7321c232262c5bc85a2cae23e39f3cbfbc4a /searchcore | |
parent | 4a4d8938b3e7e71a6926cbf8ddbecf22eabe955e (diff) |
Test that updates are stopped by persistence engine if they contain barred content.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp b/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp index 17859c74feb..36c7d3588c7 100644 --- a/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp +++ b/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp @@ -6,7 +6,9 @@ #include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/test/make_bucket_space.h> #include <vespa/document/fieldvalue/document.h> +#include <vespa/document/fieldvalue/stringfieldvalue.h> #include <vespa/document/update/documentupdate.h> +#include <vespa/document/update/assignvalueupdate.h> #include <vespa/persistence/spi/documentselection.h> #include <vespa/persistence/spi/test.h> #include <vespa/searchcore/proton/persistenceengine/bucket_guard.h> @@ -506,20 +508,37 @@ TEST_F("require that updates with bad ids are rejected", SimpleFixture) f.engine.update(bucket1, tstamp1, bad_id_upd, context)); } +TEST_F("require that simple, cheap update is not rejected if resource limit is reached", SimpleFixture) +{ + f._writeFilter._acceptWriteOperation = false; + f._writeFilter._message = "Disk is full"; + + Context context(storage::spi::Priority(0), storage::spi::Trace::TraceLevel(0)); + + EXPECT_EQUAL(Result(Result::ErrorType::NONE, ""), + f.engine.update(bucket1, tstamp1, upd1, context)); +} + TEST_F("require that update is rejected if resource limit is reached", SimpleFixture) { f._writeFilter._acceptWriteOperation = false; f._writeFilter._message = "Disk is full"; Context context(storage::spi::Priority(0), storage::spi::Trace::TraceLevel(0)); + DocumentType type(createDocType("type_with_one_string", 1)); + document::Field field("string", 1, *document::DataType::STRING); + type.addField(field); + document::DocumentUpdate::SP upd = createUpd(type, docId1); + document::FieldUpdate fUpd(field); + fUpd.addUpdate(document::AssignValueUpdate(document::StringFieldValue("new value"))); + upd->addUpdate(fUpd); EXPECT_EQUAL( Result(Result::ErrorType::RESOURCE_EXHAUSTED, "Update operation rejected for document 'id:type1:type1::1': 'Disk is full'"), - f.engine.update(bucket1, tstamp1, upd1, context)); + f.engine.update(bucket1, tstamp1, upd, context)); } - TEST_F("require that removes are routed to handlers", SimpleFixture) { Context context(storage::spi::Priority(0), storage::spi::Trace::TraceLevel(0)); |