name: test
returns: void
description: |
  Defines a test to run with the test harness. Takes two positional
  arguments, the first is the name of the test and the second is the
  executable to run. The executable can be an [[@exe]] object returned by
  [[executable]] or an [[@external_program]] object] returned by
  [[find_program]].

  *(since 0.55.0)* When cross compiling, if an exe_wrapper is needed and
  defined the environment variable `MESON_EXE_WRAPPER` will be set to
  the string value of that wrapper (implementation detail: using
  `mesonlib.join_args`). Test scripts may use this to run cross built
  binaries. If your test needs `MESON_EXE_WRAPPER` in cross build
  situations it is your responsibility to return code 77 to tell the
  harness to report "skip".

  By default, environment variable
  [`MALLOC_PERTURB_`](http://man7.org/linux/man-pages/man3/mallopt.3.html)
  is automatically set by `meson test` to a random value between 1..255.
  This can help find memory leaks on configurations using glibc,
  including with non-GCC compilers. However, this can have a performance
  impact, and may fail a test due to external libraries whose internals
  are out of the user's control. To check if this feature is causing an
  expected runtime crash, disable the feature by temporarily setting
  environment variable `MALLOC_PERTURB_=0`. While it's preferable to
  only temporarily disable this check, if a project requires permanent
  disabling of this check in meson.build do like:

  ```meson
  nomalloc = environment({'MALLOC_PERTURB_': '0'})

  test(..., env: nomalloc, ...)
  ```

  By default, the environment variables `ASAN_OPTIONS`, `UBSAN_OPTIONS`,
  and `MSAN_OPTIONS` are set to enable aborting on detected violations and to
  give a backtrace. To suppress this, `ASAN_OPTIONS`, `UBSAN_OPTIONS`, or
  `MSAN_OPTIONS` can be set in the environment.

  In addition to running individual executables as test cases, `test()`
  can also be used to invoke an external test harness.  In this case,
  it is best to use `verbose: true` *(since 0.62.0)* and, if supported
  by the external harness, `protocol: 'tap'` *(since 0.50.0)*.  This will
  ensure that Meson logs each subtest as it runs, instead of including
  the whole log at the end of the run.

  Defined tests can be run in a backend-agnostic way by calling
  `meson test` inside the build dir, or by using backend-specific
  commands, such as `ninja test` or `msbuild RUN_TESTS.vcxproj`.

posargs_inherit: benchmark
kwargs_inherit: benchmark

kwargs:
  is_parallel:
    type: bool
    default: true
    description: |
      when false, specifies that no other test must be
      running at the same time as this test
