GN: Make the wrapper script generated for junit work without extra args

Still works with GYP, but for gyp you need the extra arg.

BUG=

Review URL: https://codereview.chromium.org/1317853006

Cr-Original-Commit-Position: refs/heads/master@{#347413}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 60d3387b05d03cccc8b2339a0541ef6972d2a307
This commit is contained in:
agrieve 2015-09-04 08:40:09 -07:00 коммит произвёл Commit bot
Родитель 4f937822f1
Коммит 50ac99d89e
3 изменённых файлов: 29 добавлений и 7 удалений

Просмотреть файл

@ -30,6 +30,7 @@ import sys
self_dir = os.path.dirname(__file__)
classpath = [{classpath}]
extra_args = {extra_args}
if os.getcwd() != self_dir:
offset = os.path.relpath(self_dir, os.getcwd())
classpath = [os.path.join(offset, p) for p in classpath]
@ -37,7 +38,7 @@ java_args = [
"java",
"-classpath", ":".join(classpath),
"-enableassertions",
\"{main_class}\"] + sys.argv[1:]
\"{main_class}\"] + extra_args + sys.argv[1:]
os.execvp("java", java_args)
"""
@ -51,7 +52,7 @@ def main(argv):
help='Name of the java class with the "main" entry point.')
parser.add_option('--classpath', action='append',
help='Classpath for running the jar.')
options, _ = parser.parse_args(argv)
options, extra_args = parser.parse_args(argv)
classpath = [options.jar_path]
for cp_arg in options.classpath:
@ -63,7 +64,8 @@ def main(argv):
with open(options.output, 'w') as script:
script.write(script_template.format(
classpath=('"%s"' % '", "'.join(classpath)),
main_class=options.main_class))
main_class=options.main_class,
extra_args=repr(extra_args)))
os.chmod(options.output, 0750)

Просмотреть файл

@ -121,6 +121,14 @@ template("findbugs") {
}
# Generates a script in the output bin.java directory to run a java binary.
#
# Variables
# main_class: The class containing the progam entry point.
# jar_path: The path to the jar to run.
# script_name: Name of the script to generate.
# build_config: Path to .build_config for the jar (contains classpath).
# wrapper_script_args: List of extra arguments to pass to the executable.
#
template("java_binary_script") {
set_sources_assignment_filter([])
forward_variables_from(invoker, [ "testonly" ])
@ -154,6 +162,9 @@ template("java_binary_script") {
"--main-class",
_main_class,
]
if (defined(invoker.wrapper_script_args)) {
args += [ "--" ] + invoker.wrapper_script_args
}
}
}
@ -1272,9 +1283,13 @@ template("java_library_impl") {
if (defined(invoker.main_class)) {
_final_datadeps += [ ":${_template_name}__java_binary_script" ]
java_binary_script("${_template_name}__java_binary_script") {
forward_variables_from(invoker,
[
"main_class",
"wrapper_script_args",
])
build_config = _build_config
jar_path = _jar_path
main_class = invoker.main_class
script_name = _template_name
deps = build_config_deps
}

Просмотреть файл

@ -796,19 +796,20 @@ template("java_strings_grd_prebuilt") {
# Variables
# deps: Specifies the dependencies of this target. Java targets in this list
# will be included in the executable (and the javac classpath).
#
# java_files: List of .java files included in this library.
# srcjar_deps: List of srcjar dependencies. The .java files in the srcjars
# will be added to java_files and be included in this library.
# srcjars: List of srcjars to be included in this library, together with the
# ones obtained from srcjar_deps.
#
# bypass_platform_checks: Disables checks about cross-platform (Java/Android)
# dependencies for this target. This will allow depending on an
# android_library target, for example.
#
# chromium_code: If true, extra analysis warning/errors will be enabled.
# enable_errorprone: If true, enables the errorprone compiler.
# main_class: When specified, a wrapper script is created within
# $target_out_dir/bin to launch the binary with the given class as the
# entrypoint.
# wrapper_script_args: List of additional arguments for the wrapper script.
#
# data_deps, testonly
#
@ -860,6 +861,10 @@ template("junit_binary") {
forward_variables_from(invoker, "*")
bypass_platform_checks = true
main_class = "org.chromium.testing.local.JunitTestMain"
wrapper_script_args = [
"-test-jars",
"$target_name.jar",
]
testonly = true
deps += [