From 7ec10e516a04a05a85cb82b30a8f9982f13c6c90 Mon Sep 17 00:00:00 2001 From: Tom Feist Date: Fri, 4 Mar 2011 04:12:47 +0000 Subject: working with TAP::Harness --- testing/tests/001-basic.t | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 testing/tests/001-basic.t (limited to 'testing/tests') diff --git a/testing/tests/001-basic.t b/testing/tests/001-basic.t new file mode 100755 index 0000000..4373855 --- /dev/null +++ b/testing/tests/001-basic.t @@ -0,0 +1,52 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use feature qw/say/; + +#use lib 'blib/lib'; + +use Test::Irssi; + +my $tester = Test::Irssi->new + (irssi_binary => "/opt/stow/repo/irssi-debug/bin/irssi", + irssi_homedir => $ENV{HOME} . "/projects/tmp/test/irssi-debug"); + +say "Created test instance"; +$tester->run_headless(1); + +my $test = $tester->new_test('test1'); +$test->description("simple echo tests"); + +$test->add_input_sequence("/echo Hello cats\n"); +$test->add_delay(1); +$test->add_input_sequence("/echo Hello Again\n"); +$test->add_input_sequence("this is a lang test"); +$test->add_pattern_match(qw/long/, 'prompt', 'prompt contains hello'); +$test->add_pattern_match(qw/longfdajkfd/, 'prompt', 'prompt contains hello'); + + +my $test2 = $tester->new_test('test2'); +$test2->description("cursor movement and deletion"); + +$test2->add_delay(2); +$test2->add_input_sequence("\x01"); +$test2->add_delay(0.1); +$test2->add_input_sequence("\x0b"); +$test2->add_delay(0.1); +$test2->add_input_sequence("/clear\n"); +$test2->add_delay(0.1); +$test2->add_input_sequence("/echo moo\n"); + +my $quit = $tester->new_test('quit'); +$quit->description('quitting'); +$quit->add_input_sequence("/quit\n"); + +# for (1..10) { +# $test->add_input_sequence("\xff"); +# $test->add_delay(0.1); + +# } + +$tester->run; -- cgit v1.2.3 From 41c95c731cae9d39468acce966ed3e14e39191cf Mon Sep 17 00:00:00 2001 From: Tom Feist Date: Fri, 4 Mar 2011 05:19:41 +0000 Subject: testing: mostly working TAP output, test.pl uses TAP::Harness to run tests. now we just need some tests. --- testing/tests/001-basic.t | 28 +++++++++++++--------------- testing/tests/002-cursor-test.t | 29 +++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 15 deletions(-) create mode 100755 testing/tests/002-cursor-test.t (limited to 'testing/tests') diff --git a/testing/tests/001-basic.t b/testing/tests/001-basic.t index 4373855..60578d8 100755 --- a/testing/tests/001-basic.t +++ b/testing/tests/001-basic.t @@ -4,17 +4,19 @@ use strict; use warnings; use feature qw/say/; - -#use lib 'blib/lib'; - use Test::Irssi; my $tester = Test::Irssi->new (irssi_binary => "/opt/stow/repo/irssi-debug/bin/irssi", irssi_homedir => $ENV{HOME} . "/projects/tmp/test/irssi-debug"); -say "Created test instance"; -$tester->run_headless(1); +if (exists $ENV{IRSSI_TEST_HEADLESS} and $ENV{IRSSI_TEST_NOHEADLESS} == 1) { + $tester->run_headless(0); + $tester->generate_tap(0); +} else { + $tester->run_headless(1); + $tester->generate_tap(1); +} my $test = $tester->new_test('test1'); $test->description("simple echo tests"); @@ -22,15 +24,17 @@ $test->description("simple echo tests"); $test->add_input_sequence("/echo Hello cats\n"); $test->add_delay(1); $test->add_input_sequence("/echo Hello Again\n"); -$test->add_input_sequence("this is a lang test"); -$test->add_pattern_match(qw/long/, 'prompt', 'prompt contains hello'); -$test->add_pattern_match(qw/longfdajkfd/, 'prompt', 'prompt contains hello'); +$test->add_input_sequence("this is a long test"); +$test->add_delay(0.5); +$test->add_pattern_match(qr/long/, 'prompt', 'prompt contains long'); +$test->add_delay(1); +$test->add_pattern_match(qr/this is a .*? test/, 'prompt', 'prompt matches'); my $test2 = $tester->new_test('test2'); $test2->description("cursor movement and deletion"); -$test2->add_delay(2); +$test2->add_delay(1); $test2->add_input_sequence("\x01"); $test2->add_delay(0.1); $test2->add_input_sequence("\x0b"); @@ -43,10 +47,4 @@ my $quit = $tester->new_test('quit'); $quit->description('quitting'); $quit->add_input_sequence("/quit\n"); -# for (1..10) { -# $test->add_input_sequence("\xff"); -# $test->add_delay(0.1); - -# } - $tester->run; diff --git a/testing/tests/002-cursor-test.t b/testing/tests/002-cursor-test.t new file mode 100755 index 0000000..eb35170 --- /dev/null +++ b/testing/tests/002-cursor-test.t @@ -0,0 +1,29 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use feature qw/say/; +use Test::Irssi; + +my $tester = Test::Irssi->new + (irssi_binary => "/opt/stow/repo/irssi-debug/bin/irssi", + irssi_homedir => $ENV{HOME} . "/projects/tmp/test/irssi-debug"); + +if (exists $ENV{IRSSI_TEST_HEADLESS} and $ENV{IRSSI_TEST_NOHEADLESS} == 1) { + $tester->run_headless(0); + $tester->generate_tap(0); +} else { + $tester->run_headless(1); + $tester->generate_tap(1); +} + +my $test = $tester->new_test('test1'); +$test->description("simple echo tests"); +$test->add_diag("Testing 123"); + +my $quit = $tester->new_test('quit'); +$quit->description('quitting'); +$quit->add_input_sequence("/quit\n"); + +$tester->run; -- cgit v1.2.3 From 6374b67079740260ad8e7d6301f11c14dd9d90a3 Mon Sep 17 00:00:00 2001 From: Tom Feist Date: Fri, 4 Mar 2011 05:25:22 +0000 Subject: testing: adapted rudi's vim_mode insert test to new format. seems to work fine. --- testing/tests/003-vim-mode.t | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 testing/tests/003-vim-mode.t (limited to 'testing/tests') diff --git a/testing/tests/003-vim-mode.t b/testing/tests/003-vim-mode.t new file mode 100755 index 0000000..a732f66 --- /dev/null +++ b/testing/tests/003-vim-mode.t @@ -0,0 +1,43 @@ +#!/usr/bin/env perl + +# Must be run in a 80x24 terminal unless a fixed POE is released. +use strict; +use warnings; + +use Test::Irssi; + +sub statusbar_mode { + my ($test, $mode) = @_; + + $test->add_pattern_match(qr/^ \[\d{2}:\d{2}\] \[\] \[1\] \[$mode\]\s+$/, + 'window_sbar', "[$mode] in vim-mode statusbar"); +} + +my $tester = Test::Irssi->new + (irssi_binary => "/opt/stow/repo/irssi-debug/bin/irssi", + irssi_homedir => $ENV{HOME} . "/projects/tmp/test/irssi-debug"); + +$tester->run_headless(1); +$tester->generate_tap(1); + +my $test = $tester->new_test('insert-command-mode'); +$test->description("switching between insert and command mode in vim_mode script"); + +# Make sure irssi is finished - not entirely sure why this is necessary. +$test->add_delay(2); + +# We start in insert mode. +statusbar_mode($test, 'Insert'); + +$test->add_input_sequence("\e"); +$test->add_delay(1); +statusbar_mode($test, 'Command'); + +$test->add_input_sequence("i"); +$test->add_delay(1); +statusbar_mode($test, 'Insert'); + +# Quit irssi, necessary to terminate the test. +$test->add_input_sequence("\n/quit\n"); + +$tester->run; -- cgit v1.2.3 From 5df2b67f2cbef974c59c5d91d1937ea6e99b3ae9 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Sat, 5 Mar 2011 02:49:58 +0100 Subject: vim-mode/tests.pl: Add first real tests: h l 0 ^ $ f t. Merge testing/tests/003-vim-mode.t with vim-mode/tests.pl and remove it from testing/. --- testing/tests/003-vim-mode.t | 43 ------------------------------------------- 1 file changed, 43 deletions(-) delete mode 100755 testing/tests/003-vim-mode.t (limited to 'testing/tests') diff --git a/testing/tests/003-vim-mode.t b/testing/tests/003-vim-mode.t deleted file mode 100755 index a732f66..0000000 --- a/testing/tests/003-vim-mode.t +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env perl - -# Must be run in a 80x24 terminal unless a fixed POE is released. -use strict; -use warnings; - -use Test::Irssi; - -sub statusbar_mode { - my ($test, $mode) = @_; - - $test->add_pattern_match(qr/^ \[\d{2}:\d{2}\] \[\] \[1\] \[$mode\]\s+$/, - 'window_sbar', "[$mode] in vim-mode statusbar"); -} - -my $tester = Test::Irssi->new - (irssi_binary => "/opt/stow/repo/irssi-debug/bin/irssi", - irssi_homedir => $ENV{HOME} . "/projects/tmp/test/irssi-debug"); - -$tester->run_headless(1); -$tester->generate_tap(1); - -my $test = $tester->new_test('insert-command-mode'); -$test->description("switching between insert and command mode in vim_mode script"); - -# Make sure irssi is finished - not entirely sure why this is necessary. -$test->add_delay(2); - -# We start in insert mode. -statusbar_mode($test, 'Insert'); - -$test->add_input_sequence("\e"); -$test->add_delay(1); -statusbar_mode($test, 'Command'); - -$test->add_input_sequence("i"); -$test->add_delay(1); -statusbar_mode($test, 'Insert'); - -# Quit irssi, necessary to terminate the test. -$test->add_input_sequence("\n/quit\n"); - -$tester->run; -- cgit v1.2.3