Attribute Macro gtk4_macros::test

source · []
#[test]
Expand description

Attribute macro for declaring GTK tests.

Wraps the standard Rust test attribute with setup logic for GTK. All tests that call into GTK must use this attribute. This attribute can also be used on asynchronous functions; the asynchronous test will be run on the main thread context.

Technical Details

GTK is a single-threaded library, so Rust’s normal multi-threaded test behavior cannot be used. The #[gtk::test] attribute creates a main thread for GTK and runs all tests on that thread. This has the side effect of making all tests run serially, not in parallel.

Example

use gtk::prelude::*;

#[gtk::test]
fn test_button() {
    let button = gtk::Button::new();
    button.activate();
}