[poe-commits] SF.net SVN: poe: [2071] trunk/poe/tests/30_loops/00_base/wheel_readwrite.pm
Brought to you by:
rcaputo
From: <rc...@us...> - 2006-08-22 06:16:44
|
Revision: 2071 Author: rcaputo Date: 2006-08-21 23:16:35 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/poe/?rev=2071&view=rev Log Message: ----------- Disable a large chunk of tests under Tk because seek() fails. Tk doesn't support seek() in its Tk::IO handles. Modified Paths: -------------- trunk/poe/tests/30_loops/00_base/wheel_readwrite.pm Modified: trunk/poe/tests/30_loops/00_base/wheel_readwrite.pm =================================================================== --- trunk/poe/tests/30_loops/00_base/wheel_readwrite.pm 2006-08-21 14:41:12 UTC (rev 2070) +++ trunk/poe/tests/30_loops/00_base/wheel_readwrite.pm 2006-08-22 06:16:35 UTC (rev 2071) @@ -5,8 +5,10 @@ use IO::File; use Test::More tests => 28; -use POE qw(Filter::Map Driver::SysRW Pipe::TwoWay); - + +sub POE::Kernel::ASSERT_DEFAULT () { 1 } +use POE qw(Filter::Map Driver::SysRW Pipe::TwoWay); + sub DEBUG () { 0 } use_ok('POE::Wheel::ReadWrite'); @@ -32,8 +34,8 @@ $_[KERNEL]->alias_set('test_dispatcher'); }, run_next => sub { - if (@tests) { - warn "dispatching $tests[0]" if DEBUG; + if (@tests) { + warn "dispatching $tests[0]" if DEBUG; eval { (shift @tests)->() }; if ($@) { warn $@; exit 1; } # POE isn't very good at dieing hard @@ -48,7 +50,8 @@ } else { $_[HEAP]->{$_[ARG1]->ID}++; } - } + }, + _stop => sub { }, }, ); } @@ -82,7 +85,7 @@ # }}} # Part 1 - Check new() {{{ -sub part1 { +sub part1 { POE::Session->create( inline_states => { _start => sub { @@ -118,6 +121,7 @@ test_new("new(): mark events need levels", Handle => \*DATA, LowEvent => 'low', HighEvent => 'high'); }, + _stop => sub { }, }, ); } @@ -136,15 +140,22 @@ die "Couldn't create temporary file" unless defined $tmpfile; print $tmpfile $TMPDATA; seek $tmpfile, 0, 0 or - do { print STDERR "seek failed: $!"; exit 1 }; - - if ($^O eq "MSWin32") { - SKIP: { - skip( "part2 doesn't work on windows", 13 ); - } - $poe_kernel->post("test_dispatcher" => "run_next"); - return; + do { print STDERR "seek failed: $!"; exit 1 }; + + if (exists $INC{'Tk.pm'}) { + SKIP: { + skip( "part2 doesn't work with Tk", 13 ); + } + $poe_kernel->post("test_dispatcher" => "run_next"); + return; } + elsif ($^O eq "MSWin32") { + SKIP: { + skip( "part2 doesn't work on windows", 13 ); + } + $poe_kernel->post("test_dispatcher" => "run_next"); + return; + } POE::Session->create( inline_states => { @@ -200,7 +211,7 @@ # two phases, first we do reads w/ pauses, then we do writes w/ pauses. sub part2_input { - my ($heap, $input, $id) = @_[HEAP, ARG0, ARG1]; + my ($heap, $input, $id) = @_[HEAP, ARG0, ARG1]; $heap->{read_lines}++; $heap->{"called_input"}++; @@ -208,7 +219,7 @@ unless ($heap->{check_filters}++) { &part2_check_filters; } - + if ($heap->{read_machine} eq "start") { $heap->{wheel}->pause_input; $heap->{read_machine} = "paused"; @@ -310,10 +321,10 @@ # Part 3 - Changing watermarks (testing with a pipe) {{{ sub part3 { POE::Session->create( - inline_states => { _start => sub { } }, + inline_states => { _start => sub { }, _stop => sub { } }, ); return; # skip - + # create the pipe my ($a_read, $a_write, $b_read, $b_write) = POE::Pipe::TwoWay->new("inet"); # flow is $b_write --> $a_read @@ -361,7 +372,8 @@ }, flushed => sub { }, #print "flushed\n" }, high => sub { print "high\n"; $_[HEAP]->{state} = "high"; }, - low => sub { print "low\n" } + low => sub { print "low\n" }, + _stop => sub { }, }, ); @@ -398,6 +410,7 @@ delete $heap->{wheel}; } }, + _stop => sub { }, }, ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |