Files
Danny MöschandGitHub 1c0d28fd0d Compare rule IDs and configurations with reference (#5510)
This new test ensures that rule IDs and their option names do not get
changed inadvertently.

The file can easily be updated by running:

```bash
swift run swiftlint rules --config-only --default-config > Tests/IntegrationTests/default_rule_configurations.yml
```
2024-03-26 19:07:39 +01:00

187 lines
4.1 KiB
Python

load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library", "swift_test")
exports_files(["BUILD"])
copts = ["-enable-upcoming-feature", "ExistentialAny"]
# CLITests
swift_library(
name = "CLITests.library",
testonly = True,
srcs = glob(["CLITests/**/*.swift"]),
module_name = "CLITests",
package_name = "SwiftLint",
deps = [
"//:swiftlint.library",
],
copts = copts,
)
swift_test(
name = "CLITests",
visibility = ["//visibility:public"],
deps = [":CLITests.library"],
)
# MacroTests
swift_library(
name = "MacroTests.library",
testonly = True,
srcs = glob(["MacroTests/**/*.swift"]),
module_name = "MacroTests",
deps = [
"//:SwiftLintCoreMacrosLib",
"@SwiftSyntax//:SwiftSyntaxMacrosTestSupport_opt",
],
copts = copts,
)
swift_test(
name = "MacroTests",
visibility = ["//visibility:public"],
deps = [":MacroTests.library"],
)
# SwiftLintTestHelpers
swift_library(
name = "SwiftLintTestHelpers",
testonly = True,
srcs = glob(["SwiftLintTestHelpers/**/*.swift"]),
module_name = "SwiftLintTestHelpers",
package_name = "SwiftLint",
deps = [
"//:SwiftLintFramework",
],
copts = copts,
)
# SwiftLintFrameworkTests
filegroup(
name = "SwiftLintFrameworkTestsSources",
srcs = glob(
["SwiftLintFrameworkTests/**/*.swift"],
exclude = [
"SwiftLintFrameworkTests/Resources/**",
# Bazel doesn't support paths with spaces in them
"SwiftLintFrameworkTests/FileNameNoSpaceRuleTests.swift",
],
),
)
filegroup(
name = "SwiftLintFrameworkTestsData",
srcs = glob(
["**/**"],
# Bazel doesn't support paths with spaces in them
exclude = ["SwiftLintFrameworkTests/Resources/FileNameNoSpaceRuleFixtures/**"],
),
visibility = ["//visibility:public"],
)
swift_library(
name = "SwiftLintFrameworkTests.library",
testonly = True,
srcs = [":SwiftLintFrameworkTestsSources"],
module_name = "SwiftLintFrameworkTests",
package_name = "SwiftLint",
deps = [
":SwiftLintTestHelpers",
],
copts = copts,
)
swift_test(
name = "SwiftLintFrameworkTests",
data = glob(
["SwiftLintFrameworkTests/Resources/**"],
# Bazel doesn't support paths with spaces in them
exclude = ["SwiftLintFrameworkTests/Resources/FileNameNoSpaceRuleFixtures/**"],
),
visibility = ["//visibility:public"],
deps = [":SwiftLintFrameworkTests.library"],
)
# GeneratedTests
swift_library(
name = "GeneratedTests.library",
testonly = True,
srcs = ["GeneratedTests/GeneratedTests.swift"],
module_name = "GeneratedTests",
package_name = "SwiftLint",
deps = [
":SwiftLintTestHelpers",
],
copts = copts,
)
swift_test(
name = "GeneratedTests",
visibility = ["//visibility:public"],
deps = [":GeneratedTests.library"],
)
# IntegrationTests
swift_library(
name = "IntegrationTests.library",
testonly = True,
srcs = ["IntegrationTests/IntegrationTests.swift"],
module_name = "IntegrationTests",
package_name = "SwiftLint",
deps = [
":SwiftLintTestHelpers",
],
copts = copts,
)
swift_test(
name = "IntegrationTests",
data = [
"//:LintInputs",
"IntegrationTests/default_rule_configurations.yml"
],
visibility = ["//visibility:public"],
deps = [":IntegrationTests.library"],
)
# ExtraRulesTests
genrule(
name = "ExtraRulesLinuxMain",
outs = ["main.swift"],
cmd = """
echo "import XCTest
XCTMain([testCase(ExtraRulesTests.allTests)])" >> $(OUTS)
""",
)
swift_library(
name = "ExtraRulesTests.library",
testonly = True,
srcs = [
"ExtraRulesTests/ExtraRulesTests.swift",
] + select({
"@platforms//os:linux": [":ExtraRulesLinuxMain"],
"//conditions:default": [],
}),
module_name = "ExtraRulesTests",
package_name = "SwiftLint",
deps = [
":SwiftLintTestHelpers",
],
)
swift_test(
name = "ExtraRulesTests",
visibility = ["//visibility:public"],
deps = [
":ExtraRulesTests.library",
],
)