openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dam...@apache.org
Subject svn commit: r1838693 - in /openoffice/trunk/main: configure.ac solenv/ant/aoo-ant.xml
Date Thu, 23 Aug 2018 06:01:40 GMT
Author: damjan
Date: Thu Aug 23 06:01:40 2018
New Revision: 1838693

URL: http://svn.apache.org/viewvc?rev=1838693&view=rev
Log:
Beef up detection of JUnit and Hamcrest, to search all the system
directories they could be in, and search for all the names they
commonly use.

Check for versions of JUnit that require Hamcrest.

Use Hamcrest in Ant JUnit tests when present.

Patch by: me


Modified:
    openoffice/trunk/main/configure.ac
    openoffice/trunk/main/solenv/ant/aoo-ant.xml

Modified: openoffice/trunk/main/configure.ac
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/configure.ac?rev=1838693&r1=1838692&r2=1838693&view=diff
==============================================================================
--- openoffice/trunk/main/configure.ac (original)
+++ openoffice/trunk/main/configure.ac Thu Aug 23 06:01:40 2018
@@ -681,9 +681,9 @@ AC_ARG_WITH(hamcrest-core,
 [  --with-hamcrest-core    Specifies the hamcrest-core jar file to use for
                           JUnit-based tests.  --without-junit disables those
                           tests.  Not relevant in the --without-java or
-                          --without-junit cases, and only needed for recent
-                          versions of JUnit. (Default: disabled.)
-],,with_hamcrest_core=no)
+                          --without-junit cases, and only needed for JUnit
+                          >= 4.11.
+],,with_hamcrest_core=yes)
 AC_ARG_WITH(perl-home,
 [  --with-perl-home        If you have installed the Perl 5 Distribution, on your
                           system, please supply the path here.
@@ -7170,66 +7170,139 @@ fi
 rm -f conftest* core core.* *.core
 
 OOO_JUNIT_JAR=
+JUNIT_NEEDS_HAMCREST=
 if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no"; then
-    AC_MSG_CHECKING([for JUnit 4])
+    AC_MSG_CHECKING([for JUnit])
     if test "$with_junit" = "yes"; then
         if test -e /usr/share/java/junit4.jar; then
-            OOO_JUNIT_JAR=/usr/share/java/junit4.jar
+           OOO_JUNIT_JAR=/usr/share/java/junit4.jar
         else
-           if test -e /usr/share/lib/java/junit.jar; then
-              OOO_JUNIT_JAR=/usr/share/lib/java/junit.jar
+           if test -e /usr/local/share/java/classes/junit4.jar; then
+              OOO_JUNIT_JAR=/usr/local/share/java/classes/junit4.jar
            else
-              OOO_JUNIT_JAR=/usr/share/java/junit.jar
+              if test -e /usr/share/lib/java/junit.jar; then
+                 OOO_JUNIT_JAR=/usr/share/lib/java/junit.jar
+              else
+                 if test -e /usr/share/local/lib/java/junit.jar; then
+                    OOO_JUNIT_JAR=/usr/share/local/lib/java/junit.jar
+                 else
+                    if test -e /usr/share/java/junit.jar; then
+                       OOO_JUNIT_JAR=/usr/share/java/junit.jar
+                    else
+                       if test -e /usr/local/share/java/classes/junit.jar; then
+                          OOO_JUNIT_JAR=/usr/local/share/java/classes/junit.jar
+                       fi
+                    fi
+                 fi
+              fi
            fi
         fi
     else
         OOO_JUNIT_JAR=$with_junit
     fi
+    if test -e "$OOO_JUNIT_JAR"; then
+        AC_MSG_RESULT([yes])
+    else
+        AC_MSG_ERROR([cannot find JUnit 4 jar; please install one in the default
+locations (/usr/share/java or /usr/local/share/java/classes), specify its pathname via
+--with-junit=..., or disable it via --without-junit.])
+    fi
     if test "$_os" = "WINNT"; then
         OOO_JUNIT_JAR=`cygpath -m "$OOO_JUNIT_JAR"`
     fi
-    "$JAVA_HOME/bin/jar" tf "$OOO_JUNIT_JAR" 2>&5 | \
-        $GREP org/junit/Before.class > /dev/null 2>&5
-    if test $? -eq 0; then
-        AC_MSG_RESULT([$OOO_JUNIT_JAR])
+    AC_MSG_CHECKING([whether JUnit is version 4.x])
+    export OOO_JUNIT_JAR
+    if $PERL -e 'use Archive::Zip;
+        my $file = "$ENV{'OOO_JUNIT_JAR'}";
+        my $zip = Archive::Zip->new( $file );
+        my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
+        if ( $mf =~ m/Implementation-Version: 4.12*/ ) {
+            exit 0;
+        } elsif ( $mf =~ m/Implementation-Version: 4.11*/ ) {
+            exit 0;
+        } else {
+            exit 1;
+        }'; then
+        AC_MSG_RESULT([yes, but Hamcrest Core is mandatory with this JUnit version (>=
4.11)])
+        JUNIT_NEEDS_HAMCREST=yes
+    elif $PERL -e 'use Archive::Zip;
+        my $file = "$ENV{'OOO_JUNIT_JAR'}";
+        my $zip = Archive::Zip->new( $file );
+        my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
+        if ( $mf =~ m/Implementation-Version: 4.*/ ) {
+            exit 0;
+        } else {
+            exit 1;
+        }'; then
+        AC_MSG_RESULT([yes])
     else
-        AC_MSG_RESULT([no])
-        AC_MSG_ERROR([cannot find JUnit 4 jar; please install one in the default
-location (/usr/share/java), specify its pathname via
---with-junit=..., or disable it via --without-junit])
+        AC_MSG_ERROR([no, your JUnit version is too old, you need JUnit 4.x])
     fi
 fi
 AC_SUBST(OOO_JUNIT_JAR)
 
 HAMCREST_CORE_JAR=
-if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no" && test "$with_hamcrest_core"
!= "no"; then
+if test "$SOLAR_JAVA" != "" && test "$with_hamcrest_core" != "no"; then
     AC_MSG_CHECKING([for hamcrest-core])
     if test "$with_hamcrest_core" = "yes"; then
-        if test -e /usr/share/java/hamcrest-core-1.3.jar; then
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/java/hamcrest-core-1.3.jar;
then
             HAMCREST_CORE_JAR=/usr/share/java/hamcrest-core-1.3.jar
-        else
-            if test -e /usr/share/lib/java/hamcrest-core.jar; then
-                HAMCREST_CORE_JAR=/usr/share/lib/java/hamcrest-core.jar
-            else
-                HAMCREST_CORE_JAR=/usr/share/java/hamcrest-core.jar
-            fi
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/java/classes/hamcrest-core-1.3.jar;
then
+            HAMCREST_CORE_JAR=/usr/local/share/java/classes/hamcrest-core-1.3.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/lib/java/hamcrest-core.jar;
then
+            HAMCREST_CORE_JAR=/usr/share/lib/java/hamcrest-core.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/lib/java/hamcrest-core.jar;
then
+            HAMCREST_CORE_JAR=/usr/local/share/lib/java/hamcrest-core.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/java/hamcrest-core.jar;
then
+            HAMCREST_CORE_JAR=/usr/share/java/hamcrest-core.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/java/classes/hamcrest-core.jar;
then
+            HAMCREST_CORE_JAR=/usr/local/share/java/classes/hamcrest-core.jar
+        fi
+        # Sometimes the "-core-" part is missing...
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/java/hamcrest1.3.jar;
then
+            HAMCREST_CORE_JAR=/usr/share/java/hamcrest1.3.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/java/classes/hamcrest1.3.jar;
then
+            HAMCREST_CORE_JAR=/usr/local/share/java/classes/hamcrest1.3.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/lib/java/hamcrest.jar;
then
+            HAMCREST_CORE_JAR=/usr/share/lib/java/hamcrest.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/lib/java/hamcrest.jar;
then
+            HAMCREST_CORE_JAR=/usr/local/share/lib/java/hamcrest.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/java/hamcrest.jar;
then
+            HAMCREST_CORE_JAR=/usr/share/java/hamcrest.jar
+        fi
+        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/java/classes/hamcrest.jar;
then
+            HAMCREST_CORE_JAR=/usr/local/share/java/classes/hamcrest.jar
         fi
     else
         HAMCREST_CORE_JAR=$with_hamcrest_core
     fi
-    if test "$_os" = "WINNT"; then
-        HAMCREST_CORE_JAR=`cygpath -m "$HAMCREST_CORE_JAR"`
-    fi
-    export HAMCREST_CORE_JAR
-    "$JAVA_HOME/bin/jar" tf "$HAMCREST_CORE_JAR" 2>&5 | \
-        $GREP org/hamcrest/core/AllOf.class > /dev/null 2>&5
-    if test $? -eq 0; then
-        AC_MSG_RESULT([$HAMCREST_CORE_JAR])
+    if test -e "$HAMCREST_CORE_JAR"; then
+        AC_MSG_RESULT([yes])
+        if test "$_os" = "WINNT"; then
+            HAMCREST_CORE_JAR=`cygpath -m "$HAMCREST_CORE_JAR"`
+        fi
     else
-        AC_MSG_ERROR([cannot find hamcrest-core jar; please install one in the
-default location (/usr/share/java), specify its
+        if test "$JUNIT_NEEDS_HAMCREST" = "yes"; then
+            AC_MSG_ERROR([cannot find hamcrest-core jar; please install one in the
+default locations (/usr/share/java or /usr/local/share/java/classes), specify its
 pathname via --with-hamcrest-core=..., or disable
-it via --without-hamcrest-core])
+it via --without-hamcrest-core or --without-junit])
+        else
+            AC_MSG_RESULT([no, skipping])
+        fi
+    fi
+else
+    if test "$JUNIT_NEEDS_HAMCREST" = "yes"; then
+        AC_MSG_ERROR([JUnit needs Hamcrest but Hamcrest disabled.])
     fi
 fi
 AC_SUBST(HAMCREST_CORE_JAR)

Modified: openoffice/trunk/main/solenv/ant/aoo-ant.xml
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/ant/aoo-ant.xml?rev=1838693&r1=1838692&r2=1838693&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/ant/aoo-ant.xml (original)
+++ openoffice/trunk/main/solenv/ant/aoo-ant.xml Thu Aug 23 06:01:40 2018
@@ -76,6 +76,7 @@
             <path refid="test.classpath" if:set="has.test.classpath"/>
             <pathelement location="${idl.classes.build.dir}"/>
             <pathelement location="${OOO_JUNIT_JAR}"/>
+            <pathelement location="${HAMCREST_CORE_JAR}" if:set="HAMCREST_CORE_JAR"/>
         </path>
 
         <local name="has.idl.files"/>



Mime
View raw message