You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by Apache Wiki <wi...@apache.org> on 2015/05/06 05:15:20 UTC

[Hadoop Wiki] Update of "TestPatchTips" by SomeOtherAccount

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.

The "TestPatchTips" page has been changed by SomeOtherAccount:
https://wiki.apache.org/hadoop/TestPatchTips

New page:
=== Introduction ===
In the Hadoop source tree is {{{dev-support/test-patch.sh}}}.  This script used by the Jenkins servers to run the automated QA tests.  It is possible and highly recommended to run this script locally prior to uploading a patch to JIRA.

In order to get the full power of the tool set, you'll want to make sure that both {{{findbugs}}} and {{{shellcheck}}} are installed.

== Using test-patch.sh ==
Running {{{test-patch.sh}}} will show a usage message that describes all of its options. While there are many listed, there are a few key ones:

 * {{{--basedir}}} = location of the source repo
 * {{{--dirty-workspace}}} = the repo isn't pristine, but run anyway
 * {{{--reset-repo}}} = the repo is allowed to be modified NOTE: This will '''DESTROY''' any changes in the given repo!
 * {{{--run-tests}}} = run appropriate unit tests
 * filename or JIRA # or HTTP URL = the location of the patch that needs to be tested

Apply and run just the basic checks in a checkout that has other stuff in it:

{{{
$ dev-support/test-patch.sh --dirty-workspace /tmp/patchfile
}}}
Apply and run the full unit test:

{{{
$ dev-support/test-patch.sh --dirty-workspace --run-tests /tmp/patchfile
}}}
Download a patch from a JIRA and run just the basic checks in a checkout that can be destroyed:

{{{{{{}}}

{{{$ dev-support/test-patch.sh --resetrepo HADOOP-11820}}}

}}}

'''Recommended Usage'''

In general, the easiest way to use {{{test-patch.sh}}} is to use two repos.  One repo is used to build patches.  The other repo is used to to test them.

{{{
$ git diff --no-prefix trunk > /tmp/1.patch

$ dev-support/test-patch.sh --resetrepo --runtests --basedir=/test/repo /tmp/1.patch
}}}
This will run the freshly built patch against the tests in a fresh repo.