"""Shared private utilities.""" def _do_nothing_impl(ctx): _ = ctx # @unused return [] do_nothing = rule(implementation = _do_nothing_impl) def get_test_name_from_function(func): """Derives a suitable test name from a function. This can be used for better test feedback. Args: func: (callable) A test implementation or setup function. Returns: (str) The name of the given function, suitable as a test name. """ # Starlark currently stringifies a function as "", so we use # that knowledge to parse the "NAME" portion out. If this behavior ever # changes, we'll need to update this. # TODO(bazel-team): Expose a ._name field on functions to avoid this. func_name = str(func) func_name = func_name.partition("")[0] func_name = func_name.partition(" ")[0] # Strip leading/trailing underscores so that test functions can # have private names. This better allows unused tests to be flagged by # buildifier (indicating a bug or code to delete) return func_name.strip("_") get_function_name = get_test_name_from_function