Revert sloppy workaround in dabde0bc5, addressed by prev. commit
Peter Rabbitson [Thu, 7 Jan 2016 17:37:28 +0000 (18:37 +0100)]
Tighten up the Firebird setup, add an explicit travis-brewed 5.10 smoke and
add extra randomness to the testing order in t/750firebird.t

Tested to bits with:

--- a/maint/travis-ci_scripts/40_script.bash
+++ b/maint/travis-ci_scripts/40_script.bash
@@ -28,15 +28,17 @@ if [[ "$CLEANTEST" = "true" ]] ; then
   run_or_err "Prepare blib" "make pure_all"
   run_harness_tests
 else
-  PROVECMD="prove -lrswj$VCPU_USE xt t"
+  PROVECMD="prove -lrswj$VCPU_USE t/750firebird.t"

   # FIXME - temporary, until Package::Stash is fixed
   if perl -M5.010 -e 1 &>/dev/null ; then
     PROVECMD="$PROVECMD -T"
   fi

+  for f in $(seq 200) ; do
     echo_err "$(tstamp) running tests with \`$PROVECMD\`"
     $PROVECMD 2> >(tee "$TEST_STDERR_LOG")
+  done
 fi
 TEST_T1=$SECONDS

Results at: https://travis-ci.org/ribasushi/dbix-class/builds/100894293

.travis.yml
maint/travis-ci_scripts/10_before_install.bash
t/750firebird.t

index d1755c0..fc6de77 100644 (file)
@@ -62,6 +62,7 @@ env: CLEANTEST=true
 
 perl:
   - "5.8"
+  - "5.10"
   - "5.22-extras"
 
 matrix:
@@ -79,6 +80,12 @@ matrix:
       env:
         - CLEANTEST=false
 
+    - perl: "5.10"
+      sudo: required
+      dist: precise
+      env:
+        - CLEANTEST=false
+
     - perl: "5.22-extras"
       sudo: required
       dist: precise
index 9c54ce3..267ca19 100755 (executable)
@@ -132,27 +132,19 @@ if [[ "$CLEANTEST" != "true" ]]; then
     send "\177\177\177\177yes\r"
     expect "Password for SYSDBA"
     send "123\r"
-    sleep 1
+    sleep 2
     expect eof
   '
   # creating testdb
   # FIXME - this step still fails from time to time >:(((
   # has to do with the FB reconfiguration I suppose
   # for now if it fails twice - simply skip FB testing
-  for i in 1 2 ; do
+  for i in 1 2 3 ; do
 
     run_or_err "Re-configuring Firebird" "
       sync
+      sleep 5
       DEBIAN_FRONTEND=text sudo expect -c '$EXPECT_FB_SCRIPT'
-      sleep 1
-      sync
-      # restart the server for good measure
-      sudo /etc/init.d/firebird2.5-super stop || true
-      sleep 1
-      sync
-      sudo /etc/init.d/firebird2.5-super start
-      sleep 1
-      sync
     "
 
     if run_or_err "Creating Firebird TestDB" \
index f5bd6e6..1066132 100644 (file)
@@ -5,6 +5,7 @@ use Test::More;
 use Test::Exception;
 use DBIx::Class::Optional::Dependencies ();
 use Scope::Guard ();
+use List::Util 'shuffle';
 use Try::Tiny;
 use lib qw(t/lib);
 use DBICTest;
@@ -36,20 +37,11 @@ plan skip_all => join (' ',
 
 my $schema;
 
-my @test_order = map { "DBICTEST_FIREBIRD$_" }
-  DBICTest::RunMode->is_plain
-    ? ('', '_INTERBASE', '_ODBC')   # Least likely to fail
-    : ('_ODBC', '_INTERBASE' , ''); # Most likely to fail
-
-for my $prefix (@test_order) { SKIP: {
+for my $prefix (shuffle keys %$env2optdep) { SKIP: {
 
   skip ("Testing with ${prefix}_DSN needs " . DBIx::Class::Optional::Dependencies->req_missing_for( $env2optdep->{$prefix} ), 1)
     unless  DBIx::Class::Optional::Dependencies->req_ok_for($env2optdep->{$prefix});
 
-  skip ("DBD::InterBase crashes if Firebird or ODBC are also loaded", 1)
-    if $prefix eq 'DBICTEST_FIREBIRD_INTERBASE' and
-      ($ENV{DBICTEST_FIREBIRD_DSN} or $ENV{DBICTEST_FIREBIRD_ODBC_DSN});
-
   my ($dsn, $user, $pass) = map { $ENV{"${prefix}_$_"} } qw/DSN USER PASS/;
 
   note "Testing with ${prefix}_DSN";