mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 21:19:59 +00:00
63 lines
1.2 KiB
Perl
63 lines
1.2 KiB
Perl
#!/usr/bin/perl
|
|
|
|
BEGIN {
|
|
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
|
|
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
|
|
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
|
|
};
|
|
|
|
use strict;
|
|
use warnings FATAL => 'all';
|
|
use English qw(-no_match_vars);
|
|
use Test::More;
|
|
|
|
$main::count = 0;
|
|
|
|
{
|
|
package Nothing;
|
|
use Lmo;
|
|
has nothing_special => ( is => 'rw' );
|
|
}
|
|
ok(Nothing->can("BUILDARGS"), "Every class automatically gets buildargs");
|
|
|
|
package Foo;
|
|
use Lmo;
|
|
has 'foo' => (is => 'rw');
|
|
sub BUILDARGS {
|
|
my $class = shift;
|
|
$main::count++;
|
|
$class->SUPER::BUILDARGS(@_);
|
|
}
|
|
|
|
package Bar;
|
|
use Lmo;
|
|
extends 'Foo';
|
|
has 'bar' => (is => 'rw');
|
|
|
|
package Baz;
|
|
use Lmo;
|
|
extends 'Bar';
|
|
has 'baz' => (is => 'rw');
|
|
sub BUILDARGS {
|
|
my $class = shift;
|
|
$main::count++;
|
|
$class->SUPER::BUILDARGS(@_)
|
|
}
|
|
|
|
package Gorch;
|
|
use Lmo;
|
|
extends 'Baz';
|
|
has 'gorch' => (is => 'rw');
|
|
|
|
package main;
|
|
|
|
$main::count = 0;
|
|
my $g = Foo->new;
|
|
is $main::count, 1, "A class with no explicit parent inherits SUPER::BUILDARGS from Lmo::Object";
|
|
|
|
$main::count = 0;
|
|
$g = Gorch->new;
|
|
is $main::count, 2, "As does one with a parent that defines it's own BUILDARGS";
|
|
|
|
done_testing;
|