1use strict; 2use warnings; 3 4use Thread::Semaphore; 5 6use Test::More 'tests' => 12; 7 8my $err = qr/^Semaphore .* is not .* integer: /; 9 10eval { Thread::Semaphore->new(undef); }; 11like($@, $err, $@); 12eval { Thread::Semaphore->new(0.5); }; 13like($@, $err, $@); 14eval { Thread::Semaphore->new('foo'); }; 15like($@, $err, $@); 16 17my $s = Thread::Semaphore->new(); 18ok($s, 'New semaphore'); 19 20eval { $s->down(undef); }; 21like($@, $err, $@); 22eval { $s->down(-1); }; 23like($@, $err, $@); 24eval { $s->down(1.5); }; 25like($@, $err, $@); 26eval { $s->down('foo'); }; 27like($@, $err, $@); 28 29eval { $s->up(undef); }; 30like($@, $err, $@); 31eval { $s->up(-1); }; 32like($@, $err, $@); 33eval { $s->up(1.5); }; 34like($@, $err, $@); 35eval { $s->up('foo'); }; 36like($@, $err, $@); 37 38exit(0); 39 40# EOF 41