use strict; use warnings; BEGIN { eval { use autodie }; } use Test::More; use Test::FailWarnings; plan tests => 4; use IO::Framed::ReadWrite::Blocking (); use IO::Framed::ReadWrite::NonBlocking (); pipe( my $r, my $w ); my $blk = IO::Framed::ReadWrite::Blocking->new( $r, $w ); my $nblk = IO::Framed::ReadWrite::NonBlocking->new( $r, $w ); $blk->write(123); is( $blk->read(3), 123, 'blocking I/O read and write' ); #---------------------------------------------------------------------- is( $nblk->get_write_queue_count(), 0, 'write queue' ); $nblk->write(456); is( $nblk->get_write_queue_count(), 1, 'write queue, populated' ); 1 while !$nblk->flush_write_queue(); my $in; ($in = $blk->read(3)) while !$in; is( $in, 456, 'read from non-blocking' );