code: def benchmark_list(
      ctx,
      rev_or_path,
      src,
      preserve,
      output,
      cmake_extras,
      java_home,
      java_options,
      build_extras,
      benchmark_extras,
      language,
      **kwargs,
  ):
      """List benchmark suite."""
      with tmpdir(preserve=preserve) as root:
          logger.debug("Running benchmark {}".format(rev_or_path))
  
          if language == "cpp":
              conf = CppBenchmarkRunner.default_configuration(
                  cmake_extras=cmake_extras, **kwargs
              )
  
              runner_base = CppBenchmarkRunner.from_rev_or_path(
                  src, root, rev_or_path, conf
              )
  
          elif language == "java":
              for key in {
                  "cpp_package_prefix",
                  "cxx_flags",
                  "cxx",
                  "cc",
              }:
                  del kwargs[key]
              conf = JavaBenchmarkRunner.default_configuration(
                  java_home=java_home,
                  java_options=java_options,
                  build_extras=build_extras,
                  benchmark_extras=benchmark_extras,
                  **kwargs,
              )
  
              runner_base = JavaBenchmarkRunner.from_rev_or_path(
                  src, root, rev_or_path, conf
              )
  
          for b in runner_base.list_benchmarks:
              click.echo(b, file=output or sys.stdout)
  
imports: from collections import namedtuple
  from io import StringIO
  import click
  import json
  import logging
  import os
  import pathlib
  import sys
  from .benchmark.codec import JsonEncoder
  from .benchmark.compare import RunnerComparator, DEFAULT_THRESHOLD
  from .benchmark.runner import CppBenchmarkRunner, JavaBenchmarkRunner
  from .compat import _import_pandas
  from .lang.cpp import CppCMakeDefinition, CppConfiguration
  from .utils.cli import ArrowBool, validate_arrow_sources, add_optional_command
  from .utils.lint import linter, python_numpydoc, LintValidationException
  from .utils.logger import logger, ctx
  from .utils.source import ArrowSources
  from .utils.tmpdir import tmpdir
label_desc: Use image node_id 13 for calling a global function with example usage: benchmark_list(ctx, rev_or_path, src, preserve, output, cmake_extras, java_home, java_options, build_extras, benchmark_extras, language) without return types