Skip to content

Commit d53475c

Browse files
committed
[bazel] Do not generate suites that should never be run
1 parent 4a77041 commit d53475c

File tree

3 files changed

+82
-51
lines changed

3 files changed

+82
-51
lines changed

java/defs.bzl

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ load("//java/private:library.bzl", _java_export = "java_export", _java_library =
88
load("//java/private:javadoc.bzl", _javadoc = "javadoc")
99
load("//java/private:module.bzl", _java_module = "java_module")
1010
load("//java/private:spotbugs_config.bzl", _spotbugs_config = "spotbugs_config")
11-
load("//java/private:suite.bzl", _java_test_suite = "java_test_suite")
12-
load("//java/private:selenium_suite.bzl", _java_selenium_test_suite = "java_selenium_test_suite")
11+
load("//java/private:suite.bzl", _java_selenium_test_suite = "java_selenium_test_suite", _java_test_suite = "java_test_suite")
12+
#load("//java/private:suite.bzl", _java_test_suite = "java_test_suite")
13+
#load("//java/private:selenium_suite.bzl", _java_selenium_test_suite = "java_selenium_test_suite")
1314

1415
java_binary = _java_binary
1516
java_dist_zip = _java_dist_zip

java/private/selenium_suite.bzl

-39
This file was deleted.

java/private/suite.bzl

+79-10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
load("//common/private:selenium_test.bzl", "BROWSERS", "DEFAULT_BROWSER", "selenium_test")
12
load(":package.bzl", "package_name")
23

34
def _test_class_name(src_file):
@@ -62,23 +63,25 @@ _test_attrs = [
6263
"use_testrunner",
6364
]
6465

65-
def java_test_suite(
66+
def _suite_name(name, suite_name):
67+
if not suite_name:
68+
return "".join([p.capitalize() for p in name.replace("-", " ").replace("_", " ").split(" ")])
69+
return suite_name
70+
71+
def _generate_common_targets(
6672
name,
73+
size,
74+
suite_name,
6775
srcs,
68-
size = None,
69-
suite_name = None,
70-
test_identifiers = ["Test.java"],
71-
deps = [],
72-
tags = [],
76+
deps,
77+
tags,
78+
test_identifiers,
7379
**kwargs):
74-
if not suite_name:
75-
suite_name = "".join([p.capitalize() for p in name.replace("-", " ").replace("_", " ").split(" ")])
80+
suite_name = _suite_name(name, suite_name)
7681

7782
pkg = package_name()
7883
test_classes = [pkg + src[:-len(".java")].replace("/", ".") for src in srcs if _matches(test_identifiers, src)]
7984

80-
additional_tags = [] if size == "small" else ["no-sandbox"]
81-
8285
libargs = {}
8386
for (key, value) in kwargs.items():
8487
if key not in _test_attrs:
@@ -101,6 +104,32 @@ def java_test_suite(
101104
test_classes = test_classes,
102105
)
103106

107+
108+
def java_test_suite(
109+
name,
110+
srcs,
111+
size = None,
112+
suite_name = None,
113+
test_identifiers = ["Test.java"],
114+
deps = [],
115+
tags = [],
116+
**kwargs):
117+
suite_name = _suite_name(name, suite_name)
118+
pkg = package_name()
119+
test_classes = [pkg + src[:-len(".java")].replace("/", ".") for src in srcs if _matches(test_identifiers, src)]
120+
additional_tags = [] if size == "small" else ["no-sandbox"]
121+
122+
_generate_common_targets(
123+
name,
124+
size,
125+
suite_name,
126+
srcs,
127+
deps,
128+
tags,
129+
test_identifiers,
130+
**kwargs,
131+
)
132+
104133
# Skip linting for the generated test suite
105134
native.java_test(
106135
name = name,
@@ -112,3 +141,43 @@ def java_test_suite(
112141
tags = tags + additional_tags,
113142
**kwargs,
114143
)
144+
145+
def java_selenium_test_suite(
146+
name,
147+
browsers = BROWSERS.keys(),
148+
srcs = None,
149+
test_identifiers = ["Test.java"],
150+
deps = None,
151+
data = [],
152+
jvm_flags = [],
153+
tags = [],
154+
**kwargs):
155+
suite_name = _suite_name(name, None)
156+
pkg = package_name()
157+
test_classes = [pkg + src[:-len(".java")].replace("/", ".") for src in srcs if _matches(test_identifiers, src)]
158+
159+
amended_flags = {k: v for (k, v) in kwargs.items() if k != "size"}
160+
161+
_generate_common_targets(
162+
name,
163+
"large",
164+
suite_name,
165+
srcs,
166+
deps,
167+
tags,
168+
test_identifiers,
169+
**amended_flags
170+
)
171+
172+
selenium_test(
173+
name = name,
174+
test_class = pkg + suite_name,
175+
browsers = browsers,
176+
size = "large",
177+
srcs = [":%s-suite-src" % name],
178+
deps = deps + ["%s-suite-lib" % name],
179+
shard_count = len(srcs),
180+
data = data,
181+
jvm_flags = jvm_flags,
182+
tags = tags
183+
)

0 commit comments

Comments
 (0)