12 my $fe = $args{filter_elements};
14 subtest $args{name} => sub {
15 my $orgp = Org::Parser->new();
19 $res = $orgp->parse($args{doc}, $args{parser_opts});
20 } elsif ($args{parse_args}) {
21 $res = $orgp->parse(@{ $args{parse_args} });
22 } elsif ($args{parse_file_args}) {
23 $res = $orgp->parse_file(@{ $args{parse_file_args} });
25 die "Either doc/parse_args/parse_file_args must be specified";
31 ok($eval_err, "dies") or diag(Org::Dump::dump_element($res));
34 ok(!$eval_err, "doesnt die") or diag("died with msg $eval_err");
41 my $eltype = ref($el);
42 my $fetype = ref($fe);
43 if ($fetype eq 'Regexp') {
44 return unless $eltype =~ $args{filter_elements};
45 } elsif ($fetype eq 'CODE') {
46 return unless $fe->($el);
48 return unless $eltype eq $args{filter_elements};
50 die "BUG: filter_elements cannot be a $fetype";
56 if (defined $args{num}) {
57 is(scalar(@elems), $args{num}, "num=$args{num}");
60 if ($args{test_after_parse}) {
61 $args{test_after_parse}->(parser=>$orgp, result=>$res,