Function

GLib-2.0GLibtest_expect_messageSince 2.34

  • Indicates that a message with the given log_domain and log_level, with text matching pattern, is expected to be logged.

    When this message is logged, it will not be printed, and the test case will not abort.

    This API may only be used with the old logging API (GLib.log without G_LOG_USE_STRUCTURED defined). It will not work with the structured logging API. See Testing for Messages.

    Use GLib.test_assert_expected_messages to assert that all previously-expected messages have been seen and suppressed.

    You can call this multiple times in a row, if multiple messages are expected as a result of a single call. (The messages must appear in the same order as the calls to GLib.test_expect_message.)

    For example:

    // `g_main_context_push_thread_default()` should fail if the
    // context is already owned by another thread.
    g_test_expect_message (G_LOG_DOMAIN,
    G_LOG_LEVEL_CRITICAL,
    "assertion*acquired_context*failed");
    g_main_context_push_thread_default (bad_context);
    g_test_assert_expected_messages ();

    Note that you cannot use this to test GLib.error messages, since GLib.error intentionally never returns even if the program doesn’t abort; use GLib.test_trap_subprocess in this case.

    If messages at GLib.LogLevelFlags.LEVEL_DEBUG are emitted, but not explicitly expected via GLib.test_expect_message then they will be ignored.

    Parameters

    • log_domain: string

      the log domain of the message

    • log_level: LogLevelFlags

      the log level of the message

    • pattern: string

      a glob-style pattern (see GLib.PatternSpec)

    Returns void

    2.34