- $code = <<" WRAPPER";
- {
- use Sub::Op::Test $name => sub {
- ++\$called;
- my \$exp = shift \@exp;
- is_deeply \\\@_, \$exp, '$name: arguments are correct';
- $ret;
- };
- {
- $code
- }
- BEGIN {
- no warnings 'uninitialized'; # Test::Builder can't get the file name
- is *main::${name}{CODE}, undef, '$name: no symbol table vivification';
- }
+ my @seq;
+ if ($seq) {
+ s/^\s*//, s/\s*$// for $seq;
+ @seq = split /\s*,\s*/, $seq;
+ die "calls and seq length mismatch" unless @seq == $calls;
+ } else {
+ @seq = ($names[0]) x $calls;
+ }
+
+ my $test = "{\n";
+ for my $name (@names) {
+ $test .= <<" INIT"
+ use Sub::Op::Test $name => sub {
+ ++\$called;
+ my \$exp = shift \@exp;
+ is_deeply \\\@_, \$exp, '$name: arguments are correct';
+ my \$seq = shift \@seq;
+ is \$seq, '$name', '$name: sequence is correct';
+ $ret;
+ };
+ INIT