Den ons 29 juli 2026 kl 04:32 skrev Jun Omae <[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
> ]]]
>

Thanks for confirming! It seems like 1.15.x is also affected by this (I'll
bring it up on the release thread).

To add three more data points to the discussion, I checked Fedora 43, 44
and FreeBSD 14. The tests are present in Fedora's svn-javahl.jar but not in
FreeBSD's svn-javahl.jar. Obviously different distributors use different
options when building. That is unfortunate since we are distributing
different ABIs.

I think it would be cleaner to have the tests in svn-javahl-tests.jar if
built. Maybe we want to install this alongside svn-javahl.jar. That way
Fedora and Ubuntu can keep distributing the tests and FreeBSD not, while
everyone's svn-javahl.jar is the same.

Does that make sense?

Cheers,
Daniel

Reply via email to