Re: JavaHL jar file containing class files for unit tests

Jun Omae <[email protected]> Wed, 29 Jul 2026 11:32:31 +0900
Newsgroups gmane.comp.version-control.subversion.devel
Message-ID <[email protected]>
On 2026/07/28 23:58, Daniel Sahlberg wrote:
> Den mån 27 juli 2026 kl 00:09 skrev Jun Omae <[email protected] <mailto:[email protected]>>:
> 
>     > Is there a problem if we include the test classes?
> 
>     No direct issues have been found so far. However, static initializers within test classes are executed simply by loading the class.
> 
>     [[[
>     $ grep -r 'static *{' subversion/bindings/javahl
>     subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java:    static {
>     subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java:    static {
>     ]]]
> 
> 
> Thank you!
> 
> I think I got it working on 1.14.x, successfully created a JAR file without the tests.
> 
> It still seems to fail on trunk. Can you do the same steps above on trunk?
> 
> Cheers,
> Daniel
> 

Hm, I get the same failures on trunk.
It seems that the changes of the behavior is introduced in r1933892.
At least, ./configure should stop and/or warn it if the junit is NOT optional when javahl enabled.

[[[
$ /bin/sh autogen.sh
$ ./configure --prefix=/dev/shm/svn/trunk --without-apxs --without-swig --without-swig-{perl,python,ruby} --enable-javahl --with-jdk=/usr/lib/jvm/java-11-openjdk-amd64 --without-junit PYTHON=/usr/bin/python3
$ make -j$(nproc) all
$ make javahl

$ find subversion/bindings/javahl -name '*.class' | wc -l
277
$ find subversion/bindings/javahl -name '*Test*.class' | wc -l
0    #==> tests/**/*.java are compiled yet.

$ make install
$ make install-javahl    # Why this task builds tests/**/*.java?
...
/dev/shm/subversion-trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java:1708: error: cannot find symbol
        assertEquals("wrong revision from commit",
        ^
  symbol:   method assertEquals(String,long,int)
  location: class BasicTests
/dev/shm/subversion-trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java:1756: error: cannot find symbol
        assertEquals("wrong revision from update",
        ^
  symbol:   method assertEquals(String,long,int)
  location: class BasicTests
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
100 errors
]]]


-- 
Jun Omae <[email protected]> (大前 潤)