You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Scott Schneider <Sc...@symantec.com> on 2013/12/18 02:28:08 UTC

Running Lucene tests on a custom Directory subclass

Hello,

I'm trying to run Lucene's unit tests on Lucene Transform's TransformedDirectory.  I get an AbstractMethodError on createOutput(), but I'm quite sure that method is defined.  Here are a few lines from the error:

test:
...
   [junit4] Suite: org.apache.lucene.index.TestStressAdvance
   [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestStressAdvance -Dtests.method=testStressAdvance -Dtests.seed=7285A7FB616F8E90 -Dtests.slow=true -Dtests.directory=org.apache.lucene.store.transform.TransformedDirectoryLuceneTestWrapper -Dtests.locale=sr_BA -Dtests.timezone=Eire -Dtests.file.encoding=US-ASCII
   [junit4] ERROR   0.44s J3 | TestStressAdvance.testStressAdvance <<<
   [junit4]    > Throwable #1: java.lang.AbstractMethodError: org.apache.lucene.store.Directory.createOutput(Ljava/lang/String;Lorg/apache/lucene/store/IOContext;)Lorg/apache/lucene/store/IndexOutput;
   [junit4]    >       at __randomizedtesting.SeedInfo.seed([7285A7FB616F8E90:E105EDB90E7666C2]:0)
   [junit4]    >       at org.apache.lucene.store.MockDirectoryWrapper.createOutput(MockDirectoryWrapper.java:495)
   [junit4]    >       at org.apache.lucene.store.TrackingDirectoryWrapper.createOutput(TrackingDirectoryWrapper.java:62)
...
   [junit4]    >       at org.apache.lucene.index.TestStressAdvance.testStressAdvance(TestStressAdvance.java:56)
   [junit4]    >       at java.lang.Thread.run(Thread.java:722)
   [junit4]   2> NOTE: test params are: codec=Lucene40, sim=DefaultSimilarity, locale=sr_BA, timezone=Eire
   [junit4]   2> NOTE: Windows 7 6.1 x86/Oracle Corporation 1.7.0_03 (32-bit)/cpus=8,threads=1,free=5157752,total=16252928
   [junit4]   2> NOTE: All tests run in this JVM: [TestMathUtil, TestStressAdvance]
   [junit4] Completed on J3 in 0.47s, 1 test, 1 error <<< FAILURES!

To run the tests, I use "ant test -Dtests.directory=org.blahblah.TransformedDirectoryLuceneTestWrapper -lib blahblah".  I created the TransformedDirectoryLuceneTestWrapper class (as a subclass of TransformedDirectory) and gave it a 0-argument constructor.

Apologies if this was addressed elsewhere.  In googling for an answer, the term "Directory" is basically invisible.  I found a page on running Lucene's tests on a custom codec and approximated those steps.

Scott


RE: Running Lucene tests on a custom Directory subclass

Posted by Scott Schneider <Sc...@symantec.com>.
Never mind... the problem was that I compiled my jar against Lucene 3.3, but tried running against Lucene 4.4.  It works when I also run against 3.3.  (Or, at least, I get test failures that make sense!)

Scott


> -----Original Message-----
> From: Scott Schneider [mailto:Scott_Schneider@symantec.com]
> Sent: Tuesday, December 17, 2013 5:28 PM
> To: java-user@lucene.apache.org
> Subject: Running Lucene tests on a custom Directory subclass
> 
> Hello,
> 
> I'm trying to run Lucene's unit tests on Lucene Transform's
> TransformedDirectory.  I get an AbstractMethodError on createOutput(),
> but I'm quite sure that method is defined.  Here are a few lines from
> the error:
> 
> test:
> ...
>    [junit4] Suite: org.apache.lucene.index.TestStressAdvance
>    [junit4]   2> NOTE: reproduce with: ant test  -
> Dtestcase=TestStressAdvance -Dtests.method=testStressAdvance -
> Dtests.seed=7285A7FB616F8E90 -Dtests.slow=true -
> Dtests.directory=org.apache.lucene.store.transform.TransformedDirectory
> LuceneTestWrapper -Dtests.locale=sr_BA -Dtests.timezone=Eire -
> Dtests.file.encoding=US-ASCII
>    [junit4] ERROR   0.44s J3 | TestStressAdvance.testStressAdvance <<<
>    [junit4]    > Throwable #1: java.lang.AbstractMethodError:
> org.apache.lucene.store.Directory.createOutput(Ljava/lang/String;Lorg/a
> pache/lucene/store/IOContext;)Lorg/apache/lucene/store/IndexOutput;
>    [junit4]    >       at
> __randomizedtesting.SeedInfo.seed([7285A7FB616F8E90:E105EDB90E7666C2]:0
> )
>    [junit4]    >       at
> org.apache.lucene.store.MockDirectoryWrapper.createOutput(MockDirectory
> Wrapper.java:495)
>    [junit4]    >       at
> org.apache.lucene.store.TrackingDirectoryWrapper.createOutput(TrackingD
> irectoryWrapper.java:62)
> ...
>    [junit4]    >       at
> org.apache.lucene.index.TestStressAdvance.testStressAdvance(TestStressA
> dvance.java:56)
>    [junit4]    >       at java.lang.Thread.run(Thread.java:722)
>    [junit4]   2> NOTE: test params are: codec=Lucene40,
> sim=DefaultSimilarity, locale=sr_BA, timezone=Eire
>    [junit4]   2> NOTE: Windows 7 6.1 x86/Oracle Corporation 1.7.0_03
> (32-bit)/cpus=8,threads=1,free=5157752,total=16252928
>    [junit4]   2> NOTE: All tests run in this JVM: [TestMathUtil,
> TestStressAdvance]
>    [junit4] Completed on J3 in 0.47s, 1 test, 1 error <<< FAILURES!
> 
> To run the tests, I use "ant test -
> Dtests.directory=org.blahblah.TransformedDirectoryLuceneTestWrapper -
> lib blahblah".  I created the TransformedDirectoryLuceneTestWrapper
> class (as a subclass of TransformedDirectory) and gave it a 0-argument
> constructor.
> 
> 
> Apologies if this was addressed elsewhere.  In googling for an answer,
> the term "Directory" is basically invisible.  I found a page on running
> Lucene's tests on a custom codec and approximated those steps.
> 
> Scott


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org