init


Description:

[ Version ( since = "2.16" ) ]
public void init (ref unowned string[] args, ...)

Initializes the GLib testing framework.

This includes seeding the test random number generator, setting the program name, and parsing test-related commandline args.

This should be called before calling any other `g_test_*()` functions.

The following arguments are understood:

  • `-l`: List test cases available in a test executable.
  • `--seed=SEED`: Provide a random seed to reproduce test runs using random numbers.
  • `--verbose`: Run tests verbosely.
  • `-q`, `--quiet`: Run tests quietly.
  • `-p PATH`: Execute all tests matching the given path.
  • `-s PATH`: Skip all tests matching the given path. This can also be used to force a test to run that would otherwise be skipped (ie, a test whose name contains "/subprocess").
  • `-m {perf|slow|thorough|quick|undefined|no-undefined}`: Execute tests according to these test modes:

    `perf`: Performance tests, may take long and report results (off by default).

    `slow`, `thorough`: Slow and thorough tests, may take quite long and maximize coverage (off by default).

    `quick`: Quick tests, should run really quickly and give good coverage (the default).

    `undefined`: Tests for undefined behaviour, may provoke programming errors under [func@GLib.test_trap_subprocess] or [ func@GLib.test_expect_message] to check that appropriate assertions or warnings are given (the default).

    `no-undefined`: Avoid tests for undefined behaviour.

  • `--debug-log`: Debug test logging output.

Any parsed arguments are removed from argv, and argc is adjust accordingly.

The following options are supported:

  • `G_TEST_OPTION_NO_PRGNAME`: Causes init to not call [func@GLib.set_prgname]. Since. 2.84
  • `G_TEST_OPTION_ISOLATE_DIRS`: Creates a unique temporary directory for each unit test and sets XDG directories to point there for the duration of the unit test. See [const@GLib.TEST_OPTION_ISOLATE_DIRS].
  • `G_TEST_OPTION_NONFATAL_ASSERTIONS`: This has the same effect as [func@GLib.test_set_nonfatal_assertions]. Since 2.84

Since 2.58, if tests are compiled with `G_DISABLE_ASSERT` defined, `g_test_init()` will print an error and exit. This is to prevent no-op tests from being executed, as [func@GLib.assert] is commonly (erroneously) used in unit tests, and is a no-op when compiled with `G_DISABLE_ASSERT`. Ensure your tests are compiled without `G_DISABLE_ASSERT` defined.

Example: Test, initialization:

public static int main (string[] args) {
// Use ./test --help to review our options
Test.init (ref args);

// Register test cases via Test.add_func & friends

Test.run ();
return 0;
}

valac --pkg glib-2.0 GLib.Test.init.vala

Parameters:

...

`NULL`-terminated list of special options

argc

address of the argc parameter of `main()`

argv

address of the argv parameter of `main()`


Namespace: GLib.Test
Package: glib-2.0