X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Freplicated.t;h=dc77f0b9f08c1fcb1710791f94fa816a6168d4a0;hb=92b6fb5fcb5fdb12ee8788ce02672a00658fac92;hp=38ddcb12deb2d9b343761097d602e257e0cde364;hpb=64ae166780d0cb2b9577e506da9b9b240c146d20;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/storage/replicated.t b/t/storage/replicated.t index 38ddcb1..dc77f0b 100644 --- a/t/storage/replicated.t +++ b/t/storage/replicated.t @@ -9,6 +9,15 @@ BEGIN { unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_replicated'); } +use lib qw(t/lib); +use DBICTest; + +if (DBICTest::RunMode->is_smoker) { + my $mver = Moose->VERSION; + plan skip_all => "A trial version $mver of Moose detected known to break replication - skipping test known to fail" + if ($mver >= 1.99 and $mver <= 1.9902); +} + use Test::Moose; use Test::Exception; use List::Util 'first'; @@ -19,8 +28,7 @@ use Moose(); use MooseX::Types(); note "Using Moose version $Moose::VERSION and MooseX::Types version $MooseX::Types::VERSION"; -use lib qw(t/lib); -use DBICTest; +my $var_dir = quotemeta ( File::Spec->catdir(qw/t var/) ); use_ok 'DBIx::Class::Storage::DBI::Replicated::Pool'; use_ok 'DBIx::Class::Storage::DBI::Replicated::Balancer'; @@ -381,7 +389,7 @@ ok @replicant_names, "found replicant names @replicant_names"; ## Silence warning about not supporting the is_replicating method if using the ## sqlite dbs. $replicated->schema->storage->debugobj->silence(1) - if first { m{^t/} } @replicant_names; + if first { $_ =~ /$var_dir/ } @replicant_names; isa_ok $replicated->schema->storage->balancer->current_replicant => 'DBIx::Class::Storage::DBI'; @@ -429,7 +437,7 @@ $replicated->schema->storage->replicants->{$replicant_names[1]}->active(1); ## Silence warning about not supporting the is_replicating method if using the ## sqlite dbs. $replicated->schema->storage->debugobj->silence(1) - if first { m{^t/} } @replicant_names; + if first { $_ =~ /$var_dir/ } @replicant_names; $replicated->schema->storage->pool->validate_replicants; @@ -601,7 +609,7 @@ $replicated->schema->storage->replicants->{$replicant_names[1]}->active(0); "got last query from a master: $debug{dsn}"; like $fallback_warning, qr/falling back to master/ - => 'emits falling back to master warning'; + => 'emits falling back to master debug'; $replicated->schema->storage->debugfh($oldfh); } @@ -612,17 +620,29 @@ $replicated->schema->storage->replicants->{$replicant_names[1]}->active(1); ## Silence warning about not supporting the is_replicating method if using the ## sqlite dbs. $replicated->schema->storage->debugobj->silence(1) - if first { m{^t/} } @replicant_names; + if first { $_ =~ /$var_dir/ } @replicant_names; $replicated->schema->storage->pool->validate_replicants; $replicated->schema->storage->debugobj->silence(0); -ok $replicated->schema->resultset('Artist')->find(2) - => 'Returned to replicates'; +{ + ## catch the fallback to master warning + open my $debugfh, '>', \my $return_warning; + my $oldfh = $replicated->schema->storage->debugfh; + $replicated->schema->storage->debugfh($debugfh); -is $debug{storage_type}, 'REPLICANT', - "got last query from a replicant: $debug{dsn}"; + ok $replicated->schema->resultset('Artist')->find(2) + => 'Return to replicants'; + + is $debug{storage_type}, 'REPLICANT', + "got last query from a replicant: $debug{dsn}"; + + like $return_warning, qr/Moved back to slave/ + => 'emits returning to slave debug'; + + $replicated->schema->storage->debugfh($oldfh); +} ## Getting slave status tests