The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strictures 1;
use Benchmark ':all';

require POE::Filter::IRCD;
require POE::Filter::IRCv3;
my $old = POE::Filter::IRCD->new;
my $new = POE::Filter::IRCv3->new;

my $basic = ':test!me@test.ing PRIVMSG #Test :This is a test';

my $tagged_with_escapes =
  '@foo=bar\nb\0az\\quux;meh=bork stuff';

my $tagged_without_escapes =
  '@foo=barbazquux;meh=bork stuff';


sub test {
    $new->get([$basic]);
    $new->get([':foo bar']);
    $new->get(['@foo=bar;baz :test PRIVMSG #quux :chickens. ']);

    sub {
      my $ev = $new->get([$tagged_with_escapes]);
      my $raw = $new->put([@$ev]);
    }->();
    
    sub {
      my $ev = $new->get([$tagged_without_escapes]);
      my $raw = $new->put([@$ev]);
    }->();
}

test for 1 .. 40_000;