Fail more gracefully on non-loadable compiled module parts
[dbsrgits/SQL-Translator.git] / t / 09sqlt-diagram.t
1 use strict;
2 use warnings;
3
4 use File::Spec::Functions qw(catfile updir tmpdir);
5 use File::Temp qw(mktemp);
6 use FindBin qw($Bin);
7 use Test::More;
8 use Test::SQL::Translator qw(maybe_plan);
9 use Text::ParseWords qw(shellwords);
10
11 BEGIN {
12     maybe_plan(
13         3,
14         'GD',
15         'Graph::Directed',
16         'SQL::Translator::Producer::Diagram',
17         'SQL::Translator::Parser::MySQL',
18     );
19 }
20
21 my @script = qw(script sqlt-diagram);
22 my @data = qw(data mysql create2.sql);
23
24 my $sqlt_diagram = catfile($Bin, updir, @script);
25 my $test_data = catfile($Bin, @data);
26
27 my $tmp = mktemp('sqlXXXXX');
28
29 ok(-e $sqlt_diagram);
30 my @cmd = ($^X, shellwords($ENV{HARNESS_PERL_SWITCHES}||''), $sqlt_diagram, "-d", "MySQL", "-o", $tmp, $test_data);
31 eval { system(@cmd); };
32 ok(!$@ && ($? == 0));
33 ok(-e $tmp);
34 eval { unlink $tmp; };