On Fri, 18 May 2007, Chris Hostetter wrote:

Even if we get the neccessary native lib installed on the lucene zone for
nightly builds, that doesn't really help in the case of official releases
where a release manager builds locally -- assuming the tests are fine
because the nightly buidls are fine isn't relaly a good policy, since
releases may be on a patch branch with no nightly build.

From a unit testing purist standpoint, the unit tests for contrib/db/bdb
wouldn't require the native lib at all -- they would use a mock API to
simyulate the real API so that there were no dependencies (native or
otherwise) ... other "integration tests" could be optional and require the
ral native lib to run successfully.

I have no idea how hard it would be to mock out the BDB API, but
personally I'd settle for a clean way to gracefully skip the
contrib/db/bdb tests if the lib isn't available  (much the way the build
system skips contrib/gdata-server if java 1.5 is not available).

I don't really know enough about JNI however to know how to do this ...
the best idea i have is to try and catch these exceptions in the test --
but if we just ignore them then the test stats would give the false
impression that they passed -- what we really need is a way for ant to
know that the native lib isn't available, and skip the tests in that case.

If the Runtime.loadLibrary() API can load the bdb native library, the tests should be run, else they should be skipped with a warning. [1]

i suppose we could just define bdb test target to only run if some new
"test.contrib.db.bdb" property is set -- and if not, echo a big fat
wraning anytime anyone attempts to run the test.

Yep.

Andi..

[1] 
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#loadLibrary(java.lang.String)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to