X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fhl_mod.t;h=fc7b712cea6945a4031274e63d0c05c6ed669e16;hb=dde1b083571ed893cbb1990f01f9e11ed804cba5;hp=80f88907e4ed577f74ed3e95d5a281cdd84c6d2f;hpb=65323f060a3db731bb9fafa004336eeb4bbb8f00;p=public-inbox.git diff --git a/t/hl_mod.t b/t/hl_mod.t index 80f88907..fc7b712c 100644 --- a/t/hl_mod.t +++ b/t/hl_mod.t @@ -19,14 +19,21 @@ my $orig = $str; { my $ref = $hls->do_hl(\$str, 'foo.perl'); is(ref($ref), 'SCALAR', 'got a scalar reference back'); + ok(utf8::valid($$ref), 'resulting string is utf8::valid'); like($$ref, qr/I can see you!/, 'we can see ourselves in output'); like($$ref, qr/&&/, 'escaped'); + my $lref = $hls->do_hl_lang(\$str, 'perl'); + is($$ref, $$lref, 'do_hl_lang matches do_hl'); use PublicInbox::Spawn qw(which); if (eval { require IPC::Run } && which('w3m')) { require File::Temp; my $cmd = [ qw(w3m -T text/html -dump -config /dev/null) ]; my ($out, $err) = ('', ''); + + # workaround https://bugs.debian.org/927409 + $$ref =~ s/'/'/sg; + IPC::Run::run($cmd, \('
'.$$ref.'
'), \$out, \$err); # expand tabs and normalize whitespace, # w3m doesn't preserve tabs @@ -37,19 +44,24 @@ my $orig = $str; } } -my $nr = $ENV{TEST_MEMLEAK}; -if ($nr && -r "/proc/$$/status") { - my $fh; - open $fh, '<', "/proc/$$/status"; - diag "starting at memtest at ".join('', grep(/VmRSS:/, <$fh>)); - PublicInbox::HlMod->new->do_hl(\$orig) for (1..$nr); - open $fh, '<', "/proc/$$/status"; - diag "creating $nr instances: ".join('', grep(/VmRSS:/, <$fh>)); - my $hls = PublicInbox::HlMod->new; - $hls->do_hl(\$orig) for (1..$nr); - $hls = undef; - open $fh, '<', "/proc/$$/status"; - diag "reused instance $nr times: ".join('', grep(/VmRSS:/, <$fh>)); +if ('experimental, only for help text') { + my $tmp = <<'EOF'; +:> +```perl +my $foo = 1 & 2; +``` +:< +EOF + $hls->do_hl_text(\$tmp); + my @hl = split(/^/m, $tmp); + is($hl[0], ":>\n", 'first line escaped'); + is($hl[1], "```perl\n", '2nd line preserved'); + like($hl[2], qr/