aboutsummaryrefslogtreecommitdiff
path: root/test_defs.bzl
diff options
context:
space:
mode:
authorronshapiro <ronshapiro@google.com>2018-06-07 20:47:25 -0700
committerRon Shapiro <shapiro.rd@gmail.com>2018-06-12 19:25:23 -0400
commitc7fb974968a6e29a7ee3b63789891a13c8a568e7 (patch)
tree9521037561c23d7c4d5bdb3db16d70b95125bfa8 /test_defs.bzl
parentd55c02d89526a4217c7720cc540e6e0ffca5fc0a (diff)
downloaddagger2-c7fb974968a6e29a7ee3b63789891a13c8a568e7.tar.gz
Begin using github.com/google/bazel-common in Dagger
RELNOTES=n/a ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=199741327
Diffstat (limited to 'test_defs.bzl')
-rw-r--r--test_defs.bzl208
1 files changed, 139 insertions, 69 deletions
diff --git a/test_defs.bzl b/test_defs.bzl
index 8757733c9..0869038aa 100644
--- a/test_defs.bzl
+++ b/test_defs.bzl
@@ -18,85 +18,155 @@ BUILD_VARIANTS = {
"FastInit": ["-Adagger.fastInit=enabled"],
"ExperimentalAndroidMode2": ["-Adagger.experimentalAndroidMode2=enabled"],
"ExperimentalAheadOfTimeComponents": ["-Adagger.experimentalAheadOfTimeComponents=enabled"],
- "FastInitAndAheadOfTimeComponents": ["-Adagger.fastInit=enabled",
- "-Adagger.experimentalAheadOfTimeComponents=enabled"],
+ "FastInitAndAheadOfTimeComponents": [
+ "-Adagger.fastInit=enabled",
+ "-Adagger.experimentalAheadOfTimeComponents=enabled",
+ ],
}
+# TODO(ronshapiro): convert this to use bazel_common
# TODO(user): split into two functions for functional vs non-functional tests?
-def GenJavaTests(name, srcs, deps, test_only_deps=None, plugins=None, javacopts=None,
- lib_javacopts=None, test_javacopts=None, functional=True):
- _GenTests(native.java_library, native.java_test, name, srcs, deps, test_only_deps,
- plugins, javacopts, lib_javacopts, test_javacopts, functional)
+def GenJavaTests(
+ name,
+ srcs,
+ deps,
+ test_only_deps = None,
+ plugins = None,
+ javacopts = None,
+ lib_javacopts = None,
+ test_javacopts = None,
+ functional = True):
+ _GenTests(
+ native.java_library,
+ native.java_test,
+ name,
+ srcs,
+ deps,
+ test_only_deps,
+ plugins,
+ javacopts,
+ lib_javacopts,
+ test_javacopts,
+ functional,
+ )
-def GenRobolectricTests(name, srcs, deps, test_only_deps=None, plugins=None, javacopts=None,
- lib_javacopts=None, test_javacopts=None):
- # TODO(ronshapiro): enable these when Bazel supports robolectric tests
+def GenRobolectricTests(
+ name,
+ srcs,
+ deps,
+ test_only_deps = None,
+ plugins = None,
+ javacopts = None,
+ lib_javacopts = None,
+ test_javacopts = None):
+ # TODO(ronshapiro): enable these when Bazel supports robolectric tests
pass
-def _GenTests(library_rule_type, test_rule_type, name, srcs, deps, test_only_deps=None,
- plugins=None, javacopts=None, lib_javacopts=None, test_javacopts=None,
- functional=True):
- _gen_tests(library_rule_type, test_rule_type, name, srcs, deps, test_only_deps,
- plugins, javacopts, lib_javacopts, test_javacopts)
-
- if functional:
- for (variant_name, extra_javacopts) in BUILD_VARIANTS.items():
- variant_javacopts = (javacopts or []) + extra_javacopts
- _gen_tests(library_rule_type, test_rule_type, name, srcs, deps, test_only_deps,
- plugins, variant_javacopts, lib_javacopts, test_javacopts, variant_name)
+def _GenTests(
+ library_rule_type,
+ test_rule_type,
+ name,
+ srcs,
+ deps,
+ test_only_deps = None,
+ plugins = None,
+ javacopts = None,
+ lib_javacopts = None,
+ test_javacopts = None,
+ functional = True):
+ _gen_tests(
+ library_rule_type,
+ test_rule_type,
+ name,
+ srcs,
+ deps,
+ test_only_deps,
+ plugins,
+ javacopts,
+ lib_javacopts,
+ test_javacopts,
+ )
-def _gen_tests(library_rule_type, test_rule_type, name, srcs, deps, test_only_deps,
- plugins, javacopts, lib_javacopts, test_javacopts, variant_name=None):
- if variant_name:
- suffix = "_" + variant_name
- tags = [variant_name]
- # Add jvm_flags so that the mode can be accessed from within tests.
- jvm_flags = ["-Ddagger.mode=" + variant_name]
- else:
- suffix = ""
- tags = []
- jvm_flags = []
+ if functional:
+ for (variant_name, extra_javacopts) in BUILD_VARIANTS.items():
+ variant_javacopts = (javacopts or []) + extra_javacopts
+ _gen_tests(
+ library_rule_type,
+ test_rule_type,
+ name,
+ srcs,
+ deps,
+ test_only_deps,
+ plugins,
+ variant_javacopts,
+ lib_javacopts,
+ test_javacopts,
+ variant_name,
+ )
- test_files = []
- supporting_files = []
+def _gen_tests(
+ library_rule_type,
+ test_rule_type,
+ name,
+ srcs,
+ deps,
+ test_only_deps,
+ plugins,
+ javacopts,
+ lib_javacopts,
+ test_javacopts,
+ variant_name = None):
+ if variant_name:
+ suffix = "_" + variant_name
+ tags = [variant_name]
- for src in srcs:
- if src.endswith("Test.java"):
- test_files.append(src)
+ # Add jvm_flags so that the mode can be accessed from within tests.
+ jvm_flags = ["-Ddagger.mode=" + variant_name]
else:
- supporting_files.append(src)
+ suffix = ""
+ tags = []
+ jvm_flags = []
- if not test_only_deps:
- test_only_deps = []
+ test_files = []
+ supporting_files = []
- test_deps = test_only_deps + deps
- if supporting_files:
- supporting_files_name = name + suffix + "_lib"
- test_deps.append(":" + supporting_files_name)
- library_rule_type(
- name = supporting_files_name,
- deps = deps,
- srcs = supporting_files,
- plugins = plugins,
- javacopts = (javacopts or []) + (lib_javacopts or []),
- tags = tags,
- testonly = 1,
- )
+ for src in srcs:
+ if src.endswith("Test.java"):
+ test_files.append(src)
+ else:
+ supporting_files.append(src)
- for test_file in test_files:
- test_name = test_file.replace(".java", "")
- prefix_path = "src/test/java/"
- package_name = native.package_name()
- if package_name.find("javatests/") != -1:
- prefix_path = "javatests/"
- test_class = (package_name + "/" + test_name).rpartition(prefix_path)[2].replace("/",".")
- test_rule_type(
- name = test_name + suffix,
- deps = test_deps,
- srcs = [test_file],
- plugins = plugins,
- javacopts = (javacopts or []) + (test_javacopts or []),
- jvm_flags = jvm_flags,
- tags = tags,
- test_class = test_class,
- )
+ if not test_only_deps:
+ test_only_deps = []
+
+ test_deps = test_only_deps + deps
+ if supporting_files:
+ supporting_files_name = name + suffix + "_lib"
+ test_deps.append(":" + supporting_files_name)
+ library_rule_type(
+ name = supporting_files_name,
+ testonly = 1,
+ srcs = supporting_files,
+ javacopts = (javacopts or []) + (lib_javacopts or []),
+ plugins = plugins,
+ tags = tags,
+ deps = deps,
+ )
+
+ for test_file in test_files:
+ test_name = test_file.replace(".java", "")
+ prefix_path = "src/test/java/"
+ package_name = native.package_name()
+ if package_name.find("javatests/") != -1:
+ prefix_path = "javatests/"
+ test_class = (package_name + "/" + test_name).rpartition(prefix_path)[2].replace("/", ".")
+ test_rule_type(
+ name = test_name + suffix,
+ srcs = [test_file],
+ javacopts = (javacopts or []) + (test_javacopts or []),
+ jvm_flags = jvm_flags,
+ plugins = plugins,
+ tags = tags,
+ test_class = test_class,
+ deps = test_deps,
+ )