From: Scotty Allen Date: Mon, 13 Feb 2006 16:28:12 +0000 (+0000) Subject: added check to skip tests that break on SQLite < 3.2.6 due to SQLite not understandin... X-Git-Tag: v0.05005~6 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=485f6e107dda47fa75315f180f7a7e2345a2cbfc;p=dbsrgits%2FDBIx-Class.git added check to skip tests that break on SQLite < 3.2.6 due to SQLite not understanding COUNT(DISTINCT()) --- diff --git a/t/run/16joins.tl b/t/run/16joins.tl index a3c9383..962ee48 100644 --- a/t/run/16joins.tl +++ b/t/run/16joins.tl @@ -2,6 +2,7 @@ sub run_tests { my $schema = shift; use IO::File; +use version; BEGIN { eval "use DBD::SQLite"; @@ -10,6 +11,9 @@ BEGIN { : ( tests => 41 ); } +my $is_broken_sqlite = version->new($schema->storage->dbh->get_info(18)) lt '3.2.6' && + $schema->storage->dbh->get_info(17) eq 'SQLite'; + # test the abstract join => SQL generator my $sa = new DBIC::SQL::Abstract; @@ -222,7 +226,11 @@ $rs = $schema->resultset("CD")->search( { group_by => [qw/ title me.cdid /] } ); -cmp_ok( $rs->count, '==', 5, "count() ok after group_by on main pk" ); +SKIP: { + skip "SQLite < 3.2.6 doesn't understand COUNT(DISTINCT())", 1 + if $is_broken_sqlite; + cmp_ok( $rs->count, '==', 5, "count() ok after group_by on main pk" ); +} cmp_ok( scalar $rs->all, '==', 5, "all() returns same count as count() after group_by on main pk" ); @@ -231,7 +239,11 @@ $rs = $schema->resultset("CD")->search( { join => [qw/ artist /], group_by => [qw/ artist.name /] } ); -cmp_ok( $rs->count, '==', 3, "count() ok after group_by on related column" ); +SKIP: { + skip "SQLite < 3.2.6 doesn't understand COUNT(DISTINCT())", 1 + if $is_broken_sqlite; + cmp_ok( $rs->count, '==', 3, "count() ok after group_by on related column" ); +} cmp_ok( scalar $rs->all, '==', 3, "all() returns same count as count() after group_by on related column" ); @@ -240,7 +252,12 @@ $rs = $schema->resultset("Artist")->search( 'cds_2.title' => 'Forkful of bees' }, { join => [ 'cds', 'cds' ] }); -cmp_ok($rs->count, '==', 1, "single artist returned from multi-join"); +SKIP: { + skip "SQLite < 3.2.6 doesn't understand COUNT(DISTINCT())", 1 + if $is_broken_sqlite; + cmp_ok($rs->count, '==', 1, "single artist returned from multi-join"); +} + is($rs->next->name, 'Caterwauler McCrae', "Correct artist returned"); my $queries;