blob: 1f654a1018cbbd1103317ddd6cdd2a42126e2725 [file] [log] [blame]
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
load(":stardoc_test.bzl", "self_gen_test", "stardoc_test")
package(
default_applicable_licenses = ["//:license"],
default_testonly = True,
)
licenses(["notice"]) # Apache 2.0
self_gen_test(
name = "stardoc_self_gen_test",
golden_file = "//stardoc:stardoc_doc.md",
stardoc_doc = "//:stardoc_rule_doc",
# stardoc_doc.md output was generated with Bazel HEAD on 2024-06-12 and may differ in other versions
tags = [
"bazel_8",
"manual",
],
)
exports_files(["testdata/fakedeps/dep.bzl"])
stardoc_test(
name = "input_template_test",
aspect_template = "testdata/input_template_test/aspect.vm",
func_template = "testdata/input_template_test/func.vm",
golden_file = "testdata/input_template_test/golden.md",
header_template = "testdata/input_template_test/header.vm",
input_file = "testdata/input_template_test/input.bzl",
provider_template = "testdata/input_template_test/provider.vm",
rule_template = "testdata/input_template_test/rule.vm",
)
stardoc_test(
name = "angle_bracket_test",
golden_file = "testdata/angle_bracket_test/golden.md",
input_file = "testdata/angle_bracket_test/input.bzl",
)
stardoc_test(
name = "proto_format_test",
format = "proto",
golden_file = "testdata/proto_format_test/golden.binaryproto",
input_file = "testdata/proto_format_test/input.bzl",
# Golden output was generated with Bazel 7.2 and may differ in other versions
tags = [
"bazel_7_2",
"manual",
],
)
stardoc_test(
name = "cc_api_test",
golden_file = "testdata/cc_api_test/golden.md",
input_file = "testdata/cc_api_test/input.bzl",
)
stardoc_test(
name = "simple_test",
golden_file = "testdata/simple_test/golden.md",
input_file = "testdata/simple_test/input.bzl",
symbol_names = ["my_rule"],
)
stardoc_test(
name = "repo_rules_test",
golden_file = "testdata/repo_rules_test/golden.md",
input_file = "testdata/repo_rules_test/input.bzl",
)
stardoc_test(
name = "module_extension_test",
golden_file = "testdata/module_extension_test/golden.md",
input_file = "testdata/module_extension_test/input.bzl",
)
stardoc_test(
name = "unknown_name_test",
golden_file = "testdata/unknown_name_test/golden.md",
input_file = "testdata/unknown_name_test/input.bzl",
)
stardoc_test(
name = "multiple_rules_test",
golden_file = "testdata/multiple_rules_test/golden.md",
input_file = "testdata/multiple_rules_test/input.bzl",
)
stardoc_test(
name = "apple_basic_test",
golden_file = "testdata/apple_basic_test/golden.md",
input_file = "testdata/apple_basic_test/input.bzl",
symbol_names = ["apple_related_rule"],
)
stardoc_test(
name = "cpp_basic_test",
golden_file = "testdata/cpp_basic_test/golden.md",
input_file = "testdata/cpp_basic_test/input.bzl",
symbol_names = ["cpp_related_rule"],
)
stardoc_test(
name = "java_basic_test",
golden_file = "testdata/java_basic_test/golden.md",
input_file = "testdata/java_basic_test/input.bzl",
symbol_names = ["java_related_rule"],
)
stardoc_test(
name = "multiple_files_test",
golden_file = "testdata/multiple_files_test/golden.md",
input_file = "testdata/multiple_files_test/input.bzl",
deps = [
"testdata/multiple_files_test/dep.bzl",
"testdata/multiple_files_test/inner_dep.bzl",
],
)
stardoc_test(
name = "multiple_files_noenable_bzlmod_test",
golden_file = "testdata/multiple_files_test/noenable_bzlmod_golden.md",
input_file = "testdata/multiple_files_test/input.bzl",
tags = [
"manual",
"noenable_bzlmod",
],
deps = [
"testdata/multiple_files_test/dep.bzl",
"testdata/multiple_files_test/inner_dep.bzl",
],
)
stardoc_test(
name = "same_level_file_test",
golden_file = "//test/testdata/same_level_file_test:golden.md",
input_file = "//test/testdata/same_level_file_test:input.bzl",
symbol_names = ["my_rule"],
deps = [
"//test/testdata/same_level_file_test:dep.bzl",
],
)
stardoc_test(
name = "same_level_file_noenable_bzlmod_test",
golden_file = "//test/testdata/same_level_file_test:noenable_bzlmod_golden.md",
input_file = "//test/testdata/same_level_file_test:input.bzl",
symbol_names = ["my_rule"],
tags = [
"manual",
"noenable_bzlmod",
],
deps = [
"//test/testdata/same_level_file_test:dep.bzl",
],
)
stardoc_test(
name = "misc_apis_test",
golden_file = "testdata/misc_apis_test/golden.md",
input_file = "testdata/misc_apis_test/input.bzl",
)
stardoc_test(
name = "attribute_types_test",
golden_file = "testdata/attribute_types_test/golden.md",
input_file = "testdata/attribute_types_test/input.bzl",
symbol_names = ["my_rule"],
)
stardoc_test(
name = "filter_rules_test",
golden_file = "testdata/filter_rules_test/golden.md",
input_file = "testdata/filter_rules_test/input.bzl",
symbol_names = [
"my_rule",
"allowlisted_dep_rule",
],
deps = [
"testdata/filter_rules_test/dep.bzl",
],
)
stardoc_test(
name = "provider_basic_test",
golden_file = "testdata/provider_basic_test/golden.md",
input_file = "testdata/provider_basic_test/input.bzl",
)
stardoc_test(
name = "function_basic_test",
golden_file = "testdata/function_basic_test/golden.md",
input_file = "testdata/function_basic_test/input.bzl",
)
stardoc_test(
name = "function_wrap_multiple_lines_test",
golden_file = "testdata/function_wrap_multiple_lines_test/golden.md",
input_file = "testdata/function_wrap_multiple_lines_test/input.bzl",
)
stardoc_test(
name = "namespace_test",
golden_file = "testdata/namespace_test/golden.md",
input_file = "testdata/namespace_test/input.bzl",
)
stardoc_test(
name = "namespace_test_with_allowlist",
golden_file = "testdata/namespace_test/golden.md",
input_file = "testdata/namespace_test/input.bzl",
symbol_names = [
"my_namespace",
],
)
stardoc_test(
name = "multi_level_namespace_test",
golden_file = "testdata/multi_level_namespace_test/golden.md",
input_file = "testdata/multi_level_namespace_test/input.bzl",
)
stardoc_test(
name = "multi_level_namespace_test_with_allowlist",
golden_file = "testdata/multi_level_namespace_test_with_allowlist/golden.md",
input_file = "testdata/multi_level_namespace_test_with_allowlist/input.bzl",
symbol_names = [
"my_namespace",
"other_namespace.foo.nothing",
],
)
stardoc_test(
name = "macro_kwargs_legacy_test",
golden_file = "testdata/macro_kwargs_test/legacy_golden.md",
input_file = "testdata/macro_kwargs_test/input.bzl",
# Golden output was generated with Bazel 7.2 and may differ in other versions
tags = [
"bazel_7_2",
"manual",
],
)
stardoc_test(
name = "macro_kwargs_test",
golden_file = "testdata/macro_kwargs_test/golden.md",
input_file = "testdata/macro_kwargs_test/input.bzl",
# Golden output was generated with Bazel HEAD on 2024-06-12 and may differ in other versions
tags = [
"bazel_8",
"manual",
],
)
stardoc_test(
name = "pure_markdown_template_test",
golden_file = "testdata/pure_markdown_template_test/golden.md",
input_file = "testdata/pure_markdown_template_test/input.bzl",
)
stardoc_test(
name = "py_rule_test",
golden_file = "testdata/py_rule_test/golden.md",
input_file = "testdata/py_rule_test/input.bzl",
symbol_names = ["py_related_rule"],
)
stardoc_test(
name = "struct_default_value_test",
golden_file = "testdata/struct_default_value_test/golden.md",
input_file = "testdata/struct_default_value_test/input.bzl",
)
stardoc_test(
name = "aspect_test",
golden_file = "testdata/aspect_test/golden.md",
input_file = "testdata/aspect_test/input.bzl",
)
stardoc_test(
name = "providers_for_attributes_test",
golden_file = "testdata/providers_for_attributes_test/golden.md",
input_file = "testdata/providers_for_attributes_test/input.bzl",
deps = [
"testdata/providers_for_attributes_test/dep.bzl",
],
)
stardoc_test(
name = "html_tables_template_test",
golden_file = "testdata/html_tables_template_test/golden.md",
input_file = "testdata/html_tables_template_test/input.bzl",
test = "html_tables",
)
stardoc_test(
name = "attribute_defaults_test",
golden_file = "testdata/attribute_defaults_test/golden.md",
input_file = "testdata/attribute_defaults_test/input.bzl",
)
stardoc_test(
name = "config_apis_test",
golden_file = "testdata/config_apis_test/golden.md",
input_file = "testdata/config_apis_test/input.bzl",
)
stardoc_test(
name = "footer_test",
footer_template = "testdata/footer_test/footer_template.vm",
golden_file = "testdata/footer_test/golden.md",
input_file = "testdata/footer_test/input.bzl",
)
bzl_library(
name = "table_of_contents_test_deps",
srcs = [
"testdata/aspect_test/input.bzl",
"testdata/function_basic_test/input.bzl",
"testdata/module_extension_test/input.bzl",
"testdata/provider_basic_test/input.bzl",
"testdata/repo_rules_test/input.bzl",
"testdata/simple_test/input.bzl",
],
)
stardoc_test(
name = "table_of_contents_test",
golden_file = "testdata/table_of_contents_test/golden.md",
input_file = "testdata/table_of_contents_test/input.bzl",
table_of_contents_template = "//stardoc:templates/markdown_tables/table_of_contents.vm",
deps = [":table_of_contents_test_deps"],
)
stardoc_test(
name = "table_of_contents_noenable_bzlmod_test",
golden_file = "testdata/table_of_contents_test/noenable_bzlmod_golden.md",
input_file = "testdata/table_of_contents_test/input.bzl",
table_of_contents_template = "//stardoc:templates/markdown_tables/table_of_contents.vm",
tags = [
"manual",
"noenable_bzlmod",
],
deps = [":table_of_contents_test_deps"],
)
stardoc_test(
name = "stamping_test",
golden_file = "testdata/stamping_test/golden.md",
header_template = "testdata/stamping_test/stamping_header.vm",
input_file = "testdata/stamping_test/input.bzl",
stamp = 1,
)
stardoc_test(
name = "stamping_with_stamping_off_test",
golden_file = "testdata/stamping_test/golden_stamping_off.md",
header_template = "testdata/stamping_test/stamping_header_stamping_off.vm",
input_file = "testdata/stamping_test/input.bzl",
stamp = 0,
)
sh_test(
name = "local_repository_test",
srcs = ["diff_test_runner.sh"],
args = [
"$(location @local_repository_test//:output.md)",
"$(location @local_repository_test//:golden.md)",
],
data = [
"@local_repository_test//:golden.md",
"@local_repository_test//:output.md",
],
tags = [
"manual",
"noenable_bzlmod",
],
)
# Consistency tests for WORKSPACE-related .bzl files vs. MODULE.bazel
genrule(
name = "stardoc_maven_artifacts_in_deps_bzl",
srcs = ["//:deps.bzl"],
outs = ["stardoc_maven_artifacts_in_deps_bzl.txt"],
# Remove all lines except those from 'STARDOC_MAVEN_ARTIFACTS = [' to next ']'
cmd = "sed -e '/STARDOC_MAVEN_ARTIFACTS = \\[/,/\\]/!d' $< >$@",
)
genrule(
name = "stardoc_maven_artifacts_in_module_bazel",
srcs = ["//:MODULE.bazel"],
outs = ["stardoc_maven_artifacts_in_module_bazel.txt"],
# Remove all lines except those from 'STARDOC_MAVEN_ARTIFACTS = [' to next ']'
cmd = "sed -e '/STARDOC_MAVEN_ARTIFACTS = \\[/,/\\]/!d' $< >$@",
)
diff_test(
name = "stardoc_maven_artifacts_consistency_test",
failure_message = "STARDOC_MAVEN_ARTIFACTS in deps.bzl and MODULE.bazel are inconsistent",
file1 = "stardoc_maven_artifacts_in_deps_bzl",
file2 = "stardoc_maven_artifacts_in_module_bazel",
)
genrule(
name = "stardoc_version_in_version_bzl",
srcs = ["//:version.bzl"],
outs = ["stardoc_version_in_version_bzl.txt"],
# Find first line starting containing 'version = ' and extract the string value
cmd = "grep -m 1 'version = ' $< | sed -e 's/.*version = \\(\".*\"\\).*/\\1/' >$@",
)
genrule(
name = "stardoc_version_in_module_bazel",
srcs = ["//:MODULE.bazel"],
outs = ["stardoc_version_in_module_bazel.txt"],
# Find first line starting containing 'version = ' and extract the string value
cmd = "grep -m 1 'version = ' $< | sed -e 's/.*version = \\(\".*\"\\).*/\\1/' >$@",
)
diff_test(
name = "stardoc_version_consistency_test",
failure_message = "version in version.bzl and MODULE.bazel is inconsistent",
file1 = "stardoc_version_in_version_bzl",
file2 = "stardoc_version_in_module_bazel",
)