X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2Fdbixcsl_common_tests.pm;h=5fc3a01151d2961c5341efa9c7df37cfc5e0d668;hb=cf0ba25bdf3a501f693f9ff8498f43a98a06991f;hp=f88dc5c145d217f4d17074681ca26948521013b6;hpb=1805763b77e3bb4ab4ab9efce2a2ec04f0cfdd31;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/lib/dbixcsl_common_tests.pm b/t/lib/dbixcsl_common_tests.pm index f88dc5c..5fc3a01 100644 --- a/t/lib/dbixcsl_common_tests.pm +++ b/t/lib/dbixcsl_common_tests.pm @@ -114,14 +114,18 @@ sub run_only_extra_tests { @{$self}{qw/dsn user password connect_info_opts/} = @$info; - my $dbh = $self->dbconnect(0); + $self->drop_extra_tables_only; + + my $dbh = $self->dbconnect(1); $dbh->do($_) for @{ $self->{extra}{create} || [] }; $dbh->do($self->{data_type_tests}{ddl}) if $self->{data_type_tests}{ddl}; $self->{_created} = 1; - my $result_count = grep /CREATE (?:TABLE|VIEW)/i, @{ $self->{extra}{create} || [] }; + my $file_count = grep /CREATE (?:TABLE|VIEW)/i, @{ $self->{extra}{create} || [] }; + $file_count++; # schema + $file_count++ if $self->{data_type_tests}{ddl}; - my $schema_class = $self->setup_schema($info, $result_count + 2); # + schema + data_type table + my $schema_class = $self->setup_schema($info, $file_count); my ($monikers, $classes) = $self->monikers_and_classes($schema_class); my $conn = $schema_class->clone; @@ -129,13 +133,24 @@ sub run_only_extra_tests { $self->{extra}{run}->($conn, $monikers, $classes) if $self->{extra}{run}; if (not ($ENV{SCHEMA_LOADER_TESTS_NOCLEANUP} && $info_idx == $#$connect_info)) { - $dbh->do($_) for @{ $self->{extra}{pre_drop_ddl} || [] }; - $dbh->do("DROP TABLE $_") for @{ $self->{extra}{drop} || [] }; + $self->drop_extra_tables_only; rmtree $DUMP_DIR; } } } +sub drop_extra_tables_only { + my $self = shift; + + my $dbh = $self->dbconnect(0); + $dbh->do($_) for @{ $self->{extra}{pre_drop_ddl} || [] }; + $dbh->do("DROP TABLE $_") for @{ $self->{extra}{drop} || [] }; + + if (my $data_type_table = $self->{data_type_tests}{table_name}) { + $dbh->do("DROP TABLE $data_type_table"); + } +} + # defined in sub create my (@statements, @statements_reltests, @statements_advanced, @statements_advanced_sqlite, @statements_inline_rels, @@ -236,7 +251,8 @@ sub setup_schema { } else { SKIP: { - is scalar(@loader_warnings), $warn_count, 'Correct number of warnings'; + is scalar(@loader_warnings), $warn_count, 'Correct number of warnings' + or diag @loader_warnings; skip "not testing standard sources", 1; } } @@ -1626,6 +1642,11 @@ sub setup_data_type_tests { $size =~ s/\s+//g; my @size = split /,/, $size; + # Firebird doesn't like very long column names + if ($self->{vendor} =~ /^firebird\z/i) { + $type_alias =~ s/default\b.*/_with_dflt/i; + } + $type_alias =~ s/\s/_/g; $type_alias =~ s/\W//g;