diff --git a/meta/lib/patchtest/data.py b/meta/lib/patchtest/data.py index b661dd6479..12f36aa14d 100644 --- a/meta/lib/patchtest/data.py +++ b/meta/lib/patchtest/data.py @@ -35,6 +35,9 @@ import logging logger=logging.getLogger('patchtest') info=logger.info +default_testdir = os.path.abspath(os.path.dirname(__file__) + "/tests") +default_repodir = os.path.abspath(os.path.dirname(__file__) + "/../../..") + # Data store commonly used to share values between pre and post-merge tests PatchTestDataStore = collections.defaultdict(str) @@ -58,10 +61,12 @@ class PatchTestInput(object): target_patch_group.add_argument('--directory', metavar='DIRECTORY', dest='patch_path', help='The directory containing patches to be tested') - parser.add_argument('repodir', metavar='REPO', + parser.add_argument('--repodir', metavar='REPO', + default=default_repodir, help="Name of the repository where patch is merged") - parser.add_argument('startdir', metavar='TESTDIR', + parser.add_argument('--testdir', metavar='TESTDIR', + default=default_testdir, help="Directory where test cases are located") parser.add_argument('--top-level-directory', '-t', diff --git a/scripts/patchtest b/scripts/patchtest index 9525a2be17..b25ef18321 100755 --- a/scripts/patchtest +++ b/scripts/patchtest @@ -142,7 +142,7 @@ def _runner(resultklass, prefix=None): loader.testMethodPrefix = prefix # create the suite with discovered tests and the corresponding runner - suite = loader.discover(start_dir=PatchTestInput.startdir, pattern=PatchTestInput.pattern, top_level_dir=PatchTestInput.topdir) + suite = loader.discover(start_dir=PatchTestInput.testdir, pattern=PatchTestInput.pattern, top_level_dir=PatchTestInput.topdir) ntc = suite.countTestCases() # if there are no test cases, just quit @@ -220,9 +220,9 @@ if __name__ == '__main__': if PatchTestInput.debug: logger.setLevel(logging.DEBUG) - # if topdir not define, default it to startdir + # if topdir not define, default it to testdir if not PatchTestInput.topdir: - PatchTestInput.topdir = PatchTestInput.startdir + PatchTestInput.topdir = PatchTestInput.testdir try: ret = main() diff --git a/scripts/patchtest.README b/scripts/patchtest.README index 689d513df5..ad46b02ad6 100644 --- a/scripts/patchtest.README +++ b/scripts/patchtest.README @@ -79,15 +79,19 @@ To run patchtest on the host, do the following: or patchtest-get-series 3. Run patchtest on a patch file by doing the following: - patchtest --patch /path/to/patch/file /path/to/target/repo /path/to/tests/directory + patchtest --patch /path/to/patch/file or, if you have stored the patch files in a directory, do: - patchtest --directory /path/to/patch/directory /path/to/target/repo /path/to/tests/directory + patchtest --directory /path/to/patch/directory For example, to test `master-gcc-Fix--fstack-protector-issue-on-aarch64.patch` against the oe-core test suite: - patchtest --patch master-gcc-Fix--fstack-protector-issue-on-aarch64.patch /path/to/openembedded-core /path/to/openembedded-core/meta/lib/patchtest/tests + patchtest --patch master-gcc-Fix--fstack-protector-issue-on-aarch64.patch + + If you want to use a different test suite or target repository, you can use the --testdir and --repodir flags: + + patchtest --patch /path/to/patch/file --repodir /path/to/repo --testdir /path/to/test/dir ### Guest Mode