This file is designed for importing into a main build file, and not intended for standalone use. Found disallowed Ivy jar(s): ${disallowed.ivy.jars.list} This build requires Ivy and Ivy could not be found in your ant classpath. (Due to classpath issues and the recursive nature of the Lucene/Solr build system, a local copy of Ivy can not be used an loaded dynamically by the build.xml) You can either manually install a copy of Ivy ${ivy.bootstrap.version} in your ant classpath: http://ant.apache.org/manual/install.html#optionalTasks Or this build file can do it for you by running the Ivy Bootstrap target: ant ivy-bootstrap Either way you will only have to install Ivy one time. 'ant ivy-bootstrap' will install a copy of Ivy into your Ant User Library: ${user.home}/.ant/lib If you would prefer, you can have it installed into an alternative directory using the "-Divy_install_path=/some/path/you/choose" option, but you will have to specify this path every time you build Lucene/Solr in the future... ant ivy-bootstrap -Divy_install_path=/some/path/you/choose ... ant -lib /some/path/you/choose clean compile ... ant -lib /some/path/you/choose clean compile If you have already run ivy-bootstrap, and still get this message, please try using the "--noconfig" option when running ant, or editing your global ant config to allow the user lib to be loaded. See the wiki for more details: http://wiki.apache.org/lucene-java/DeveloperTips#Problems_with_Ivy.3F Ivy is not available US-ASCII ISO-8859-1 UTF-8 # module: ${ant.project.name} ${junit4.stats.nonIgnored} 5 slowest tests: Showing ${max} slowest tests according to local stats. (change with -Dmax=...). Showing ${max} slowest tests in cached stats. (change with -Dmax=...). # # Test case filtering. -------------------------------------------- # # - 'tests.class' is a class-filtering shell-like glob pattern, # 'testcase' is an alias of "tests.class=*.${testcase}" # - 'tests.method' is a method-filtering glob pattern. # 'testmethod' is an alias of "tests.method=${testmethod}*" # # Run a single test case (variants) ant test -Dtests.class=org.apache.lucene.package.ClassName ant test "-Dtests.class=*.ClassName" ant test -Dtestcase=ClassName # Run all tests in a package and sub-packages ant test "-Dtests.class=org.apache.lucene.package.Test*|org.apache.lucene.package.*Test" # Run any test methods that contain 'esi' (like: ...r*esi*ze...). ant test "-Dtests.method=*esi*" # # Seed and repetitions. ------------------------------------------- # # Run with a given seed (seed is a hex-encoded long). ant test -Dtests.seed=DEADBEEF # Repeats _all_ tests of ClassName N times. Every test repetition # will have a different seed. NOTE: does not reinitialize # between repetitions, use only for idempotent tests. ant test -Dtests.iters=N -Dtestcase=ClassName # Repeats _all_ tests of ClassName N times. Every test repetition # will have exactly the same master (dead) and method-level (beef) # seed. ant test -Dtests.iters=N -Dtestcase=ClassName -Dtests.seed=dead:beef # Repeats a given test N times (note the filters - individual test # repetitions are given suffixes, ie: testFoo[0], testFoo[1], etc... # so using testmethod or tests.method ending in a glob is necessary # to ensure iterations are run). ant test -Dtests.iters=N -Dtestcase=ClassName -Dtestmethod=mytest ant test -Dtests.iters=N -Dtestcase=ClassName -Dtests.method=mytest* # Repeats N times but skips any tests after the first failure or M # initial failures. ant test -Dtests.iters=N -Dtests.failfast=yes -Dtestcase=... ant test -Dtests.iters=N -Dtests.maxfailures=M -Dtestcase=... # Repeats every suite (class) and any tests inside N times # can be combined with -Dtestcase or -Dtests.iters, etc. # Can be used for running a single class on multiple JVMs # in parallel. ant test -Dtests.dups=N ... # Test beasting: Repeats every suite with same seed per class # (N times in parallel) and each test inside (M times). The whole # run is repeated (beasting) P times in a loop, with a different # master seed. You can combine beasting with any other parameter, # just replace "test" with "beast" and give -Dbeast.iters=P # (P >> 1). ant beast -Dtests.dups=N -Dtests.iters=M -Dbeast.iters=P \ -Dtestcase=ClassName # # Test groups. ---------------------------------------------------- # # test groups can be enabled or disabled (true/false). Default # value provided below in [brackets]. ant -Dtests.nightly=[false] - nightly test group (@Nightly) ant -Dtests.weekly=[false] - weekly tests (@Weekly) ant -Dtests.awaitsfix=[false] - known issue (@AwaitsFix) ant -Dtests.badapples=[true] - flakey tests (@BadApple) ant -Dtests.slow=[true] - slow tests (@Slow) # An alternative way to select just one (or more) groups of tests # is to use the -Dtests.filter property: -Dtests.filter="@slow" # would run only slow tests. 'tests.filter' supports Boolean operators # 'and, or, not' and grouping, for example: ant -Dtests.filter="@nightly and not(@awaitsfix or @slow)" # would run nightly tests but not those also marked as awaiting a fix # or slow. Note that tests.filter, if present, has a priority over any # individual tests.* properties. # # Load balancing and caches. -------------------------------------- # # Run sequentially (one slave JVM). ant -Dtests.jvms=1 test # Run with more slave JVMs than the default. # Don't count hypercores for CPU-intense tests. # Make sure there is enough RAM to handle child JVMs. ant -Dtests.jvms=8 test # Use repeatable suite order on slave JVMs (disables job stealing). ant -Dtests.dynamicAssignmentRatio=0 test # Update global (versioned!) execution times cache (top level). ant clean test ant -f lucene/build.xml test-updatecache # # Miscellaneous. -------------------------------------------------- # # Only run test(s), non-recursively. Faster than "ant test". # WARNING: Skips jar download and compilation. Clover not supported. ant test-nocompile ant -Dtestcase=... test-nocompile # Run all tests without stopping on errors (inspect log files!). ant -Dtests.haltonfailure=false test # Run more verbose output (slave JVM parameters, etc.). ant -verbose test # Include additional information like what is printed to # sysout/syserr, even if the test passes. # Enabled automatically when running for a single test case. ant -Dtests.showSuccess=true test # Change the default suite timeout to 5 seconds. ant -Dtests.timeoutSuite=5000! ... # Display local averaged stats, if any (30 slowest tests). ant test-times -Dmax=30 # Display a timestamp alongside each suite/ test. ant -Dtests.timestamps=on ... # Override forked JVM file.encoding ant -Dtests.file.encoding=XXX ... # Don't remove any temporary files under slave directories, even if # the test passes (any of the following props): ant -Dtests.leaveTemporary=true ant -Dtests.leavetmpdir=true ant -Dsolr.test.leavetmpdir=true # Do *not* filter stack traces emitted to the console. ant -Dtests.filterstacks=false # Skip checking for no-executed tests in modules ant -Dtests.ifNoTests=ignore ... # Output test files and reports. ${tests-output}/tests-report.txt - full ASCII tests report ${tests-output}/tests-failures.txt - failures only (if any) ${tests-output}/tests-report-* - HTML5 report with results ${tests-output}/junit4-*.suites - per-JVM executed suites (important if job stealing). if (line ==~ /^[0-9]+/) { total += Integer.valueOf(line); } }); statsFile.delete(); if (total == 0 && !"ignore".equals(project.getProperty("tests.ifNoTests"))) { throw new BuildException("Not even a single test was executed (a typo in the filter pattern maybe?)."); } // Interesting but let's keep the build output quiet. // task.log("Grand total of all executed tests (including sub-modules): " + total); ]]> TODO: Code coverage with OpenClover does not yet work with Java 11 - see https://issues.apache.org/jira/browse/LUCENE-8763 Code coverage with OpenClover enabled. Code coverage with pitest enabled. ${ant.project.name}.dependencies=${classpath.list} ${ant.project.name}.test.dependencies=${test.classpath.list} Invoking target stage-maven in ${output.build.xml} now... ${rat.output} Copyright © ${year} Apache Software Foundation. All Rights Reserved. ]]> Building checksums for '@{file}' WARNING: ON SOME PLATFORMS YOUR PASSPHRASE WILL BE ECHOED BACK!!!!! ${@{doap.property.prefix}.Project.release.Version.revision} ${@{doap.property.prefix}.Project.release.Version.created} PiTest mutation coverage can take a *long* time on even large hardware. (EC2 32core sandy bridge takes at least 12 hours to run PiTest for the lucene test cases) The following arguments can be provided to ant to alter its behaviour and target specific tests:: -Dpitest.report.dir (@{pitest.report.dir}) - Change where PiTest writes output reports -Dpitest.distance (@{pitest.distance}) - How far away from the test class should be mutated 0 being immeditate callees only -Dpitest.threads (@{pitest.threads}) - How many threads to use in PiTest (note this is independent of junit threads) -Dpitest.testCases (@{pitest.testCases}) - Glob of testcases to run -Dpitest.maxMutations (@{pitest.maxMutations}) - Maximum number of mutations per class under test 0 being unlimited -Dpitest.timeoutFactor (@{pitest.timeoutFactor}) - Tunable factor used to determine if a test is potentially been mutated to be an infinate loop or O(n!) (or similar) -Dpitest.timeoutConst (@{pitest.timeoutConst}) - Base constant used for working out timeouts -Dpitest.targetClasses (@{pitest.targetClasses}) - Classes to consider for mutation