Fix SourceOnlySnapshotIT (#53462)
The tests in this class had been failing for a while, but went unnoticed as not tested by CI (see #53442). The reason the tests fail is that the can-match phase is smarter now, and filters out access to a non-existing field. Closes #53442
This commit is contained in:
parent
af987fb2d4
commit
48124807d5
|
@ -106,9 +106,9 @@ public class SourceOnlySnapshotIT extends ESIntegTestCase {
|
||||||
});
|
});
|
||||||
assertTrue(e.toString().contains("_source only indices can't be searched or filtered"));
|
assertTrue(e.toString().contains("_source only indices can't be searched or filtered"));
|
||||||
|
|
||||||
e = expectThrows(SearchPhaseExecutionException.class, () ->
|
// can-match phase pre-filters access to non-existing field
|
||||||
client().prepareSearch(sourceIdx).setQuery(QueryBuilders.termQuery("field1", "bar")).get());
|
assertEquals(0,
|
||||||
assertTrue(e.toString().contains("_source only indices can't be searched or filtered"));
|
client().prepareSearch(sourceIdx).setQuery(QueryBuilders.termQuery("field1", "bar")).get().getHits().getTotalHits().value);
|
||||||
// make sure deletes do not work
|
// make sure deletes do not work
|
||||||
String idToDelete = "" + randomIntBetween(0, builders.length);
|
String idToDelete = "" + randomIntBetween(0, builders.length);
|
||||||
expectThrows(ClusterBlockException.class, () -> client().prepareDelete(sourceIdx, "_doc", idToDelete)
|
expectThrows(ClusterBlockException.class, () -> client().prepareDelete(sourceIdx, "_doc", idToDelete)
|
||||||
|
@ -131,9 +131,9 @@ public class SourceOnlySnapshotIT extends ESIntegTestCase {
|
||||||
SearchPhaseExecutionException e = expectThrows(SearchPhaseExecutionException.class, () ->
|
SearchPhaseExecutionException e = expectThrows(SearchPhaseExecutionException.class, () ->
|
||||||
client().prepareSearch(sourceIdx).setQuery(QueryBuilders.idsQuery().addIds("" + randomIntBetween(0, builders.length))).get());
|
client().prepareSearch(sourceIdx).setQuery(QueryBuilders.idsQuery().addIds("" + randomIntBetween(0, builders.length))).get());
|
||||||
assertTrue(e.toString().contains("_source only indices can't be searched or filtered"));
|
assertTrue(e.toString().contains("_source only indices can't be searched or filtered"));
|
||||||
e = expectThrows(SearchPhaseExecutionException.class, () ->
|
// can-match phase pre-filters access to non-existing field
|
||||||
client().prepareSearch(sourceIdx).setQuery(QueryBuilders.termQuery("field1", "bar")).get());
|
assertEquals(0,
|
||||||
assertTrue(e.toString().contains("_source only indices can't be searched or filtered"));
|
client().prepareSearch(sourceIdx).setQuery(QueryBuilders.termQuery("field1", "bar")).get().getHits().getTotalHits().value);
|
||||||
// make sure deletes do not work
|
// make sure deletes do not work
|
||||||
String idToDelete = "" + randomIntBetween(0, builders.length);
|
String idToDelete = "" + randomIntBetween(0, builders.length);
|
||||||
expectThrows(ClusterBlockException.class, () -> client().prepareDelete(sourceIdx, "_doc", idToDelete)
|
expectThrows(ClusterBlockException.class, () -> client().prepareDelete(sourceIdx, "_doc", idToDelete)
|
||||||
|
|
Loading…
Reference in New Issue