xref: /openbsd-src/gnu/usr.bin/perl/cpan/parent/t/rt62341.t.disabled (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
1#!perl -w
2use strict;
3use Benchmark qw/cmpthese/;
4use Test::More tests => 1;
5
6{
7    package Bench::Base;
8    sub foo { 1 };
9}
10
11my $c;
12my $sub_iter = 100;
13
14cmpthese (-1 => {
15    recompute_existing_ISA  => sub {
16        $c++;
17        for (1..$sub_iter) {
18            my $class = "Bench::Par::Sub_${c}";
19            no strict 'refs';
20            @{ "$class\::ISA"} = (@{ "$class\::ISA"},'Bench::Base');
21            die unless $class->foo;
22        }
23    },
24    recompute_new_ISA  => sub {
25        $c++;
26        for (1..$sub_iter) {
27            my $class = "Bench::Par::Sub_${c}::SubSub${_}";
28            no strict 'refs';
29            @{ "$class\::ISA"} = (@{ "$class\::ISA"},'Bench::Base');
30            die unless $class->foo;
31        }
32    },
33    push_existing_ISA  => sub {
34        $c++;
35        for (1..$sub_iter) {
36            my $class = "Bench::Par::Sub_${c}";
37            no strict 'refs';
38            push @{ "$class\::ISA"}, 'Bench::Base';
39            die unless $class->foo;
40        }
41    },
42    push_new_ISA  => sub {
43        $c++;
44        for (1..$sub_iter) {
45            my $class = "Bench::Par::Sub_${c}::SubSub${_}";
46            no strict 'refs';
47            push @{ "$class\::ISA"}, 'Bench::Base';
48            die unless $class->foo;
49        }
50    },
51    push_new_FOO  => sub {
52        $c++;
53        for (1..$sub_iter) {
54            my $class = "Bench::Par::Sub_${c}::SubSub${_}";
55            no strict 'refs';
56            push @{ "$class\::FOO"}, 'Bench::Base';
57            #die unless $class->foo;
58        }
59    },
60    push_existing_FOO => sub {
61        $c++;
62        for (1..$sub_iter) {
63            my $class = "Bench::Par::Sub_${c}";
64            no strict 'refs';
65            push @{ "$class\::FOO"}, 'Bench::Base';
66            #die unless $class->foo;
67        }
68    },
69    recompute_existing_FOO => sub {
70        $c++;
71        for (1..$sub_iter) {
72            my $class = "Bench::Par::Sub_${c}";
73            no strict 'refs';
74            @{ "$class\::FOO"} = (@{ "$class\::FOO"}, 'Bench::Base');
75            #die unless $class->foo;
76        }
77    },
78
79    # Take a reference and manipulate that, in case string references are slow
80    refcompute_existing_FOO => sub {
81        $c++;
82        for (1..$sub_iter) {
83            my $class = "Bench::Par::Sub_${c}";
84            no strict 'refs';
85            my $aref = \@{ "$class\::FOO"};
86            @{ $aref } = (@{ $aref }, 'Bench::Base');
87            #die unless $class->foo;
88        }
89    },
90    recompute_new_FOO => sub {
91        $c++;
92        for (1..$sub_iter) {
93            my $class = "Bench::Par::Sub_${c}::SubSub${_}";
94            no strict 'refs';
95            @{ "$class\::FOO"} = (@{ "$class\::FOO"}, 'Bench::Base');
96            #die unless $class->foo;
97        }
98    },
99});
100
101pass "Benchmarks run";
102