From 7a69537ebeb1bc6db660f3babdd4dff37e3a9848 Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Sun, 26 Feb 2023 17:06:01 +0200 Subject: [PATCH] Unit tests - Added a unit test for timeouts --- source/libsnooze/event.d | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/source/libsnooze/event.d b/source/libsnooze/event.d index f8c4bb0..78f0dc8 100644 --- a/source/libsnooze/event.d +++ b/source/libsnooze/event.d @@ -335,4 +335,35 @@ unittest { assert(true); } +} + +unittest +{ + Event event = new Event(); + + class TestThread : Thread + { + private Event event; + + this(Event event) + { + super(&worker); + this.event = event; + } + + public void worker() + { + writeln("("~to!(string)(Thread.getThis().id())~") Thread is waiting..."); + + /* Here we test timeout, we never notify so this should timeout and return false */ + assert(event.wait(dur!("seconds")(2)) == false); + writeln("("~to!(string)(Thread.getThis().id())~") Thread is waiting... [done]"); + } + } + + TestThread thread1 = new TestThread(event); + thread1.start(); + + /* Wait for the thread to exit */ + thread1.join(); } \ No newline at end of file