Jens Rehsack
unread,May 12, 2013, 12:24:16 PM5/12/13You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to DBI Developers Mailing List
Hi all,
I currently stuck hacking on matching test cases for deriving
test variants. Think as reason about DBI's test cases like
redo'ing all tests using DBI::PurePerl - but only some through
Gofer proxy and a handful with built-in DBI::SQL::Nano vs.
SQL::Statement (when having SQL::Statement)...
Other reason is to run DBI::Test self-test through the bundled
DBI::Mock and through DBI (default attributes test etc.).
Here is a roughly config set:
(
default => {
category => "mock",
cat_abbrev => "m",
abbrev => "b",
init_stub => qq(\$ENV{DBI_MOCK} = 1;),
match => { namespace => [""], },
name => "Unmodified Test",
},
# next stuff might be moved to DBI::Test::DBI::Conf
dbi_pp => {
category => "dbi",
cat_abbrev => "z",
abbrev => "p", # use DBI::PurePerl
init_stub => qq(\$ENV{DBI_PUREPERL}=1;),
match => "...",
name => "DBI PurePerl",
},
dbi_gofer => {
category => "dbi",
cat_abbrev => "z",
abbrev => "g", # use DBI::PurePerl
init_stub => qq(\$ENV{DBI_GOFER ...}=1;),
match => "...",
name => "DBI PurePerl",
},
# next stuff might be moved to DBI::Test::SQL::Statement::Conf
sql_nano => {
category => "sql::statement / dbi",
cat_abbrev => "s",
abbrev => "n",
init_stub => qq(\$ENV{DBI_SQL_NANO}=1;),
match => {
general => qq(\$ENV{DBI.pm} =~ m|/|),
name_space => [qw(DBI)], # DBD::CVS might hook here ...
name => "...",
},
name => "using DBI SQL::Nano",
},
);
The keys of the config hash are intended for hooking from additional
distributions (DBD::CSV, DBD::Sys, DBD::ODBC ...) and hack some flags
from configuration files.
Why is reducing test variants important? Because size matters! With
12 test variants, we'll create up to 2^12 (2 for DBI::Test, 4 for DBI,
optionally DBI::Proxy and/or DBD::Multiplex, up to 4 on SQL::Statement)
combinations of each test. When Test::Database introduce some more
variants - we'll might have 15, and I'm pretty sure, the count will
grow quickly. Running the 150 basic test cases of DBI::Test, DBI and
SQL::Statement in addition to those of DBD::CSV when instaling DBD::CSV,
there will be 819200 test run. That might take some time, even when
they can be parallelized ...
We also have to think about opening a door for Test::Database features
like creating DSN's for testing (DBD::DBM and DBD::CSV currently use
competing (and of course) incompatible own code for that.
While this is discussed and hopefully some cute little ideas follow,
I will work on extracting the plugin namespace (DBI::Test(.*)::Conf) ;)
Cheers
--
Jens Rehsack