diff options
author | ronshapiro <ronshapiro@google.com> | 2018-06-07 20:47:25 -0700 |
---|---|---|
committer | Ron Shapiro <shapiro.rd@gmail.com> | 2018-06-12 19:25:23 -0400 |
commit | c7fb974968a6e29a7ee3b63789891a13c8a568e7 (patch) | |
tree | 9521037561c23d7c4d5bdb3db16d70b95125bfa8 /test_defs.bzl | |
parent | d55c02d89526a4217c7720cc540e6e0ffca5fc0a (diff) | |
download | dagger2-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.bzl | 208 |
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, + ) |