#!/bin/bash
-if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then return ; fi
-
-# poison the environment
-if [[ "$POISON_ENV" = "true" ]] ; then
-
- # in addition to making sure tests do not rely on implicid order of
- # returned results, look through lib, find all mentioned ENVvars and
- # set them to true and see if anything explodes
- for var in \
- DBICTEST_SQLITE_REVERSE_DEFAULT_ORDER \
- $(grep -P '\$ENV\{' -r lib/ --exclude-dir Optional | grep -oP '\bDBIC\w+' | sort -u | grep -v DBIC_TRACE)
- do
- if [[ -z "${!var}" ]] ; then
- export $var=1
- echo "POISON_ENV: setting $var to 1"
- fi
- done
-
- # bogus nonexisting DBI_*
- export DBI_DSN="dbi:ODBC:server=NonexistentServerAddress"
- export DBI_DRIVER="ADO"
-
- # some people do in fact set this - boggle!!!
- export PERL_STRICTURES_EXTRA=1
+# this file is executed in a subshell - set up the common stuff
+source maint/travis-ci_scripts/common.bash
- # emulate a local::lib-like env
- # trick cpanm into executing true as shell - we just need the find+unpack
- run_or_err "Downloading latest stable DBIC from CPAN" \
- "SHELL=/bin/true cpanm --look DBIx::Class"
+if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then exit 0 ; fi
- export PERL5LIB="$( ls -d ~/.cpanm/latest-build/DBIx-Class-*/lib | tail -n1 ):$PERL5LIB"
+# FIXME - this is a kludge in place of proper MDV testing. For the time
+# being simply use the minimum versions of our DBI/DBDstack, to avoid
+# fuckups like 0.08260 (went unnoticed for 5 months)
+if [[ "$DEVREL_DEPS" != "true" ]] && [[ "$POISON_ENV" = "true" ]] ; then
- # perldoc -l <mod> searches $(pwd)/lib in addition to PERL5LIB etc, hence the cd /
- echo_err "Latest stable DBIC (without deps) locatable via \$PERL5LIB at $(cd / && perldoc -l DBIx::Class)"
-
- # FIXME - this is a kludge in place of proper MDV testing. For the time
- # being simply use the minimum versions of our DBI/DBDstack, to avoid
- # fuckups like 0.08260 (went unnoticed for 5 months)
- #
# use url-spec for DBI due to https://github.com/miyagawa/cpanminus/issues/328
- if perl -M5.013003 -e1 &>/dev/null ; then
+ if [[ "$CLEANTEST" != "true" ]] || perl -M5.013003 -e1 &>/dev/null ; then
+ # the fulltest may re-upgrade DBI, be conservative only on cleantests
# earlier DBI will not compile without PERL_POLLUTE which was gone in 5.14
parallel_installdeps_notest T/TI/TIMB/DBI-1.614.tar.gz
else
fi
# Test both minimum DBD::SQLite and minimum BigInt SQLite
+ # reverse the logic from above for this (low on full, higher on clean)
if [[ "$CLEANTEST" = "true" ]]; then
parallel_installdeps_notest DBD::SQLite@1.37
else
else
# we will be running all dbic tests - preinstall lots of stuff, run basic tests
- # using SQLT and set up whatever databases necessary
- export DBICTEST_SQLT_DEPLOY=1
# do the preinstall in several passes to minimize amount of cross-deps installing
# multiple times, and to avoid module re-architecture breaking another install
parallel_installdeps_notest YAML LWP Class::Trigger JSON::XS DateTime::Format::Builder Class::Accessor::Grouped Package::Variant
parallel_installdeps_notest SQL::Abstract Moose Module::Install JSON SQL::Translator File::Which
+ # Neither DBD::Interbase nor DBD::Firebird compile on DBI < 1.611, so when
+ # we POISON_ENV - nothing will work on 1.57
+ if ( perl -MDBI -e 1 && ! perl -MDBI\ 1.611 -e 1 )&>/dev/null ; then
+ unset DBICTEST_FIREBIRD_DSN DBICTEST_FIREBIRD_INTERBASE_DSN
+ fi
+
+ # the official version is very much outdated and does not compile on 5.14+
+ # use this rather updated source tree (needs to go to PAUSE):
+ # https://github.com/pilcrow/perl-dbd-interbase
if [[ -n "$DBICTEST_FIREBIRD_INTERBASE_DSN" ]] ; then
- # the official version is very much outdated and does not compile on 5.14+
- # use this rather updated source tree (needs to go to PAUSE):
- # https://github.com/pilcrow/perl-dbd-interbase
parallel_installdeps_notest git://github.com/dbsrgits/perl-dbd-interbase.git
fi