[svn:dbd-oracle] r14930 - in dbd-oracle/trunk: . t

[email protected] Wed, 7 Sep 2011 08:04:24 -0700 (PDT)
Newsgroups perl.dbd.oracle.changes
Message-ID <[email protected]>
Author: yanick
Date: Wed Sep  7 08:04:22 2011
New Revision: 14930

Modified:
   dbd-oracle/trunk/Changes
   dbd-oracle/trunk/Makefile.PL
   dbd-oracle/trunk/t/10general.t

Log:
Merge of master@github

* check LD_LIBRARY_PATH_32|64 for solaris
* reverse condition

Modified: dbd-oracle/trunk/Changes
==============================================================================
--- dbd-oracle/trunk/Changes	(original)
+++ dbd-oracle/trunk/Changes	Wed Sep  7 08:04:22 2011
@@ -7,7 +7,10 @@
  [BUG FIXES]
  - support development release versions in GetInfo (Martin J. Evans)
  - don't gag diag() on the tests by default
- - convert a symbolically linked ORACLE_HOME to an absolute path (patch by H.Merijn Brand, applied by Martin J. Evans) [rt70785]
+ - SKIP condition in 10general.t was reversed (reported by Alois) [RT#46761]
+ - Check for LD_LIBRARY_PATH_(32|64) as well for solaris [RT#46761]
+ - convert a symbolically linked ORACLE_HOME to an absolute path 
+    (patch by H.Merijn Brand, applied by Martin J. Evans) [rt70785]
 
 Changes in DBD-Oracle 1.30
   [DOCUMENTATION]

Modified: dbd-oracle/trunk/Makefile.PL
==============================================================================
--- dbd-oracle/trunk/Makefile.PL	(original)
+++ dbd-oracle/trunk/Makefile.PL	Wed Sep  7 08:04:22 2011
@@ -1926,8 +1926,10 @@
 
 
 sub ldlibpth_info {
-    my ($verbose) = @_;
+    my $verbose = shift;
+
     my ($ldlibpthname, $val);
+
     if ($^O eq "hpux") { # hpux is odd again: can use two env vars
         my @envs = grep { $ENV{$_} } qw( LD_LIBRARY_PATH SHLIB_PATH );
         $ldlibpthname = join "/", @envs;
@@ -1935,23 +1937,42 @@
     }
     else {
         $ldlibpthname = $Config{ldlibpthname} or return;
-	$val          = $ENV{$ldlibpthname} || '';
+        $val          = $ENV{$ldlibpthname} || '';
     }
+
     print "Your $ldlibpthname env var is set to '$val'\n" if $verbose;
-    my @dirs = split /\Q$Config{path_sep}/o, $val, -1;
-    return ($ldlibpthname, $val, @dirs);
+
+    return ( $ldlibpthname, $val, split /\Q$Config{path_sep}/, $val );
 }
 
 
 sub check_ldlibpthname {
-    my ($libdir) = @_;
-    $libdir ||= "$OH/".ora_libdir();
-    $libdir =~ s:[\\/]$::;
+    my $libdir = shift || join '/', $OH, ora_libdir();
+
+    $libdir =~ s:[\\/]$::;  # cut final / or \
+
     my ($ldlibpthname, $val, @dirs) = ldlibpth_info(1);
+
+    my $warn_name = $ldlibpthname;
+
     return 1 if grep { s:[\\/]$::; $_ eq $libdir } @dirs;
-    warn "WARNING: Your $ldlibpthname env var doesn't include '$libdir' but probably needs to.$BELL\n";
-    sleep 5;
-    return;
+
+    # on solaris, it can be under LD_LIBRARY_PATH_(32|64)
+    if ( $^O eq 'solaris' ) {
+        my $ld_library_path_name = 'LD_LIBRARY_PATH_' 
+                                 . ( perl_is_64bit() ? '64' : '32' );
+
+        $warn_name .= " or $ld_library_path_name";
+
+        my @dirs = split quotemeta($Config{path_sep}), 
+                         $ENV{$ld_library_path_name};
+
+        s#[\\/]$## for @dirs;  # cut potential final / or \
+
+        return if grep { $_ eq $libdir } @dirs;
+    }
+
+    warn "WARNING: Your $warn_name env var doesn't include '$libdir' but probably needs to.\n";
 }
 
 

Modified: dbd-oracle/trunk/t/10general.t
==============================================================================
--- dbd-oracle/trunk/t/10general.t	(original)
+++ dbd-oracle/trunk/t/10general.t	Wed Sep  7 08:04:22 2011
@@ -1,4 +1,5 @@
-#!perl -w
+use strict;
+use warnings;
 
 use Test::More;
 
@@ -7,7 +8,6 @@
 use Config;
 use DBD::Oracle qw(ORA_OCI);
 
-
 unshift @INC ,'t';
 require 'nchar_test_lib.pl';
 
@@ -32,7 +32,10 @@
 my($sth, $p1, $p2, $tmp);
 SKIP: {
     skip "not unix-like", 2 unless $Config{d_semctl};
-    skip "solaris with OCI>9.x", 2 unless ($^O eq "solaris") and (scalar(ORA_OCI) ge 10);
+
+    my @ora_oci_version = split /\./, ORA_OCI();
+    skip 'solaris with OCI>9.x', 2 
+        if $^O eq 'solaris' and $ora_oci_version[0] > 9;
 
     # basic check that we can fork subprocesses and wait for the status
     # after having connected to Oracle
@@ -111,5 +114,3 @@
 ok((scalar @ora_oci == grep { DBI::looks_like_number($_) } @ora_oci),
   'version looks like numbers');
 is($ora_oci[0], int($ora_oci), 'first number is int');
-
-exit 0;