From 852eff7457517966f98f9a936ac7d5762da7aa0c Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 11 Jul 2010 21:28:59 +0100 Subject: test for TT:Thread --- t/thread.t | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 t/thread.t (limited to 't/thread.t') diff --git a/t/thread.t b/t/thread.t new file mode 100644 index 0000000..e945832 --- /dev/null +++ b/t/thread.t @@ -0,0 +1,43 @@ +#!perl +use strict; +use warnings; +use Test::Most tests => 17, 'die'; +use threads; +use Thread::Task::Thread; + +is( scalar( threads->list ), 0, 'One thread exists' ); + +SCOPE: { + # Create the master thread + my $thread = Thread::Task::Thread->new->spawn; + isa_ok( $thread, 'Thread::Task::Thread' ); + is( $thread->wid, 1, '->wid ok' ); + isa_ok( $thread->queue, 'Thread::Queue' ); + isa_ok( $thread->thread, 'threads' ); + ok( !$thread->is_thread, '->is_thread is false' ); + my $tid = $thread->thread->tid; + ok( $tid, "Got thread id $tid" ); + + # Does the threads module agree it was created + my @threads = threads->list; + is( scalar(@threads), 1, 'Found one thread' ); + is( $threads[0]->tid, $tid, 'Found the expected thread id' ); + + # Initially, the thread should be running + ok( $thread->is_running, 'Thread is_running' ); + ok( !$thread->is_joinable, 'Thread is not is_joinable' ); + ok( !$thread->is_detached, 'Thread is not is_detached' ); + + # It should stay running + sleep 0.1; + ok( $thread->is_running, 'Thread is_running' ); + ok( !$thread->is_joinable, 'Thread is not is_joinable' ); + ok( !$thread->is_detached, 'Thread is not is_detached' ); + + # Instruct the master to shutdown, and give it a brief time to do so. + $thread->stop; + sleep 1; + ok( !$thread->thread, '->thread no longer exists' ); +} + +is( scalar( threads->list ), 0, 'One thread exists' ); -- cgit v1.2.3