#!/usr/bin/perl
use strict;
use warnings;
use DBI;
use Cwd;
use Config '%Config';
my $dbi = $INC{"DBI.pm"};
my $cwd = $INC{"Cwd.pm"};

die if not -f $dbi;
die if not -f $cwd;

my $dlext = $Config{dlext};

my $trunk_cmd = "perl -Ilib script/scandeps.pl -V -B";
my $sd73_cmd  = "scandeps.pl -V -B";

my %tests = (
    sd73_path_dbi      => ["DBI.$dlext", "$sd73_cmd $dbi"],
    sdtrunk_path_dbi   => ["DBI.$dlext", "$trunk_cmd $dbi"],
    sd73_module_dbi    => ["DBI.$dlext", "$sd73_cmd -e 'use DBI;'"],
    sdtrunk_module_dbi => ["DBI.$dlext", "$trunk_cmd -e 'use DBI;'"],
    sd73_path_cwd      => ["Cwd.$dlext", "$sd73_cmd $cwd"],
    sdtrunk_path_cwd   => ["Cwd.$dlext", "$trunk_cmd $cwd"],
    sd73_module_cwd    => ["Cwd.$dlext", "$sd73_cmd -e 'use Cwd;'"],
    sdtrunk_module_cwd => ["Cwd.$dlext", "$trunk_cmd -e 'use Cwd;'"],
);

foreach my $name (keys %tests) {
    my $so  = $tests{$name}[0];
    my $cmd = $tests{$name}[1];
    print "Running test $name. Shared lib: $so. Command is: $cmd\n";

    my $output = `$cmd`;
    my @found = grep { /\Q$so\E\s/ } split /\n/, $output;
    #print "$_\n" for grep { /DBI|Cwd/ } split /\n/, $output;

    if (@found) {
        print "===> PASS\n";
    }
    else {
        print "===> FAIL\n";
    }
}


