diff options
Diffstat (limited to 'testing/xpcshell/xpcshellcommandline.py')
-rw-r--r-- | testing/xpcshell/xpcshellcommandline.py | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/testing/xpcshell/xpcshellcommandline.py b/testing/xpcshell/xpcshellcommandline.py new file mode 100644 index 000000000..d2a8e6bc1 --- /dev/null +++ b/testing/xpcshell/xpcshellcommandline.py @@ -0,0 +1,166 @@ +import argparse + +from mozlog import commandline + + +def add_common_arguments(parser): + parser.add_argument("--app-path", + type=unicode, dest="appPath", default=None, + help="application directory (as opposed to XRE directory)") + parser.add_argument("--interactive", + action="store_true", dest="interactive", default=False, + help="don't automatically run tests, drop to an xpcshell prompt") + parser.add_argument("--verbose", + action="store_true", dest="verbose", default=False, + help="always print stdout and stderr from tests") + parser.add_argument("--keep-going", + action="store_true", dest="keepGoing", default=False, + help="continue running tests after test killed with control-C (SIGINT)") + parser.add_argument("--logfiles", + action="store_true", dest="logfiles", default=True, + help="create log files (default, only used to override --no-logfiles)") + parser.add_argument("--dump-tests", type=str, dest="dump_tests", default=None, + help="Specify path to a filename to dump all the tests that will be run") + parser.add_argument("--manifest", + type=unicode, dest="manifest", default=None, + help="Manifest of test directories to use") + parser.add_argument("--no-logfiles", + action="store_false", dest="logfiles", + help="don't create log files") + parser.add_argument("--sequential", + action="store_true", dest="sequential", default=False, + help="Run all tests sequentially") + parser.add_argument("--temp-dir", + dest="tempDir", default=None, + help="Directory to use for temporary files") + parser.add_argument("--testing-modules-dir", + dest="testingModulesDir", default=None, + help="Directory where testing modules are located.") + parser.add_argument("--test-plugin-path", + type=str, dest="pluginsPath", default=None, + help="Path to the location of a plugins directory containing the test plugin or plugins required for tests. " + "By default xpcshell's dir svc provider returns gre/plugins. Use test-plugin-path to add a directory " + "to return for NS_APP_PLUGINS_DIR_LIST when queried.") + parser.add_argument("--total-chunks", + type=int, dest="totalChunks", default=1, + help="how many chunks to split the tests up into") + parser.add_argument("--this-chunk", + type=int, dest="thisChunk", default=1, + help="which chunk to run between 1 and --total-chunks") + parser.add_argument("--profile-name", + type=str, dest="profileName", default=None, + help="name of application profile being tested") + parser.add_argument("--build-info-json", + type=str, dest="mozInfo", default=None, + help="path to a mozinfo.json including information about the build configuration. defaults to looking for mozinfo.json next to the script.") + parser.add_argument("--shuffle", + action="store_true", dest="shuffle", default=False, + help="Execute tests in random order") + parser.add_argument("--xre-path", + action="store", type=str, dest="xrePath", + # individual scripts will set a sane default + default=None, + help="absolute path to directory containing XRE (probably xulrunner)") + parser.add_argument("--symbols-path", + action="store", type=str, dest="symbolsPath", + default=None, + help="absolute path to directory containing breakpad symbols, or the URL of a zip file containing symbols") + parser.add_argument("--jscov-dir-prefix", + action="store", type=str, dest="jscovdir", + default=argparse.SUPPRESS, + help="Directory to store per-test javascript line coverage data as json.") + parser.add_argument("--debugger", + action="store", dest="debugger", + help="use the given debugger to launch the application") + parser.add_argument("--debugger-args", + action="store", dest="debuggerArgs", + help="pass the given args to the debugger _before_ " + "the application on the command line") + parser.add_argument("--debugger-interactive", + action="store_true", dest="debuggerInteractive", + help="prevents the test harness from redirecting " + "stdout and stderr for interactive debuggers") + parser.add_argument("--jsdebugger", dest="jsDebugger", action="store_true", + help="Waits for a devtools JS debugger to connect before " + "starting the test.") + parser.add_argument("--jsdebugger-port", type=int, dest="jsDebuggerPort", + default=6000, + help="The port to listen on for a debugger connection if " + "--jsdebugger is specified.") + parser.add_argument("--tag", + action="append", dest="test_tags", + default=None, + help="filter out tests that don't have the given tag. Can be " + "used multiple times in which case the test must contain " + "at least one of the given tags.") + parser.add_argument("--utility-path", + action="store", dest="utility_path", + default=None, + help="Path to a directory containing utility programs, such " + "as stack fixer scripts.") + parser.add_argument("--xpcshell", + action="store", dest="xpcshell", + default=None, + help="Path to xpcshell binary") + # This argument can be just present, or the path to a manifest file. The + # just-present case is usually used for mach which can provide a default + # path to the failure file from the previous run + parser.add_argument("--rerun-failures", + action="store_true", + help="Rerun failures from the previous run, if any") + parser.add_argument("--failure-manifest", + action="store", + help="Path to a manifest file from which to rerun failures " + "(with --rerun-failure) or in which to record failed tests") + parser.add_argument("testPaths", nargs="*", default=None, + help="Paths of tests to run.") + +def add_remote_arguments(parser): + parser.add_argument("--deviceIP", action="store", type=str, dest="deviceIP", + help="ip address of remote device to test") + + parser.add_argument("--devicePort", action="store", type=str, dest="devicePort", + default=20701, help="port of remote device to test") + + parser.add_argument("--dm_trans", action="store", type=str, dest="dm_trans", + choices=["adb", "sut"], default="adb", + help="the transport to use to communicate with device: [adb|sut]; default=adb") + + parser.add_argument("--objdir", action="store", type=str, dest="objdir", + help="local objdir, containing xpcshell binaries") + + + parser.add_argument("--apk", action="store", type=str, dest="localAPK", + help="local path to Fennec APK") + + + parser.add_argument("--noSetup", action="store_false", dest="setup", default=True, + help="do not copy any files to device (to be used only if device is already setup)") + + parser.add_argument("--local-lib-dir", action="store", type=str, dest="localLib", + help="local path to library directory") + + parser.add_argument("--local-bin-dir", action="store", type=str, dest="localBin", + help="local path to bin directory") + + parser.add_argument("--remoteTestRoot", action="store", type=str, dest="remoteTestRoot", + help="remote directory to use as test root (eg. /mnt/sdcard/tests or /data/local/tests)") + + +def parser_desktop(): + parser = argparse.ArgumentParser() + add_common_arguments(parser) + commandline.add_logging_group(parser) + + return parser + + +def parser_remote(): + parser = argparse.ArgumentParser() + common = parser.add_argument_group("Common Options") + add_common_arguments(common) + remote = parser.add_argument_group("Remote Options") + add_remote_arguments(remote) + commandline.add_logging_group(parser) + + return parser |