=================================================================== RCS file: /cvs/mandoc/regress/regress.pl,v retrieving revision 1.2 retrieving revision 1.5 diff -u -p -r1.2 -r1.5 --- mandoc/regress/regress.pl 2017/02/08 16:56:15 1.2 +++ mandoc/regress/regress.pl 2017/03/08 22:54:22 1.5 @@ -1,6 +1,6 @@ #!/usr/bin/env perl # -# $Id: regress.pl,v 1.2 2017/02/08 16:56:15 schwarze Exp $ +# $Id: regress.pl,v 1.5 2017/03/08 22:54:22 schwarze Exp $ # # Copyright (c) 2017 Ingo Schwarze # @@ -113,15 +113,16 @@ for (@ARGV) { $displaylevel = int; next; } - /^(all|ascii|utf8|man|html|lint|clean|verbose)$/ + /^(all|ascii|utf8|man|html|markdown|lint|clean|verbose)$/ or usage "$_: invalid modifier"; $targets{$_} = 1; } $targets{all} = 1 unless $targets{ascii} || $targets{utf8} || $targets{man} || - $targets{html} || $targets{lint} || $targets{clean}; + $targets{html} || $targets{markdown} || + $targets{lint} || $targets{clean}; $targets{ascii} = $targets{utf8} = $targets{man} = $targets{html} = - $targets{lint} = 1 if $targets{all}; + $targets{markdown} = $targets{lint} = 1 if $targets{all}; $displaylevel = 3 if $targets{verbose}; @@ -142,7 +143,7 @@ sub parse_makefile ($) { my $var = $1; my $opt = $2; my $val = $3; - $val =~ s/\${(\w+)}/$vars{$1}/; + $val =~ s/\$\{(\w+)\}/$vars{$1}/; $val = "$vars{$var} $val" if $opt eq '+'; $vars{$var} = $val unless $opt eq '?' && defined $vars{$var}; @@ -160,8 +161,9 @@ if ($subdir eq '.') { my @mandoc = '../mandoc'; my @subdir_names; -my (@regress_testnames, @utf8_testnames, @html_testnames, @lint_testnames); -my (%skip_ascii, %skip_man); +my (@regress_testnames, @utf8_testnames, @lint_testnames); +my (@html_testnames, @markdown_testnames); +my (%skip_ascii, %skip_man, %skip_markdown); push @mandoc, split ' ', $vars{MOPTS} if $vars{MOPTS}; delete $vars{MOPTS}; @@ -185,6 +187,10 @@ if (defined $vars{HTML_TARGETS}) { @html_testnames = split ' ', $vars{HTML_TARGETS}; delete $vars{HTML_TARGETS}; } +if (defined $vars{MARKDOWN_TARGETS}) { + @markdown_testnames = split ' ', $vars{MARKDOWN_TARGETS}; + delete $vars{MARKDOWN_TARGETS}; +} if (defined $vars{LINT_TARGETS}) { @lint_testnames = split ' ', $vars{LINT_TARGETS}; delete $vars{LINT_TARGETS}; @@ -200,12 +206,17 @@ if (defined $vars{SKIP_TMAN}) { $skip_man{$_} = 1 for split ' ', $vars{SKIP_TMAN}; delete $vars{SKIP_TMAN}; } +if (defined $vars{SKIP_MARKDOWN}) { + $skip_markdown{$_} = 1 for split ' ', $vars{SKIP_MARKDOWN}; + delete $vars{SKIP_MARKDOWN}; +} if (keys %vars) { my @vars = keys %vars; die "unknown var(s) @vars"; } map { $skip_ascii{$_} = 1; } @regress_testnames if $skip_ascii{ALL}; map { $skip_man{$_} = 1; } @regress_testnames if $skip_man{ALL}; +map { $skip_markdown{$_} = 1; } @regress_testnames if $skip_markdown{ALL}; # --- run targets ------------------------------------------------------ @@ -300,6 +311,27 @@ for my $testname (@html_testnames) { } } +my $count_markdown = 0; +for my $testname (@regress_testnames) { + next if $onlytest && $testname ne $onlytest; + my $i = "$subdir/$testname.in"; + my $o = "$subdir/$testname.mandoc_markdown"; + my $w = "$subdir/$testname.out_markdown"; + if ($targets{markdown} && !$skip_markdown{$testname}) { + $count_markdown++; + $count_total++; + print "@mandoc -T markdown $i\n" if $targets{verbose}; + sysout $o, @mandoc, qw(-T markdown), $i + and fail $subdir, $testname, 'markdown:mandoc'; + system @diff, $w, $o + and fail $subdir, $testname, 'markdown:diff'; + } + if ($targets{clean}) { + print "rm $o\n" if $targets{verbose}; + unlink $o; + } +} + my $count_lint = 0; for my $testname (@lint_testnames) { next if $onlytest && $testname ne $onlytest; @@ -334,6 +366,7 @@ print " $count_ascii ascii" if $count_ascii; print " $count_man man" if $count_man; print " $count_utf8 utf8" if $count_utf8; print " $count_html html" if $count_html; +print " $count_markdown markdown" if $count_markdown; print " $count_lint lint" if $count_lint; if (@failures) {