You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2019/02/19 11:16:55 UTC
svn commit: r1853872 - in /jackrabbit/oak/trunk/oak-core: pom.xml
src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java
Author: reschke
Date: Tue Feb 19 11:16:55 2019
New Revision: 1853872
URL: http://svn.apache.org/viewvc?rev=1853872&view=rev
Log:
OAK-8035: a message is logged when similar costs come from the same index type
test cleanup, use LogCustomizer, remove assertj dependency
Modified:
jackrabbit/oak/trunk/oak-core/pom.xml
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java
Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1853872&r1=1853871&r2=1853872&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Tue Feb 19 11:16:55 2019
@@ -281,11 +281,5 @@
<version>1.1.1</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.assertj</groupId>
- <artifactId>assertj-core</artifactId>
- <version>3.6.2</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java?rev=1853872&r1=1853871&r2=1853872&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/stats/QuerySimilarCostTest.java Tue Feb 19 11:16:55 2019
@@ -23,6 +23,7 @@ import org.apache.jackrabbit.JcrConstant
import org.apache.jackrabbit.oak.InitialContent;
import org.apache.jackrabbit.oak.Oak;
import org.apache.jackrabbit.oak.api.ContentRepository;
+import org.apache.jackrabbit.oak.commons.junit.LogCustomizer;
import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexPlan;
import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider;
@@ -39,19 +40,14 @@ import org.apache.jackrabbit.oak.spi.que
import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.util.NodeUtil;
-import org.assertj.core.api.Assertions;
-import org.assertj.core.groups.Tuple;
+import org.hamcrest.core.IsCollectionContaining;
import org.jetbrains.annotations.NotNull;
+import org.junit.Assert;
import org.junit.Test;
-import org.slf4j.LoggerFactory;
+import org.slf4j.event.Level;
import com.google.common.collect.ImmutableList;
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.read.ListAppender;
-
/**
* Tests for cases where two or more indices return a similar cost estimation for the same query
*/
@@ -59,6 +55,7 @@ public class QuerySimilarCostTest extend
private TestIndexProvider testIndexProvider = new TestIndexProvider();
private final SQL2Parser p = SQL2ParserTest.createTestSQL2Parser();
+
@Override
protected ContentRepository createRepository() {
return new Oak()
@@ -70,21 +67,17 @@ public class QuerySimilarCostTest extend
.createContentRepository();
}
-
/*
* Given 2 index plan with similar cost we expect a log at debug level to
* intimate user to either modify either of the indices or the query
*/
@Test
- public void testSimilarCostIndices() throws Exception{
- Logger queryImplLogger = (Logger) LoggerFactory.getLogger(QueryImpl.class);
- queryImplLogger.setLevel(ch.qos.logback.classic.Level.DEBUG);
-
- ListAppender<ILoggingEvent> listAppender = new ListAppender<>();
- listAppender.start();
+ public void testSimilarCostIndices() throws Exception {
+ LogCustomizer customLogs = LogCustomizer.forLogger(QueryImpl.class.getName()).enable(Level.DEBUG).create();
try {
- queryImplLogger.addAppender(listAppender);
+ customLogs.starting();
+
NodeUtil node = new NodeUtil(root.getTree("/"));
String uuid = UUID.randomUUID().toString();
node.setString(JcrConstants.JCR_UUID, uuid);
@@ -92,22 +85,20 @@ public class QuerySimilarCostTest extend
executeQuery("SELECT * FROM [nt:base] WHERE [jcr:uuid] is not null", SQL2, true, false);
- String expectedLogMessage = String.format("selected index %s " +
- "with plan testIndexPlan1 and %s with plan testIndexPlan2 have similar costs 11.0 and 11.0 " +
- "for query Filter(query=SELECT * FROM [nt:base] WHERE [jcr:uuid] is not null, path=*, property=[jcr:uuid=[is not null]]) - check query explanation / index definitions",testIndexProvider.index,testIndexProvider.index);
-
- listAppender.stop();
- Assertions.assertThat(listAppender.list)
- .extracting(ILoggingEvent::getMessage, ILoggingEvent::getLevel)
- .contains(Tuple.tuple(expectedLogMessage, Level.DEBUG));
- }
- finally {
- listAppender.stop();
+ String expectedLogMessage = String.format("selected index %s "
+ + "with plan testIndexPlan1 and %s with plan testIndexPlan2 have similar costs 11.0 and 11.0 "
+ + "for query Filter(query=SELECT * FROM [nt:base] WHERE [jcr:uuid] is not null, path=*, property=[jcr:uuid=[is not null]]) - check query explanation / index definitions",
+ testIndexProvider.index, testIndexProvider.index);
+
+ Assert.assertThat(customLogs.getLogs(), IsCollectionContaining.hasItems(expectedLogMessage));
+ } finally {
+ customLogs.finished();
}
}
private static class TestIndexProvider implements QueryIndexProvider {
TestIndex index = new TestIndex();
+
@Override
public @NotNull List<? extends QueryIndex> getQueryIndexes(NodeState nodeState) {
return ImmutableList.<QueryIndex>of(index);
@@ -115,7 +106,7 @@ public class QuerySimilarCostTest extend
}
private static class TestIndex implements QueryIndex,QueryIndex.AdvancedQueryIndex {
- int invocationCount = 0;
+
@Override
public double getMinimumCost() {
return PropertyIndexPlan.COST_OVERHEAD + 0.1;
@@ -123,7 +114,6 @@ public class QuerySimilarCostTest extend
@Override
public double getCost(Filter filter, NodeState rootState) {
- invocationCount++;
return Double.POSITIVE_INFINITY;
}
@@ -142,7 +132,6 @@ public class QuerySimilarCostTest extend
return "test-index";
}
-
@Override
public List<QueryIndex.IndexPlan> getPlans(Filter filter, List<QueryIndex.OrderEntry> sortOrder, NodeState rootState) {
IndexPlan.Builder b = new IndexPlan.Builder();
@@ -167,5 +156,4 @@ public class QuerySimilarCostTest extend
return null;
}
}
-
}