| # Copyright 2018 The Bazel Authors. All rights reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| load("//kotlin:kotlin.bzl", "kt_jvm_test") |
| |
| def _get_class_name(kwargs): |
| if len(kwargs.get("srcs", [])) == 1: |
| return ( |
| native.package_name().replace("src/test/kotlin/", "") + |
| "." + kwargs["srcs"][0] |
| ).replace("/", ".").replace(".java", "").replace(".kt", "") |
| else: |
| return kwargs["test_classes"] |
| |
| def kt_rules_test(name, **kwargs): |
| kwargs.setdefault("size", "small") |
| kwargs["deps"] = kwargs.setdefault("deps", []) + ["//src/test/kotlin/io/bazel/kotlin/builder:test_lib"] |
| kwargs.setdefault("test_class", _get_class_name(kwargs)) |
| for f in kwargs.get("srcs"): |
| if f.endswith(".kt"): |
| kt_jvm_test(name = name, **kwargs) |
| return |
| native.java_test(name = name, **kwargs) |
| |
| def kt_rules_e2e_test(name, **kwargs): |
| kwargs.setdefault("size", "small") |
| kwargs["deps"] = kwargs.setdefault("deps", []) + ["//src/test/kotlin/io/bazel/kotlin:assertion_test_case"] |
| kwargs.setdefault("test_class", _get_class_name(kwargs)) |
| kt_jvm_test(name = name, **kwargs) |