You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2010/12/10 10:56:27 UTC
svn commit: r1044258 - in /lucene/dev/branches/branch_3x/lucene: ./
src/test/org/apache/lucene/index/TestNRTThreads.java
Author: mikemccand
Date: Fri Dec 10 09:56:26 2010
New Revision: 1044258
URL: http://svn.apache.org/viewvc?rev=1044258&view=rev
Log:
fix false test failure
Modified:
lucene/dev/branches/branch_3x/lucene/ (props changed)
lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
Modified: lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java?rev=1044258&r1=1044257&r2=1044258&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java Fri Dec 10 09:56:26 2010
@@ -45,6 +45,7 @@ import static org.junit.Assume.*;
// TODO
// - mix in optimize, addIndexes
+// - randomoly mix in non-congruent docs
public class TestNRTThreads extends LuceneTestCase {
@@ -207,71 +208,79 @@ public class TestNRTThreads extends Luce
smokeTestReader(r);
- final IndexSearcher s = new IndexSearcher(r);
+ if (r.numDocs() > 0) {
- // run search threads
- final long searchStopTime = System.currentTimeMillis() + 500;
- final Thread[] searchThreads = new Thread[NUM_SEARCH_THREADS];
- final AtomicInteger totHits = new AtomicInteger();
- for(int thread=0;thread<NUM_SEARCH_THREADS;thread++) {
- searchThreads[thread] = new Thread() {
- @Override
- public void run() {
- try {
- TermEnum termEnum = s.getIndexReader().terms(new Term("body", ""));
- int seenTermCount = 0;
- int shift;
- int trigger;
- if (totTermCount.get() == 0) {
- shift = 0;
- trigger = 1;
- } else {
- shift = random.nextInt(totTermCount.get()/10);
- trigger = totTermCount.get()/10;
- }
- while(System.currentTimeMillis() < searchStopTime) {
- Term term = termEnum.term();
- if (term == null) {
- totTermCount.set(seenTermCount);
- seenTermCount = 0;
- trigger = totTermCount.get()/10;
- //System.out.println("trigger " + trigger);
- shift = random.nextInt(totTermCount.get()/10);
- termEnum = s.getIndexReader().terms(new Term("body", ""));
- continue;
- }
- seenTermCount++;
- // search 10 terms
- if (trigger == 0) {
- trigger = 1;
- }
- if ((seenTermCount + shift) % trigger == 0) {
- //if (VERBOSE) {
- //System.out.println(Thread.currentThread().getName() + " now search body:" + term.utf8ToString());
- //}
- totHits.addAndGet(runQuery(s, new TermQuery(term)));
+ final IndexSearcher s = new IndexSearcher(r);
+
+ // run search threads
+ final long searchStopTime = System.currentTimeMillis() + 500;
+ final Thread[] searchThreads = new Thread[NUM_SEARCH_THREADS];
+ final AtomicInteger totHits = new AtomicInteger();
+ for(int thread=0;thread<NUM_SEARCH_THREADS;thread++) {
+ searchThreads[thread] = new Thread() {
+ @Override
+ public void run() {
+ try {
+ TermEnum termEnum = s.getIndexReader().terms(new Term("body", ""));
+ int seenTermCount = 0;
+ int shift;
+ int trigger;
+ if (totTermCount.get() == 0) {
+ shift = 0;
+ trigger = 1;
+ } else {
+ shift = random.nextInt(totTermCount.get()/10);
+ trigger = totTermCount.get()/10;
+ }
+ while(System.currentTimeMillis() < searchStopTime) {
+ Term term = termEnum.term();
+ if (term == null) {
+ if (seenTermCount == 0) {
+ break;
+ }
+ totTermCount.set(seenTermCount);
+ seenTermCount = 0;
+ trigger = totTermCount.get()/10;
+ //System.out.println("trigger " + trigger);
+ shift = random.nextInt(totTermCount.get()/10);
+ termEnum = s.getIndexReader().terms(new Term("body", ""));
+ continue;
+ }
+ seenTermCount++;
+ // search 10 terms
+ if (trigger == 0) {
+ trigger = 1;
+ }
+ if ((seenTermCount + shift) % trigger == 0) {
+ //if (VERBOSE) {
+ //System.out.println(Thread.currentThread().getName() + " now search body:" + term.utf8ToString());
+ //}
+ totHits.addAndGet(runQuery(s, new TermQuery(term)));
+ }
+ }
+ if (VERBOSE) {
+ System.out.println(Thread.currentThread().getName() + ": search done");
+ }
+ } catch (Throwable t) {
+ failed.set(true);
+ t.printStackTrace(System.out);
+ throw new RuntimeException(t);
}
}
- if (VERBOSE) {
- System.out.println(Thread.currentThread().getName() + ": search done");
- }
- } catch (Throwable t) {
- failed.set(true);
- t.printStackTrace(System.out);
- throw new RuntimeException(t);
- }
- }
- };
- searchThreads[thread].setDaemon(true);
- searchThreads[thread].start();
- }
+ };
+ searchThreads[thread].setDaemon(true);
+ searchThreads[thread].start();
+ }
- for(int thread=0;thread<NUM_SEARCH_THREADS;thread++) {
- searchThreads[thread].join();
- }
+ for(int thread=0;thread<NUM_SEARCH_THREADS;thread++) {
+ searchThreads[thread].join();
+ }
- if (VERBOSE) {
- System.out.println("TEST: DONE search: totHits=" + totHits);
+ if (VERBOSE) {
+ System.out.println("TEST: DONE search: totHits=" + totHits);
+ }
+ } else {
+ Thread.sleep(100);
}
}