| load("@apple_rules_lint//lint:defs.bzl", "get_lint_config") |
| load( |
| "@rules_rust//rust:defs.bzl", |
| "rustfmt_test", |
| _rust_binary = "rust_binary", |
| _rust_library = "rust_library", |
| _rust_test = "rust_test", |
| _rust_test_suite = "rust_test_suite", |
| ) |
| |
| def _wrap_with_fmt_test(name, tags): |
| config = get_lint_config("rust-rustfmt", tags) |
| if config: |
| rustfmt_test( |
| name = "%s-fmt" % name, |
| targets = [ |
| ":%s" % name, |
| ], |
| tags = [ |
| "lint", |
| "rust-rustfmt", |
| "rustfmt", |
| ], |
| ) |
| |
| def rust_library(name, **kwargs): |
| _rust_library(name = name, **kwargs) |
| _wrap_with_fmt_test(name, kwargs.get("tags", [])) |
| |
| def rust_binary(name, **kwargs): |
| _rust_binary(name = name, **kwargs) |
| _wrap_with_fmt_test(name, kwargs.get("tags", [])) |
| |
| def rust_test(name, **kwargs): |
| _rust_test(name = name, **kwargs) |
| _wrap_with_fmt_test(name, kwargs.get("tags", [])) |
| |
| def rust_test_suite(name, srcs = [], **kwargs): |
| _rust_test_suite(name = name, srcs = srcs, **kwargs) |
| for src in srcs: |
| if not src.endswith(".rs"): |
| fail("srcs should have `.rs` extensions") |
| |
| # Prefixed with `name` to allow parameterization with macros |
| # The test name should not end with `.rs` |
| test_name = name + "_" + src[:-3] + "_test" |
| _wrap_with_fmt_test(test_name, kwargs.get("tags", [])) |