mirror of https://github.com/apache/lucene.git
Merge to trunk r1210134
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene3606@1210161 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
commit
da76086430
|
@ -669,6 +669,34 @@ Bug fixes
|
||||||
to correctly respect deletions on reopened SegmentReaders. Factored out
|
to correctly respect deletions on reopened SegmentReaders. Factored out
|
||||||
FieldCacheDocIdSet to be a top-level class. (Uwe Schindler, Simon Willnauer)
|
FieldCacheDocIdSet to be a top-level class. (Uwe Schindler, Simon Willnauer)
|
||||||
|
|
||||||
|
Build
|
||||||
|
|
||||||
|
* LUCENE-3228: Stop downloading external javadoc package-list files:
|
||||||
|
|
||||||
|
- Added package-list files for Oracle Java javadocs and JUnit javadocs to
|
||||||
|
Lucene/Solr subversion.
|
||||||
|
|
||||||
|
- The Oracle Java javadocs package-list file is excluded from Lucene and
|
||||||
|
Solr source release packages.
|
||||||
|
|
||||||
|
- Regardless of network connectivity, javadocs built from a subversion
|
||||||
|
checkout contain links to Oracle & JUnit javadocs.
|
||||||
|
|
||||||
|
- Building javadocs from a source release package will download the Oracle
|
||||||
|
Java package-list file if it isn't already present.
|
||||||
|
|
||||||
|
- When the Oracle Java package-list file is not present and download fails,
|
||||||
|
the javadocs targets will not fail the build, though an error will appear
|
||||||
|
in the build log. In this case, the built javadocs will not contain links
|
||||||
|
to Oracle Java javadocs.
|
||||||
|
|
||||||
|
- Links from Solr javadocs to Lucene's javadocs are enabled. When building
|
||||||
|
a X.Y.Z-SNAPSHOT version, the links are to the most recently built nightly
|
||||||
|
Jenkins javadocs. When building a release version, links are to the
|
||||||
|
Lucene release javadocs for the same version.
|
||||||
|
|
||||||
|
(Steve Rowe, hossman)
|
||||||
|
|
||||||
======================= Lucene 3.5.0 =======================
|
======================= Lucene 3.5.0 =======================
|
||||||
|
|
||||||
Changes in backwards compatibility policy
|
Changes in backwards compatibility policy
|
||||||
|
|
|
@ -249,6 +249,7 @@
|
||||||
<sources>
|
<sources>
|
||||||
<!-- TODO: find a dynamic way to do include multiple source roots -->
|
<!-- TODO: find a dynamic way to do include multiple source roots -->
|
||||||
<packageset dir="src/java"/>
|
<packageset dir="src/java"/>
|
||||||
|
<packageset dir="src/test-framework/java"/>
|
||||||
|
|
||||||
<!-- please keep this list up to date, and in alpha order... -->
|
<!-- please keep this list up to date, and in alpha order... -->
|
||||||
|
|
||||||
|
@ -377,6 +378,10 @@
|
||||||
value="${dist.dir}/lucene-${version}-src.tgz"/>
|
value="${dist.dir}/lucene-${version}-src.tgz"/>
|
||||||
<delete file="${source.package.file}"/>
|
<delete file="${source.package.file}"/>
|
||||||
<svn-export-source source.dir="."/>
|
<svn-export-source source.dir="."/>
|
||||||
|
|
||||||
|
<!-- Exclude javadoc package-list files under licenses incompatible with the ASL -->
|
||||||
|
<delete dir="${svn.export.dir}/src/tools/javadoc/java6"/>
|
||||||
|
|
||||||
<build-changes changes.src.dir="${svn.export.dir}/src/site/changes"
|
<build-changes changes.src.dir="${svn.export.dir}/src/site/changes"
|
||||||
changes.target.dir="${svn.export.dir}/docs/changes"/>
|
changes.target.dir="${svn.export.dir}/docs/changes"/>
|
||||||
<tar tarfile="${source.package.file}" compression="gzip" longfile="gnu">
|
<tar tarfile="${source.package.file}" compression="gzip" longfile="gnu">
|
||||||
|
@ -567,6 +572,8 @@
|
||||||
title="${Name} ${version} Test Framework API">
|
title="${Name} ${version} Test Framework API">
|
||||||
<sources>
|
<sources>
|
||||||
<packageset dir="src/test-framework/java"/>
|
<packageset dir="src/test-framework/java"/>
|
||||||
|
<link offline="true" href="${javadoc.link.junit}"
|
||||||
|
packagelistLoc="${javadoc.packagelist.dir}/junit"/>
|
||||||
<link href=""/>
|
<link href=""/>
|
||||||
</sources>
|
</sources>
|
||||||
</invoke-javadoc>
|
</invoke-javadoc>
|
||||||
|
|
|
@ -94,10 +94,13 @@
|
||||||
<property name="tests.seed" value="random" />
|
<property name="tests.seed" value="random" />
|
||||||
<property name="tests.loggingfile" value="/dev/null"/>
|
<property name="tests.loggingfile" value="/dev/null"/>
|
||||||
<property name="tests.nightly" value="false" />
|
<property name="tests.nightly" value="false" />
|
||||||
|
<property name="tests.weekly" value="false" />
|
||||||
|
<property name="tests.slow" value="false" />
|
||||||
<property name="tests.cleanthreads.sysprop" value="perMethod"/>
|
<property name="tests.cleanthreads.sysprop" value="perMethod"/>
|
||||||
<property name="tests.asserts.gracious" value="false"/>
|
<property name="tests.asserts.gracious" value="false"/>
|
||||||
<property name="tests.verbose" value="false"/>
|
<property name="tests.verbose" value="false"/>
|
||||||
<property name="tests.infostream" value="${tests.verbose}"/>
|
<property name="tests.infostream" value="${tests.verbose}"/>
|
||||||
|
<property name="tests.heapsize" value="512M"/>
|
||||||
|
|
||||||
<property name="javac.deprecation" value="off"/>
|
<property name="javac.deprecation" value="off"/>
|
||||||
<property name="javac.debug" value="on"/>
|
<property name="javac.debug" value="on"/>
|
||||||
|
@ -110,6 +113,9 @@
|
||||||
<property name="javac.includeAntRuntime" value="${run.clover}"/>
|
<property name="javac.includeAntRuntime" value="${run.clover}"/>
|
||||||
|
|
||||||
<property name="javadoc.link" value="http://download.oracle.com/javase/6/docs/api/"/>
|
<property name="javadoc.link" value="http://download.oracle.com/javase/6/docs/api/"/>
|
||||||
|
<property name="javadoc.link.junit" value="http://junit.sourceforge.net/javadoc/"/>
|
||||||
|
<property name="javadoc.packagelist.dir" value="${common.dir}/src/tools/javadoc"/>
|
||||||
|
<available file="${javadoc.packagelist.dir}/java6/package-list" property="javadoc.java6.packagelist.exists"/>
|
||||||
<property name="javadoc.access" value="protected"/>
|
<property name="javadoc.access" value="protected"/>
|
||||||
<property name="javadoc.charset" value="utf-8"/>
|
<property name="javadoc.charset" value="utf-8"/>
|
||||||
<property name="javadoc.dir" value="${common.dir}/build/docs/api"/>
|
<property name="javadoc.dir" value="${common.dir}/build/docs/api"/>
|
||||||
|
@ -525,6 +531,8 @@
|
||||||
<attribute name="threadNum" default="1"/>
|
<attribute name="threadNum" default="1"/>
|
||||||
<attribute name="threadTotal" default="1"/>
|
<attribute name="threadTotal" default="1"/>
|
||||||
<attribute name="tests.nightly" default="${tests.nightly}"/>
|
<attribute name="tests.nightly" default="${tests.nightly}"/>
|
||||||
|
<attribute name="tests.weekly" default="${tests.weekly}"/>
|
||||||
|
<attribute name="tests.slow" default="${tests.slow}"/>
|
||||||
<attribute name="tests.multiplier" default="${tests.multiplier}"/>
|
<attribute name="tests.multiplier" default="${tests.multiplier}"/>
|
||||||
|
|
||||||
<sequential>
|
<sequential>
|
||||||
|
@ -539,7 +547,7 @@
|
||||||
This is very loud and obnoxious. abuse touch instead for a "quiet" mkdir
|
This is very loud and obnoxious. abuse touch instead for a "quiet" mkdir
|
||||||
-->
|
-->
|
||||||
<touch file="@{tempDir}/@{threadNum}/quiet.ant" verbose="false" mkdirs="true"/>
|
<touch file="@{tempDir}/@{threadNum}/quiet.ant" verbose="false" mkdirs="true"/>
|
||||||
<junit printsummary="off" haltonfailure="no" maxmemory="512M" tempdir="@{tempDir}/@{threadNum}"
|
<junit printsummary="off" haltonfailure="no" maxmemory="${tests.heapsize}" tempdir="@{tempDir}/@{threadNum}"
|
||||||
errorProperty="tests.failed" failureProperty="tests.failed" forkmode="perBatch" dir="@{tempDir}/@{threadNum}">
|
errorProperty="tests.failed" failureProperty="tests.failed" forkmode="perBatch" dir="@{tempDir}/@{threadNum}">
|
||||||
<classpath refid="@{junit.classpath}"/>
|
<classpath refid="@{junit.classpath}"/>
|
||||||
<assertions>
|
<assertions>
|
||||||
|
@ -581,6 +589,10 @@
|
||||||
<sysproperty key="java.util.logging.config.file" value="${tests.loggingfile}"/>
|
<sysproperty key="java.util.logging.config.file" value="${tests.loggingfile}"/>
|
||||||
<!-- set whether or not nightly tests should run -->
|
<!-- set whether or not nightly tests should run -->
|
||||||
<sysproperty key="tests.nightly" value="@{tests.nightly}"/>
|
<sysproperty key="tests.nightly" value="@{tests.nightly}"/>
|
||||||
|
<!-- set whether or not weekly tests should run -->
|
||||||
|
<sysproperty key="tests.weekly" value="@{tests.weekly}"/>
|
||||||
|
<!-- set whether or not slow tests should run -->
|
||||||
|
<sysproperty key="tests.slow" value="@{tests.slow}"/>
|
||||||
|
|
||||||
<!-- set whether tests framework should not require java assertions enabled -->
|
<!-- set whether tests framework should not require java assertions enabled -->
|
||||||
<sysproperty key="tests.asserts.gracious" value="${tests.asserts.gracious}"/>
|
<sysproperty key="tests.asserts.gracious" value="${tests.asserts.gracious}"/>
|
||||||
|
@ -843,6 +855,7 @@
|
||||||
<attribute name="title" default="${Name} ${version} API"/>
|
<attribute name="title" default="${Name} ${version} API"/>
|
||||||
<attribute name="overview" default="${src.dir}/overview.html"/>
|
<attribute name="overview" default="${src.dir}/overview.html"/>
|
||||||
<sequential>
|
<sequential>
|
||||||
|
<antcall target="download-java6-javadoc-packagelist"/>
|
||||||
<copy todir="@{destdir}" file="${prettify.dir}/prettify.js" overwrite="false" />
|
<copy todir="@{destdir}" file="${prettify.dir}/prettify.js" overwrite="false" />
|
||||||
<copy todir="@{destdir}" file="${prettify.dir}/prettify.css" overwrite="false" />
|
<copy todir="@{destdir}" file="${prettify.dir}/prettify.css" overwrite="false" />
|
||||||
<record name="@{destdir}/log_javadoc.txt" action="start" append="no"/>
|
<record name="@{destdir}/log_javadoc.txt" action="start" append="no"/>
|
||||||
|
@ -859,7 +872,6 @@
|
||||||
use="true"
|
use="true"
|
||||||
failonerror="true"
|
failonerror="true"
|
||||||
source="${ant.java.version}"
|
source="${ant.java.version}"
|
||||||
link="${javadoc.link}"
|
|
||||||
windowtitle="${Name} ${version} API"
|
windowtitle="${Name} ${version} API"
|
||||||
doctitle="@{title}"
|
doctitle="@{title}"
|
||||||
stylesheetfile="${prettify.dir}/stylesheet+prettify.css"
|
stylesheetfile="${prettify.dir}/stylesheet+prettify.css"
|
||||||
|
@ -870,6 +882,7 @@
|
||||||
<tag name="lucene.internal"
|
<tag name="lucene.internal"
|
||||||
description="NOTE: This API is for internal purposes only and might change in incompatible ways in the next release."/>
|
description="NOTE: This API is for internal purposes only and might change in incompatible ways in the next release."/>
|
||||||
<link offline="true" packagelistLoc="${javadoc.dir}"/>
|
<link offline="true" packagelistLoc="${javadoc.dir}"/>
|
||||||
|
<link offline="true" href="${javadoc.link}" packagelistLoc="${javadoc.packagelist.dir}/java6"/>
|
||||||
<header><![CDATA[
|
<header><![CDATA[
|
||||||
<script src="{@docRoot}/prettify.js" type="text/javascript"></script>
|
<script src="{@docRoot}/prettify.js" type="text/javascript"></script>
|
||||||
<script language="JavaScript">window.onload=function(){windowTitle();prettyPrint();}</script>
|
<script language="JavaScript">window.onload=function(){windowTitle();prettyPrint();}</script>
|
||||||
|
@ -920,6 +933,12 @@
|
||||||
</sequential>
|
</sequential>
|
||||||
</macrodef>
|
</macrodef>
|
||||||
|
|
||||||
|
<target name="download-java6-javadoc-packagelist" unless="javadoc.java6.packagelist.exists">
|
||||||
|
<mkdir dir="${javadoc.packagelist.dir}/java6"/>
|
||||||
|
<get src="${javadoc.link}/package-list"
|
||||||
|
dest="${javadoc.packagelist.dir}/java6/package-list" ignoreerrors="true"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
<!-- VALIDATION work -->
|
<!-- VALIDATION work -->
|
||||||
|
|
||||||
<target name="check-legal-lucene" depends="compile-tools">
|
<target name="check-legal-lucene" depends="compile-tools">
|
||||||
|
@ -1028,6 +1047,7 @@
|
||||||
|
|
||||||
<fileset dir="@{artifacts.dir}">
|
<fileset dir="@{artifacts.dir}">
|
||||||
<include name="**/*.jar"/>
|
<include name="**/*.jar"/>
|
||||||
|
<include name="**/*.war"/>
|
||||||
<include name="**/*.zip"/>
|
<include name="**/*.zip"/>
|
||||||
<include name="**/*.tgz"/>
|
<include name="**/*.tgz"/>
|
||||||
<include name="**/*.pom"/>
|
<include name="**/*.pom"/>
|
||||||
|
|
|
@ -83,8 +83,6 @@ Bug Fixes
|
||||||
|
|
||||||
======================= Lucene 3.6.0 ================
|
======================= Lucene 3.6.0 ================
|
||||||
|
|
||||||
(No Changes)
|
|
||||||
|
|
||||||
Bug Fixes
|
Bug Fixes
|
||||||
|
|
||||||
* LUCENE-3600: BlockJoinQuery now supports parent docs that have no
|
* LUCENE-3600: BlockJoinQuery now supports parent docs that have no
|
||||||
|
@ -217,7 +215,7 @@ New Features
|
||||||
added support for simple numeric queries, such as <age:4>, in contrib
|
added support for simple numeric queries, such as <age:4>, in contrib
|
||||||
query parser (Vinicius Barros via Uwe Schindler)
|
query parser (Vinicius Barros via Uwe Schindler)
|
||||||
|
|
||||||
Changes in runtime behavior:
|
Changes in runtime behavior
|
||||||
|
|
||||||
* LUCENE-1768: StandardQueryConfigHandler now uses NumericFieldConfigListener
|
* LUCENE-1768: StandardQueryConfigHandler now uses NumericFieldConfigListener
|
||||||
to set a NumericConfig to its corresponding FieldConfig;
|
to set a NumericConfig to its corresponding FieldConfig;
|
||||||
|
|
|
@ -662,7 +662,7 @@ class DirectoryReader extends IndexReader implements Cloneable {
|
||||||
segmentInfos.setUserData(commitUserData);
|
segmentInfos.setUserData(commitUserData);
|
||||||
// Default deleter (for backwards compatibility) is
|
// Default deleter (for backwards compatibility) is
|
||||||
// KeepOnlyLastCommitDeleter:
|
// KeepOnlyLastCommitDeleter:
|
||||||
// nocommit: Decide what to do with InfoStream here? Use default or keep NO_OUTPUT?
|
// TODO: Decide what to do with InfoStream here? Use default or keep NO_OUTPUT?
|
||||||
IndexFileDeleter deleter = new IndexFileDeleter(directory,
|
IndexFileDeleter deleter = new IndexFileDeleter(directory,
|
||||||
deletionPolicy == null ? new KeepOnlyLastCommitDeletionPolicy() : deletionPolicy,
|
deletionPolicy == null ? new KeepOnlyLastCommitDeletionPolicy() : deletionPolicy,
|
||||||
segmentInfos, InfoStream.NO_OUTPUT, null);
|
segmentInfos, InfoStream.NO_OUTPUT, null);
|
||||||
|
|
|
@ -148,8 +148,12 @@ public abstract class LuceneTestCase extends Assert {
|
||||||
public static final int TEST_ITER_MIN = Integer.parseInt(System.getProperty("tests.iter.min", Integer.toString(TEST_ITER)));
|
public static final int TEST_ITER_MIN = Integer.parseInt(System.getProperty("tests.iter.min", Integer.toString(TEST_ITER)));
|
||||||
/** Get the random seed for tests */
|
/** Get the random seed for tests */
|
||||||
public static final String TEST_SEED = System.getProperty("tests.seed", "random");
|
public static final String TEST_SEED = System.getProperty("tests.seed", "random");
|
||||||
/** whether or not nightly tests should run */
|
/** whether or not @nightly tests should run */
|
||||||
public static final boolean TEST_NIGHTLY = Boolean.parseBoolean(System.getProperty("tests.nightly", "false"));
|
public static final boolean TEST_NIGHTLY = Boolean.parseBoolean(System.getProperty("tests.nightly", "false"));
|
||||||
|
/** whether or not @weekly tests should run */
|
||||||
|
public static final boolean TEST_WEEKLY = Boolean.parseBoolean(System.getProperty("tests.weekly", "false"));
|
||||||
|
/** whether or not @slow tests should run */
|
||||||
|
public static final boolean TEST_SLOW = Boolean.parseBoolean(System.getProperty("tests.slow", "false"));
|
||||||
/** the line file used by LineFileDocs */
|
/** the line file used by LineFileDocs */
|
||||||
public static final String TEST_LINE_DOCS_FILE = System.getProperty("tests.linedocsfile", "europarl.lines.txt.gz");
|
public static final String TEST_LINE_DOCS_FILE = System.getProperty("tests.linedocsfile", "europarl.lines.txt.gz");
|
||||||
/** whether or not to clean threads between test invocations: "false", "perMethod", "perClass" */
|
/** whether or not to clean threads between test invocations: "false", "perMethod", "perClass" */
|
||||||
|
@ -1349,6 +1353,22 @@ public abstract class LuceneTestCase extends Assert {
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
public @interface Nightly {}
|
public @interface Nightly {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Annotation for tests that should only be run during weekly builds
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Inherited
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface Weekly{}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Annotation for tests that are slow and should be run only when specifically asked to run
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Inherited
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface Slow{}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Annotation for test classes that should only use codecs that are not memory expensive (avoid SimpleText, MemoryCodec).
|
* Annotation for test classes that should only use codecs that are not memory expensive (avoid SimpleText, MemoryCodec).
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -17,6 +17,7 @@ package org.apache.lucene.util;
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.lang.annotation.Annotation;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -26,6 +27,8 @@ import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import org.apache.lucene.util.LuceneTestCase.Nightly;
|
import org.apache.lucene.util.LuceneTestCase.Nightly;
|
||||||
|
import org.apache.lucene.util.LuceneTestCase.Weekly;
|
||||||
|
import org.apache.lucene.util.LuceneTestCase.Slow;
|
||||||
import org.apache.lucene.util.LuceneTestCase.UseNoMemoryExpensiveCodec;
|
import org.apache.lucene.util.LuceneTestCase.UseNoMemoryExpensiveCodec;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -45,8 +48,11 @@ import static org.apache.lucene.util.LuceneTestCase.TEST_ITER_MIN;
|
||||||
import static org.apache.lucene.util.LuceneTestCase.TEST_METHOD;
|
import static org.apache.lucene.util.LuceneTestCase.TEST_METHOD;
|
||||||
import static org.apache.lucene.util.LuceneTestCase.TEST_SEED;
|
import static org.apache.lucene.util.LuceneTestCase.TEST_SEED;
|
||||||
import static org.apache.lucene.util.LuceneTestCase.TEST_NIGHTLY;
|
import static org.apache.lucene.util.LuceneTestCase.TEST_NIGHTLY;
|
||||||
|
import static org.apache.lucene.util.LuceneTestCase.TEST_WEEKLY;
|
||||||
|
import static org.apache.lucene.util.LuceneTestCase.TEST_SLOW;
|
||||||
import static org.apache.lucene.util.LuceneTestCase.VERBOSE;
|
import static org.apache.lucene.util.LuceneTestCase.VERBOSE;
|
||||||
|
|
||||||
|
|
||||||
/** optionally filters the tests to be run by TEST_METHOD */
|
/** optionally filters the tests to be run by TEST_METHOD */
|
||||||
public class LuceneTestCaseRunner extends BlockJUnit4ClassRunner {
|
public class LuceneTestCaseRunner extends BlockJUnit4ClassRunner {
|
||||||
private List<FrameworkMethod> testMethods;
|
private List<FrameworkMethod> testMethods;
|
||||||
|
@ -89,27 +95,13 @@ public class LuceneTestCaseRunner extends BlockJUnit4ClassRunner {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TEST_NIGHTLY == false) {
|
if (TEST_NIGHTLY == false) {
|
||||||
if (getTestClass().getJavaClass().isAnnotationPresent(Nightly.class)) {
|
removeAnnotatedTests(Nightly.class, "@nightly");
|
||||||
/* the test class is annotated with nightly, remove all methods */
|
|
||||||
String className = getTestClass().getJavaClass().getSimpleName();
|
|
||||||
System.err.println("NOTE: Ignoring nightly-only test class '" + className + "'");
|
|
||||||
testMethods.clear();
|
|
||||||
} else {
|
|
||||||
/* remove all nightly-only methods */
|
|
||||||
for (int i = 0; i < testMethods.size(); i++) {
|
|
||||||
final FrameworkMethod m = testMethods.get(i);
|
|
||||||
if (m.getAnnotation(Nightly.class) != null) {
|
|
||||||
System.err.println("NOTE: Ignoring nightly-only test method '" + m.getName() + "'");
|
|
||||||
testMethods.remove(i--);
|
|
||||||
}
|
}
|
||||||
|
if (TEST_WEEKLY == false) {
|
||||||
|
removeAnnotatedTests(Weekly.class, "@weekly");
|
||||||
}
|
}
|
||||||
}
|
if (TEST_SLOW == false) {
|
||||||
/* dodge a possible "no-runnable methods" exception by adding a fake ignored test */
|
removeAnnotatedTests(Slow.class, "@slow");
|
||||||
if (testMethods.isEmpty()) {
|
|
||||||
try {
|
|
||||||
testMethods.add(new FrameworkMethod(LuceneTestCase.class.getMethod("alwaysIgnoredTestMethod")));
|
|
||||||
} catch (Exception e) { throw new RuntimeException(e); }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// sort the test methods first before shuffling them, so that the shuffle is consistent
|
// sort the test methods first before shuffling them, so that the shuffle is consistent
|
||||||
// across different implementations that might order the methods different originally.
|
// across different implementations that might order the methods different originally.
|
||||||
|
@ -123,6 +115,30 @@ public class LuceneTestCaseRunner extends BlockJUnit4ClassRunner {
|
||||||
return testMethods;
|
return testMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void removeAnnotatedTests(Class<? extends Annotation> annotation, String userFriendlyName) {
|
||||||
|
if (getTestClass().getJavaClass().isAnnotationPresent(annotation)) {
|
||||||
|
/* the test class is annotated with the annotation, remove all methods */
|
||||||
|
String className = getTestClass().getJavaClass().getSimpleName();
|
||||||
|
System.err.println("NOTE: Ignoring " + userFriendlyName + " test class '" + className + "'");
|
||||||
|
testMethods.clear();
|
||||||
|
} else {
|
||||||
|
/* remove all methods with the annotation*/
|
||||||
|
for (int i = 0; i < testMethods.size(); i++) {
|
||||||
|
final FrameworkMethod m = testMethods.get(i);
|
||||||
|
if (m.getAnnotation(annotation) != null) {
|
||||||
|
System.err.println("NOTE: Ignoring " + userFriendlyName + " test method '" + m.getName() + "'");
|
||||||
|
testMethods.remove(i--);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* dodge a possible "no-runnable methods" exception by adding a fake ignored test */
|
||||||
|
if (testMethods.isEmpty()) {
|
||||||
|
try {
|
||||||
|
testMethods.add(new FrameworkMethod(LuceneTestCase.class.getMethod("alwaysIgnoredTestMethod")));
|
||||||
|
} catch (Exception e) { throw new RuntimeException(e); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void runChild(FrameworkMethod arg0, RunNotifier arg1) {
|
protected void runChild(FrameworkMethod arg0, RunNotifier arg1) {
|
||||||
if (VERBOSE) {
|
if (VERBOSE) {
|
||||||
|
|
|
@ -41,11 +41,11 @@ import org.junit.Ignore;
|
||||||
// disk (but, should run successfully). Best to run w/
|
// disk (but, should run successfully). Best to run w/
|
||||||
// -Dtests.codec=Standard, and w/ plenty of RAM, eg:
|
// -Dtests.codec=Standard, and w/ plenty of RAM, eg:
|
||||||
//
|
//
|
||||||
// ant compile-test
|
// ant test -Dtest.slow=true -Dtests.heapsize=8g
|
||||||
//
|
//
|
||||||
// java -server -Xmx8g -d64 -cp .:lib/junit-4.7.jar:./build/classes/test:./build/classes/test-framework:./build/classes/java -Dlucene.version=4.0-dev -Dtests.directory=MMapDirectory -DtempDir=build -ea org.junit.runner.JUnitCore org.apache.lucene.index.Test2BTerms
|
// java -server -Xmx8g -d64 -cp .:lib/junit-4.7.jar:./build/classes/test:./build/classes/test-framework:./build/classes/java -Dlucene.version=4.0-dev -Dtests.directory=MMapDirectory -DtempDir=build -ea org.junit.runner.JUnitCore org.apache.lucene.index.Test2BTerms
|
||||||
//
|
//
|
||||||
|
@LuceneTestCase.UseNoMemoryExpensiveCodec
|
||||||
public class Test2BTerms extends LuceneTestCase {
|
public class Test2BTerms extends LuceneTestCase {
|
||||||
|
|
||||||
private final static int TOKEN_LEN = 10;
|
private final static int TOKEN_LEN = 10;
|
||||||
|
@ -140,13 +140,13 @@ public class Test2BTerms extends LuceneTestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("Takes ~4 hours to run on a fast machine!! And requires that you don't use PreFlex codec.")
|
@Slow
|
||||||
public void test2BTerms() throws IOException {
|
public void test2BTerms() throws IOException {
|
||||||
|
|
||||||
if ("Lucene3x".equals(Codec.getDefault().getName())) {
|
if ("Lucene3x".equals(Codec.getDefault().getName())) {
|
||||||
throw new RuntimeException("thist test cannot run with PreFlex codec");
|
throw new RuntimeException("this test cannot run with PreFlex codec");
|
||||||
}
|
}
|
||||||
|
System.out.println("Starting Test2B");
|
||||||
final long TERM_COUNT = ((long) Integer.MAX_VALUE) + 100000000;
|
final long TERM_COUNT = ((long) Integer.MAX_VALUE) + 100000000;
|
||||||
|
|
||||||
final int TERMS_PER_DOC = _TestUtil.nextInt(random, 100000, 1000000);
|
final int TERMS_PER_DOC = _TestUtil.nextInt(random, 100000, 1000000);
|
||||||
|
|
|
@ -36,6 +36,7 @@ public class FloatMagicTest extends LuceneTestCase {
|
||||||
for (int i = 0; i < floats.size(); i++) {
|
for (int i = 0; i < floats.size(); i++) {
|
||||||
int4[i] = FloatMagic.toSortable(floats.get(i)) & 0xffffffffL;
|
int4[i] = FloatMagic.toSortable(floats.get(i)) & 0xffffffffL;
|
||||||
|
|
||||||
|
/*
|
||||||
System.out.println(
|
System.out.println(
|
||||||
String.format("raw %8s sortable %8s %8s numutils %8s %s",
|
String.format("raw %8s sortable %8s %8s numutils %8s %s",
|
||||||
Integer.toHexString(Float.floatToRawIntBits(floats.get(i))),
|
Integer.toHexString(Float.floatToRawIntBits(floats.get(i))),
|
||||||
|
@ -43,6 +44,7 @@ public class FloatMagicTest extends LuceneTestCase {
|
||||||
Integer.toHexString(FloatMagic.unsignedOrderedToFloatBits(FloatMagic.toSortable(floats.get(i)))),
|
Integer.toHexString(FloatMagic.unsignedOrderedToFloatBits(FloatMagic.toSortable(floats.get(i)))),
|
||||||
Integer.toHexString(NumericUtils.floatToSortableInt(floats.get(i))),
|
Integer.toHexString(NumericUtils.floatToSortableInt(floats.get(i))),
|
||||||
floats.get(i)));
|
floats.get(i)));
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort and compare. Should be identical order.
|
// Sort and compare. Should be identical order.
|
||||||
|
@ -52,10 +54,12 @@ public class FloatMagicTest extends LuceneTestCase {
|
||||||
backFromFixed.add(FloatMagic.fromSortable((int) int4[i]));
|
backFromFixed.add(FloatMagic.fromSortable((int) int4[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
for (int i = 0; i < int4.length; i++) {
|
for (int i = 0; i < int4.length; i++) {
|
||||||
System.out.println(
|
System.out.println(
|
||||||
floats.get(i) + " " + FloatMagic.fromSortable((int) int4[i]));
|
floats.get(i) + " " + FloatMagic.fromSortable((int) int4[i]));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
assertEquals(floats, backFromFixed);
|
assertEquals(floats, backFromFixed);
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,8 +87,8 @@ public class TestSort extends LuceneTestCase {
|
||||||
|
|
||||||
File sorted = new File(tempDir, "sorted");
|
File sorted = new File(tempDir, "sorted");
|
||||||
SortInfo sortInfo = sort.sort(unsorted, sorted);
|
SortInfo sortInfo = sort.sort(unsorted, sorted);
|
||||||
System.out.println("Input size [MB]: " + unsorted.length() / (1024 * 1024));
|
//System.out.println("Input size [MB]: " + unsorted.length() / (1024 * 1024));
|
||||||
System.out.println(sortInfo);
|
//System.out.println(sortInfo);
|
||||||
|
|
||||||
assertFilesIdentical(golden, sorted);
|
assertFilesIdentical(golden, sorted);
|
||||||
return sortInfo;
|
return sortInfo;
|
||||||
|
|
|
@ -305,6 +305,10 @@
|
||||||
value="${package.dir}/${fullnamever}-src.tgz"/>
|
value="${package.dir}/${fullnamever}-src.tgz"/>
|
||||||
<delete file="${source.package.file}" failonerror="false" />
|
<delete file="${source.package.file}" failonerror="false" />
|
||||||
<svn-export-source source.dir=".."/>
|
<svn-export-source source.dir=".."/>
|
||||||
|
|
||||||
|
<!-- Exclude javadoc package-list files under licenses incompatible with the ASL -->
|
||||||
|
<delete dir="${svn.export.dir}/lucene/src/tools/javadoc/java6"/>
|
||||||
|
|
||||||
<tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
|
<tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
|
||||||
<tarfileset dir="${svn.export.dir}"
|
<tarfileset dir="${svn.export.dir}"
|
||||||
prefix="${fullnamever}"
|
prefix="${fullnamever}"
|
||||||
|
@ -431,7 +435,8 @@
|
||||||
</copy>
|
</copy>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="javadocs-all" depends="prep-lucene-jars,javadocs-dep"
|
<target name="javadocs-all"
|
||||||
|
depends="prep-lucene-jars,javadocs-dep,lucene-javadocs-all,define-lucene-javadoc-url"
|
||||||
description="Generate javadoc for core, java client and contrib">
|
description="Generate javadoc for core, java client and contrib">
|
||||||
<sequential>
|
<sequential>
|
||||||
<mkdir dir="${dest}/docs/api"/>
|
<mkdir dir="${dest}/docs/api"/>
|
||||||
|
@ -456,6 +461,8 @@
|
||||||
<invoke-javadoc destdir="${dest}/docs/api"
|
<invoke-javadoc destdir="${dest}/docs/api"
|
||||||
overview="core/src/java/overview.html">
|
overview="core/src/java/overview.html">
|
||||||
<sources>
|
<sources>
|
||||||
|
<link offline="true" href="${lucene.javadoc.url}"
|
||||||
|
packagelistloc="${common.dir}/build/docs/api/all/"/>
|
||||||
<packageset dir="core/src/java" />
|
<packageset dir="core/src/java" />
|
||||||
<packageset dir="solrj/src/java" />
|
<packageset dir="solrj/src/java" />
|
||||||
<packageset dir="contrib/analysis-extras/src/java"/>
|
<packageset dir="contrib/analysis-extras/src/java"/>
|
||||||
|
|
|
@ -25,6 +25,9 @@
|
||||||
|
|
||||||
<property name="Name" value="Solr" />
|
<property name="Name" value="Solr" />
|
||||||
<property name="version" value="4.0-SNAPSHOT"/>
|
<property name="version" value="4.0-SNAPSHOT"/>
|
||||||
|
<condition property="version.contains.SNAPSHOT">
|
||||||
|
<contains casesensitive="true" string="${version}" substring="-SNAPSHOT"/>
|
||||||
|
</condition>
|
||||||
<property name="fullname" value="apache-${ant.project.name}"/>
|
<property name="fullname" value="apache-${ant.project.name}"/>
|
||||||
<property name="fullnamever" value="${fullname}-${version}"/>
|
<property name="fullnamever" value="${fullname}-${version}"/>
|
||||||
<property name="final.name" value="${fullnamever}"/>
|
<property name="final.name" value="${fullnamever}"/>
|
||||||
|
@ -212,13 +215,19 @@
|
||||||
<copy file="${build.dir}/${fullnamever}.jar" todir="${dist}"/>
|
<copy file="${build.dir}/${fullnamever}.jar" todir="${dist}"/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="javadocs" depends="compile-core">
|
<target name="lucene-javadocs-all">
|
||||||
|
<ant dir="${common.dir}" target="javadocs-all" inheritall="false"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="javadocs" depends="compile-core,lucene-javadocs-all,define-lucene-javadoc-url">
|
||||||
<sequential>
|
<sequential>
|
||||||
<mkdir dir="${javadoc.dir}"/>
|
<mkdir dir="${javadoc.dir}"/>
|
||||||
<mkdir dir="${dest}/META-INF/"/>
|
<mkdir dir="${dest}/META-INF/"/>
|
||||||
<invoke-javadoc destdir="${javadoc.dir}"
|
<invoke-javadoc destdir="${javadoc.dir}"
|
||||||
title="${Name} ${version} ${name} API">
|
title="${Name} ${version} ${name} API">
|
||||||
<sources>
|
<sources>
|
||||||
|
<link offline="true" href="${lucene.javadoc.url}"
|
||||||
|
packagelistloc="${common.dir}/build/docs/api/all/"/>
|
||||||
<link href=""/>
|
<link href=""/>
|
||||||
<packageset dir="${src.dir}"/>
|
<packageset dir="${src.dir}"/>
|
||||||
</sources>
|
</sources>
|
||||||
|
@ -232,6 +241,26 @@
|
||||||
</sequential>
|
</sequential>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<target name="define-lucene-javadoc-url"
|
||||||
|
depends="define-lucene-javadoc-url-SNAPSHOT,define-lucene-javadoc-url-release"/>
|
||||||
|
|
||||||
|
<target name="define-lucene-javadoc-url-SNAPSHOT" if="version.contains.SNAPSHOT">
|
||||||
|
<property name="lucene.javadoc.url"
|
||||||
|
value="https://builds.apache.org/job/Lucene-3.x/javadoc/all/"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="define-lucene-javadoc-url-release" unless="version.contains.SNAPSHOT">
|
||||||
|
<loadproperties>
|
||||||
|
<propertyresource name="version"/>
|
||||||
|
<filterchain>
|
||||||
|
<replaceregex pattern="[.]" replace="_" flags="g"/>
|
||||||
|
<prefixlines prefix="underscore.version="/>
|
||||||
|
</filterchain>
|
||||||
|
</loadproperties>
|
||||||
|
<property name="lucene.javadoc.url"
|
||||||
|
value="http://lucene.apache.org/java/${underscore.version}/api/all/"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
<target name="jar-src" depends="init">
|
<target name="jar-src" depends="init">
|
||||||
<jarify basedir="${src.dir}"
|
<jarify basedir="${src.dir}"
|
||||||
destfile="${build.dir}/${final.name}-src.jar"
|
destfile="${build.dir}/${final.name}-src.jar"
|
||||||
|
|
|
@ -39,11 +39,37 @@
|
||||||
</compile>
|
</compile>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="javadocs" depends="common-solr.javadocs">
|
<!-- Override common-solr.javadocs to include a JUnit javadoc link -->
|
||||||
|
<!-- and to copy the built javadocs to ${dest}/docs/api/test-framework -->
|
||||||
|
<target name="javadocs"
|
||||||
|
depends="compile-core,lucene-javadocs-all,define-lucene-javadoc-url">
|
||||||
|
<sequential>
|
||||||
|
<mkdir dir="${javadoc.dir}"/>
|
||||||
|
<mkdir dir="${dest}/META-INF/"/>
|
||||||
|
<invoke-javadoc destdir="${javadoc.dir}"
|
||||||
|
title="${Name} ${version} ${name} API">
|
||||||
|
<sources>
|
||||||
|
<link offline="true" href="${lucene.javadoc.url}"
|
||||||
|
packagelistloc="${common.dir}/build/docs/api/all/"/>
|
||||||
|
<link offline="true" href="${lucene-javadoc-url}"
|
||||||
|
packagelistloc="${common.dir}/build/docs/api/all/"/>
|
||||||
|
<link offline="true" href="${javadoc.link.junit}"
|
||||||
|
packagelistLoc="${javadoc.packagelist.dir}/junit"/>
|
||||||
|
<link href=""/>
|
||||||
|
<packageset dir="${src.dir}"/>
|
||||||
|
</sources>
|
||||||
|
</invoke-javadoc>
|
||||||
|
<jarify basedir="${javadoc.dir}"
|
||||||
|
destfile="${build.dir}/${final.name}-javadoc.jar"
|
||||||
|
title="Apache Solr Search Server: ${ant.project.name}"
|
||||||
|
metainf.source.dir="${common-solr.dir}"
|
||||||
|
implementation.title="org.apache.solr"
|
||||||
|
spec.version="${solr.spec.version}"/>
|
||||||
<mkdir dir="${dest}/docs/api/test-framework"/>
|
<mkdir dir="${dest}/docs/api/test-framework"/>
|
||||||
<copy todir="${dest}/docs/api/test-framework">
|
<copy todir="${dest}/docs/api/test-framework">
|
||||||
<fileset dir="${javadoc.dir}"/>
|
<fileset dir="${javadoc.dir}"/>
|
||||||
</copy>
|
</copy>
|
||||||
|
</sequential>
|
||||||
</target>
|
</target>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue