| load("@rules_shell//shell:sh_test.bzl", "sh_test") | |
| package(default_applicable_licenses = ["//:license"]) | |
| config_setting( | |
| name = "android", | |
| constraint_values = ["@platforms//os:android"], | |
| ) | |
| config_setting( | |
| name = "wasm", | |
| constraint_values = ["@platforms//os:emscripten"], | |
| ) | |
| PLATFORM_ARGS = select({ | |
| ":android": ["android"], | |
| ":wasm": ["wasm"], | |
| "//conditions:default": ["not_supported"], | |
| }) | |
| _NM_TOOL_TARGET = [] | |
| _NM_TOOL_PATH = ["nm"] | |
| # This works on all platforms today because unused symbols are correctly stripped. | |
| sh_test( | |
| name = "unused_symbols_test", | |
| srcs = ["verify_unused_symbols.sh"], | |
| args = [ | |
| "$(rootpath //rust/test/treeshaking/base:treeshaking_app)", | |
| ] + _NM_TOOL_PATH + PLATFORM_ARGS, | |
| data = [ | |
| "//rust/test/treeshaking/base:treeshaking_app", | |
| ] + _NM_TOOL_TARGET, | |
| ) | |
| # This only works on platforms with panic=abort or panic=immediate-abort. | |
| sh_test( | |
| name = "except_tables_test", | |
| srcs = ["verify_except_tables.sh"], | |
| args = [ | |
| "$(rootpath //rust/test/treeshaking/base:treeshaking_app)", | |
| "$(rootpath //rust/test/treeshaking/test:treeshaking_app)", | |
| ] + _NM_TOOL_PATH + PLATFORM_ARGS, | |
| data = [ | |
| "//rust/test/treeshaking/base:treeshaking_app", | |
| "//rust/test/treeshaking/test:treeshaking_app", | |
| ] + _NM_TOOL_TARGET, | |
| ) |