aboutsummaryrefslogtreecommitdiffstats
path: root/feature-tests/auto-testing.pl
diff options
context:
space:
mode:
authorTom Feist <shabble@metavore.org>2011-02-19 14:31:46 +0000
committerTom Feist <shabble@metavore.org>2011-02-19 14:31:46 +0000
commitae36028f610acd6fdafff534f197e05ed6a3a16a (patch)
treee630fe139078efb90efeb475c1bd4783143fb6dd /feature-tests/auto-testing.pl
parentadded module 'overlay' to test out some ideas for fiddling with curses widget... (diff)
downloadirssi-scripts-ae36028f610acd6fdafff534f197e05ed6a3a16a.tar.gz
irssi-scripts-ae36028f610acd6fdafff534f197e05ed6a3a16a.zip
initial commit, probably about to get blasted.
Diffstat (limited to '')
-rwxr-xr-xfeature-tests/auto-testing.pl74
1 files changed, 74 insertions, 0 deletions
diff --git a/feature-tests/auto-testing.pl b/feature-tests/auto-testing.pl
new file mode 100755
index 0000000..db45226
--- /dev/null
+++ b/feature-tests/auto-testing.pl
@@ -0,0 +1,74 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use feature qw/say/;
+
+package Manager;
+use Moose;
+with qw(MooseX::Workers);
+
+use POE qw(Filter::Reference Filter::Stream);
+
+use Term::VT102;
+
+has 'vt'
+ => (
+ is => 'ro',
+ isa => 'Term::VT102',
+ required => 1,
+ lazy => 1,
+ builder => '_build_vt'
+ );
+
+sub _build_vt {
+ my $vt = Term::VT102->new(cols => 80, rows => 24);
+ $vt->callback_set('OUTPUT', \&vt_output, undef);
+
+ return $vt;
+}
+
+sub vt_output {
+ my ($vt, $cb_name, $data, $priv) = @_;
+ say "Data is: $data"
+}
+sub run {
+ my $self = shift;
+ my $job = MooseX::Workers::Job->new
+ (
+ name => "Irssi",
+ command => "/opt/stow/repo/irssi-debug/bin/irssi",
+ args => [ "--home=/tmp" ],
+ );
+
+ $self->spawn($job);
+
+ POE::Kernel->run();
+}
+
+# Implement our Interface
+# These two are both optional; if defined (as here), they
+# should return a subclass of POE::Filter.
+sub stdout_filter { new POE::Filter::Stream }
+sub stderr_filter { new POE::Filter::Line }
+
+sub worker_stdout {
+ my ( $self, $data ) = @_;
+
+ $self->vt->process($data);
+}
+
+sub worker_manager_start { warn 'started worker manager' }
+sub worker_manager_stop { warn 'stopped worker manager' }
+
+sub max_workers_reached { warn 'maximum worker count reached' }
+sub worker_error { shift; warn join ' ', @_; }
+sub worker_done { shift; warn join ' ', @_; }
+sub worker_started { shift; warn join ' ', @_; }
+sub sig_child { shift; warn join ' ', @_; }
+sub sig_TERM { shift; warn 'Handled TERM' }
+
+no Moose;
+
+Manager->new->run();
+