X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F60roundtrip.t;h=f0e000dde8e3810c37d0b5b2a3c6a744c272696b;hb=33d693c35afb6bc4489713991672073c5674f626;hp=836bc1d3609378fc90d8679245ae16c6c5007370;hpb=0eb3b94a54140cedfc37172290f3fc8c1e15ddc9;p=dbsrgits%2FSQL-Translator.git diff --git a/t/60roundtrip.t b/t/60roundtrip.t index 836bc1d..f0e000d 100644 --- a/t/60roundtrip.t +++ b/t/60roundtrip.t @@ -62,7 +62,7 @@ my $plan = [ engine => 'Oracle', producer_args => {}, parser_args => {}, - todo => 'Needs volunteers', + todo_cmp => "auto-increment triggers aren't detected", }, { engine => 'Sybase', @@ -70,13 +70,12 @@ my $plan = [ parser_args => {}, todo => 'Needs volunteers', }, -# too noisy under new P::RD -# { -# engine => 'DB2', -# producer_args => {}, -# parser_args => {}, -# todo => 'Needs volunteers', -# }, + { + engine => 'DB2', + producer_args => {}, + parser_args => {}, + todo => 'Needs volunteers', + }, # There is no Access producer # { @@ -93,7 +92,7 @@ my $base_file = "$Bin/data/roundtrip_autogen.yaml"; open (my $base_fh, '<', $base_file) or die "$base_file: $!"; my $base_t = SQL::Translator->new; -$base_t->$_ (1) for qw/add_drop_table no_comments/; +$base_t->$_ (1) for qw/add_drop_table no_comments quote_identifiers/; my $base_schema = $base_t->translate ( parser => 'YAML', @@ -141,7 +140,7 @@ for my $args (@$plan) { local $::RD_HINT = 0 if $args->{todo}; lives_ok ( - sub { check_roundtrip ($args, $base_schema) }, + sub { check_roundtrip ($args, $base_schema, $args->{todo_cmp}) }, "Round trip for $args->{name} did not throw an exception", ); } @@ -150,7 +149,7 @@ for my $args (@$plan) { sub check_roundtrip { - my ($args, $base_schema) = @_; + my ($args, $base_schema, $todo_cmp) = @_; my $base_t = $base_schema->translator; # create some output from the submitted schema @@ -171,7 +170,7 @@ sub check_roundtrip { # parse the sql back my $parser_t = SQL::Translator->new; - $parser_t->$_ (1) for qw/add_drop_table no_comments/; + $parser_t->$_ (1) for qw/add_drop_table no_comments quote_identifiers/; my $mid_schema = $parser_t->translate ( data => $base_out, parser => $args->{engine}, @@ -195,7 +194,7 @@ sub check_roundtrip { _get_table_info ($mid_schema->get_tables), _get_table_info ($base_schema->get_tables), "Schema tables generally match afer $args->{name} parser trip", - ) or return; + ) or (diag(explain _get_table_info($mid_schema->get_tables)), return); # and produce sql once again @@ -225,11 +224,12 @@ sub check_roundtrip { return; }; + local $TODO = $todo_cmp; # the two sql strings should be identical my $msg = "$args->{name} SQL roundtrip successful - SQL statements match"; - $ENV{SQLTTEST_RT_DEBUG} #stringify below because IO::Scalar does not behave nice - ? eq_or_diff ("$rt_out", "$base_out", $msg) - : ok ("$rt_out" eq "$base_out", $msg) + $ENV{SQLTTEST_RT_DEBUG} + ? eq_or_diff ($rt_out, $base_out, $msg) + : ok ($rt_out eq $base_out, $msg) ; }