source maint/travis-ci_scripts/common.bash
if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then return ; fi
-# poison the environment - basically look through lib, find all mentioned
-# ENVvars and set them to true and see if anything explodes
+# poison the environment
if [[ "$POISON_ENV" = "true" ]] ; then
+
+ # look through lib, find all mentioned ENVvars and set them
+ # to true and see if anything explodes
for var in $(grep -P '\$ENV\{' -r lib/ | grep -oP 'DBIC_\w+' | sort -u | grep -v DBIC_TRACE) ; do
if [[ -z "${!var}" ]] ; then
export $var=1
fi
done
+ # bogus nonexisting DBI_*
export DBI_DSN="dbi:ODBC:server=NonexistentServerAddress"
export DBI_DRIVER="ADO"
+ # make sure tests do not rely on implicid order of returned results
export DBICTEST_SQLITE_REVERSE_DEFAULT_ORDER=1
+
+ # 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"
+
+ export PERL5LIB="$( ls -d ~/.cpanm/latest-build/DBIx-Class-*/lib | tail -n1 ):$PERL5LIB"
+
+ # 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)"
fi
if [[ "$CLEANTEST" = "true" ]]; then
# effects from travis preinstalls)
# trick cpanm into executing true as shell - we just need the find+unpack
- run_or_err "Downloading DBIC inc/ from CPAN" \
+ [[ -d ~/.cpanm/latest-build/DBIx-Class-*/inc ]] || run_or_err "Downloading latest stable DBIC inc/ from CPAN" \
"SHELL=/bin/true cpanm --look DBIx::Class"
mv ~/.cpanm/latest-build/DBIx-Class-*/inc .
# So instead we still use our stock (possibly old) CPAN, and add some
# handholding
- # no configure_requires - we will need the usual suspects anyway
- # without pre-installign these in one pass things like extract_prereqs won't work
- CPAN_is_sane || installdeps ExtUtils::MakeMaker ExtUtils::CBuilder Module::Build
+ if [[ "$DEVREL_DEPS" == "true" ]] ; then
+ # Many dists still do not pass tests under tb1.5 properly (and it itself
+ # does not even install on things like 5.10). Install the *stable-dev*
+ # latest T::B here, so that it will not show up as a dependency, and
+ # hence it will not get installed a second time as an unsatisfied dep
+ # under cpanm --dev
+ installdeps 'Test::Builder~<1.005'
+
+ elif ! CPAN_is_sane ; then
+ # no configure_requires - we will need the usual suspects anyway
+ # without pre-installing these in one pass things like extract_prereqs won't work
+ installdeps ExtUtils::MakeMaker ExtUtils::CBuilder Module::Build
+
+ fi
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
+ # FIXME - need new TB1.5 devrel
# if we run under --dev install latest github of TB1.5 first
# (unreleased workaround for precedence warnings)
if [[ "$DEVREL_DEPS" == "true" ]] ; 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
- run_or_err "Fetching patched DBD::InterBase" \
- "git clone https://github.com/dbsrgits/perl-dbd-interbase ~/dbd-interbase"
-
- parallel_installdeps_notest ~/dbd-interbase/
+ parallel_installdeps_notest git://github.com/dbsrgits/perl-dbd-interbase.git
fi
fi
# we may need to prepend some stuff to that list
HARD_DEPS="$(echo $(make listdeps))"
-##### TEMPORARY WORKAROUNDS
- if ! CPAN_is_sane ; then
+##### TEMPORARY WORKAROUNDS needed in case we will be using CPAN.pm
+ if [[ "$DEVREL_DEPS" != "true" ]] && ! CPAN_is_sane ; then
# combat dzillirium on harness-wide level, otherwise breakage happens weekly
echo_err "$(tstamp) Ancient CPAN.pm: engaging TAP::Harness::IgnoreNonessentialDzilAutogeneratedTests during dep install"
perl -MTAP::Harness=3.18 -e1 &>/dev/null || run_or_err "Upgrading TAP::Harness for HARNESS_SUBCLASS support" "cpan TAP::Harness"