Bug 1779937 - Add mach xpcshell r=ahal,nalexander

Differential Revision: https://phabricator.services.mozilla.com/D151984
This commit is contained in:
Barret Rennie
2022-07-21 00:47:45 +00:00
parent d99b4d74d4
commit 3e86269cf4
2 changed files with 44 additions and 0 deletions

View File

@@ -359,6 +359,7 @@ def initialize(topsrcdir):
"testing/webcompat/mach_commands.py"
),
"esmify": MachCommandReference("tools/esmify/mach_commands.py"),
"xpcshell": MachCommandReference("js/xpconnect/mach_commands.py"),
}
# Set a reasonable limit to the number of open files.

View File

@@ -0,0 +1,43 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import argparse
import sys
from pathlib import Path
from mach.decorators import (
Command,
CommandArgument,
)
@Command("xpcshell", category="misc", description="Run the xpcshell binary")
@CommandArgument(
"args", nargs=argparse.REMAINDER, help="Arguments to provide to xpcshell"
)
def xpcshell(command_context, args):
dist_bin = Path(command_context._topobjdir, "dist", "bin")
browser_dir = dist_bin / "browser"
if sys.platform == "win32":
xpcshell = dist_bin / "xpcshell.exe"
else:
xpcshell = dist_bin / "xpcshell"
command = [
str(xpcshell),
"-g",
str(dist_bin),
"-a",
str(browser_dir),
]
if args:
command.extend(args)
return command_context.run_process(
command,
pass_thru=True,
ensure_exit_code=False,
)