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();
}