X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F70sqlt-diff_script.t;h=14962aab5b5ed61a60e21c0725af494f10ea8640;hb=6440741a562ff8bb42c79282d30f3562c4336578;hp=138d8bc71930cfdc6f94cbc6ddc774ed22c5d1a8;hpb=d4c5bb75cdce715a9e74b90e3200e03ff430e42b;p=dbsrgits%2FSQL-Translator.git diff --git a/t/70sqlt-diff_script.t b/t/70sqlt-diff_script.t index 138d8bc..14962aa 100644 --- a/t/70sqlt-diff_script.t +++ b/t/70sqlt-diff_script.t @@ -5,8 +5,10 @@ use strict; use File::Spec::Functions qw(catfile updir tmpdir); use FindBin qw($Bin); +use IPC::Open3; use Test::More; use Test::SQL::Translator qw(maybe_plan); +use Text::ParseWords qw(shellwords); my @script = qw(script sqlt-diff); my @create1 = qw(data sqlite create.sql); @@ -22,8 +24,6 @@ BEGIN { ); } -$ENV{SQLT_NEWDIFF_NOWARN} = 1; - my @mysql_create1 = qw(data mysql create.sql); my @mysql_create2 = qw(data mysql create2.sql); @@ -36,8 +36,7 @@ my $mysql_create2 = (-d "t") : catfile($Bin, "t", @mysql_create2); # Test for differences -my @cmd = ($^X, $sqlt_diff, "$mysql_create1=MySQL", "$mysql_create2=MySQL"); -my $out = `@cmd`; +my $out = _run_cmd ($sqlt_diff, "$mysql_create1=MySQL", "$mysql_create2=MySQL"); like($out, qr/CHANGE COLUMN person_id/, "Detected altered 'person_id' field"); like($out, qr/CHANGE COLUMN iq/, "Detected altered 'iq' field"); @@ -56,8 +55,7 @@ like($out, qr/ADD CONSTRAINT FK5302D47D93FE702E_diff/, unlike($out, qr/ADD PRIMARY KEY/, "Primary key looks different when it shouldn't"); # Test for quoted output -@cmd = ($^X, $sqlt_diff, '--quote=\`', "$mysql_create1=MySQL", "$mysql_create2=MySQL"); -$out = `@cmd`; +$out = _run_cmd ($sqlt_diff, '--quote=`', "$mysql_create1=MySQL", "$mysql_create2=MySQL"); like($out, qr/ALTER TABLE `person`/, "Quoted table name"); like($out, qr/CHANGE COLUMN `person_id`/, "Quoted 'person_id' field"); @@ -66,7 +64,14 @@ like($out, qr/CHANGE COLUMN `name`/, "Quoted 'name' field"); like($out, qr/CHANGE COLUMN `age`/, "Quoted 'age' field"); # Test for sameness -@cmd = ($^X, $sqlt_diff, "$mysql_create1=MySQL", "$mysql_create1=MySQL"); -$out = `@cmd`; +$out = _run_cmd ($sqlt_diff, "$mysql_create1=MySQL", "$mysql_create1=MySQL"); like($out, qr/No differences found/, "Properly detected no differences"); + +sub _run_cmd { + my $out; + my $pid = open3( undef, $out, undef, $^X, shellwords($ENV{HARNESS_PERL_SWITCHES}||''), @_ ); + my $res = do { local $/; <$out> }; + waitpid($pid, 0); + $res; +}