init
Description:
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 |
| argv |
address of the |