X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F33-receiver-misformed.t;fp=t%2F33-receiver-misformed.t;h=9fde631e53f0cd1b6205e52d1cecd553a2cb9dc1;hb=d4cad38280f090c2057f4df1d6ef1fce88ccbcc6;hp=0000000000000000000000000000000000000000;hpb=8ce9fd9d5f4e6197d1a33a3fd11953cc1dc3b31f;p=perl%2Fmodules%2FBit-MorseSignals.git diff --git a/t/33-receiver-misformed.t b/t/33-receiver-misformed.t new file mode 100644 index 0000000..9fde631 --- /dev/null +++ b/t/33-receiver-misformed.t @@ -0,0 +1,40 @@ +#!perl -T + +use strict; +use warnings; + +use utf8; + +use Test::More tests => 5; + +use Bit::MorseSignals::Receiver; + +my $hlagh; + +my $pants = new Bit::MorseSignals::Receiver done => sub { $hlagh = $_[1] }; + +my $wrong = "\x{FF}\x{FF}"; + +my @bits = split //, '001' . '010' . (unpack 'b*', $wrong) . '100'; +eval { + local $SIG{__WARN__} = sub { die "WARNED @_" }; + $pants->push for @bits; +}; +ok($@, 'invalid Storable data warns'); + +$pants->reset; +@bits = split //, '0001' . '001' . (unpack 'b*', $wrong) . '1000'; +eval { + local $SIG{__WARN__} = sub { die "WARNED @_" }; + $pants->push for @bits; +}; +ok(!$@, "third bit lit doesn't warn ($@)"); +is($hlagh, $wrong, 'third bit lit defaults to plain'); + +@bits = split //, '0001' . '110' . (unpack 'b*', $wrong) . '1000'; +eval { + local $SIG{__WARN__} = sub { die "WARNED @_" }; + $pants->push for @bits; +}; +ok(!$@, "unused type doesn't warn ($@)"); +is($hlagh, $wrong, 'unused type returns raw data');