Files
gtk-ahfail/crates/ahfail-gtklock/tests/benchmarks.rs
Asger Geel Weirsøe 8dd06377fc refactor: convert to Cargo workspace, move gtklock crate
Replaces the single-crate Cargo.toml with a workspace containing
ahfail-gtklock (migrated from root src/) and three stub crates
(ahfail-ui, ahfail-pam, ahfail-display). Updates meson.build to
build with -p ahfail-gtklock.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 16:23:31 +02:00

58 lines
1.5 KiB
Rust

use gtk::prelude::*;
use gtk::{gdk, gdk_pixbuf};
use gstreamer as gst;
use gstreamer_player as gst_player;
use std::time::Instant;
#[cfg(test)]
mod benchmarks {
use super::*;
use std::sync::Once;
static INIT: Once = Once::new();
fn init() {
INIT.call_once(|| {
gtk::init().unwrap();
gst::init().unwrap();
});
}
#[test]
fn bench_pixbuf_loading() {
init();
let start = Instant::now();
// Create a 1x1 pixbuf to simulate loading
let _pixbuf = gdk_pixbuf::Pixbuf::new(gdk_pixbuf::Colorspace::Rgb, false, 8, 220, 220).unwrap();
println!("Pixbuf creation: {:?}", start.elapsed());
}
#[test]
fn bench_animation_creation() {
init();
let start = Instant::now();
let _anim = gdk_pixbuf::PixbufSimpleAnim::new(220, 220, 12.0);
println!("Animation creation: {:?}", start.elapsed());
}
#[test]
fn bench_player_creation() {
init();
let start = Instant::now();
let _player = gst_player::Player::new(None, None);
println!("GstPlayer creation: {:?}", start.elapsed());
}
#[test]
fn bench_coord_calculation() {
use rand::Rng;
let start = Instant::now();
let mut rng = rand::thread_rng();
for _ in 0..1000 {
let _x = rng.gen_range(0..1920);
let _y = rng.gen_range(0..1080);
}
println!("1000 RNG calculations: {:?}", start.elapsed());
}
}