The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Process DBI DSN from environment or provide feedback about how to set it.

use vars qw($dsn $user $pass $sqldb);

($dsn, $user, $pass) = ( 
  scalar(@ARGV) ? ( @ARGV ) : 
  $ENV{DBI_DSN} ? ( map $ENV{$_}, qw( DBI_DSN DBI_USER DBI_PASS ) ) :
  ()
);
$dsn = '' if ( ! $dsn or $dsn eq '-' );

########################################################################

if ( ! $dsn ) {

  warn <<".";

  Note: This test script can only be run if it can connect to a working DBI
  database driver. Using that connection, this test script will create
  a table named sqle_test, run various queries against it, and then drop it.

  Although this should not affect other applications, for safety's sake, use
  a test account or temporary data space, and avoid testing this on any
  mission-critical production systems.

  In order to run this test script against a local database, set the
  DBI_DSN environment variable to your connection string before running the
  tests, and if needed, also set the DBI_USER and DBI_PASS variables.
    Example:  > setenv DBI_DSN "DBI:mysql:test"; make test_drivers/*.t

  If you are running individual test scripts, you can pass the DSN,  
  username, and password as command-line arguments to the test.
    Example:  > perl -Mblib $0 "DBI:mysql:test"
.

  plan tests => 1;
  skip(
    "Skipping: specify DBI_DSN in environment to test your local server.\n",
    0,
  );
  exit 0;
}

########################################################################

$sqldb = DBIx::SQLEngine->new($dsn, $user, $pass);

if ( ! $sqldb ) {
warn <<".";
  Skipping: Could not connect to this DBI_DSN to test your local server.
.
  plan tests => 1;
  skip(
    "Skipping: Could not connect to this DBI_DSN to test your local server.",
    0,
  );
  exit 0;
}

$sqldb->select_detect_dbms_flavor if ($sqldb->can('select_detect_dbms_flavor'));


1;