diff options
Diffstat (limited to 't')
-rw-r--r-- | t/fixtures/input | 29 | ||||
-rw-r--r-- | t/fixtures/localhost.conf | 3 | ||||
-rw-r--r-- | t/fixtures/testplan | 6 | ||||
-rw-r--r-- | t/samplerun.t | 39 |
4 files changed, 77 insertions, 0 deletions
diff --git a/t/fixtures/input b/t/fixtures/input new file mode 100644 index 0000000..2d508fe --- /dev/null +++ b/t/fixtures/input @@ -0,0 +1,29 @@ +<stream:stream xmlns:stream='http://etherx.jabber.org/streams' + version='1.0' + from='localhost' + id='somestreamid' + xmlns='jabber:client'> + <stream:features> + <mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'> + <mechanism>SCRAM-SHA-1</mechanism> + <mechanism>PLAIN</mechanism> + </mechanisms> + <auth xmlns='http://jabber.org/features/iq-auth'/> + </stream:features> +<success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'></success> +<stream:stream xmlns:stream='http://etherx.jabber.org/streams' + version='1.0' + from='localhost' + id='somestreamid' + xmlns='jabber:client'> + <stream:features> + <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/> + <session xmlns='urn:ietf:params:xml:ns:xmpp-session'/> + </stream:features> +<iq from='test0@localhost' to='test0@localhost/xmpt' id='bind' type='result'> + <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'> + <jid>test0@localhost/xmpt</jid> + </bind> +</iq> +<iq from='test0@localhost' to='test0@localhost/xmpt' id='session' type='result'/> +</stream:stream> diff --git a/t/fixtures/localhost.conf b/t/fixtures/localhost.conf new file mode 100644 index 0000000..bc462d7 --- /dev/null +++ b/t/fixtures/localhost.conf @@ -0,0 +1,3 @@ +# Domain and bare JID are calculated from full. +full_jid=test0@localhost/xmpt +password=test diff --git a/t/fixtures/testplan b/t/fixtures/testplan new file mode 100644 index 0000000..ba7fcaa --- /dev/null +++ b/t/fixtures/testplan @@ -0,0 +1,6 @@ +signin +auth +bind-reneg +bind +session +signout diff --git a/t/samplerun.t b/t/samplerun.t new file mode 100644 index 0000000..c3930ed --- /dev/null +++ b/t/samplerun.t @@ -0,0 +1,39 @@ +# -*- mode: perl -*- + +use Test::More tests => 3; + +use strict; +use warnings; + +my $config = 't/fixtures/localhost.conf'; +my $testplan = 't/fixtures/testplan'; +my $input = 't/fixtures/input'; + +subtest 'standard input', sub { + my $cmd = "./xmpt -c $config -p $testplan"; + my $xmptfh = new IO::File("|$cmd") or BAIL_OUT "Can't run '$cmd': $!.\n"; + my $inputfh = new IO::File($input) or + BAIL_OUT "Couldn't open $input for reading: $!.\n"; + while (<$inputfh>) { + print $xmptfh $_; + } + $inputfh->close; + $xmptfh->close; + ok($? == 0, 'Standard input redirect'); +}; + +subtest 'timeout', sub { + my $cmd = "./xmpt -t 1 -c $config -p $testplan cat 2>/dev/null"; + local $SIG{ALRM} = sub { fail("Timed out running $cmd.") }; + alarm 5; + system $cmd; + ok(($? >> 8) != 0, 'Timeout test'); +}; + +subtest 'I/O redirected to cat', sub { + my $cmd = "./xmpt -c $config -p $testplan cat $input 2>/dev/null"; + local $SIG{ALRM} = sub { fail("Timed out running $cmd.") }; + alarm 10; + ok((system($cmd) >> 8) == 0, 'I/O redirected to cat'); + alarm 0; +}; |