jdk/test/tools/launcher/ExecutionEnvironment.java
changeset 22602 0d9a07b0d7e9
parent 21812 c43ac963db3d
child 22606 9c09d5a52807
--- a/jdk/test/tools/launcher/ExecutionEnvironment.java	Wed Jan 08 11:19:25 2014 -0800
+++ b/jdk/test/tools/launcher/ExecutionEnvironment.java	Fri Jan 17 21:54:30 2014 +0100
@@ -72,7 +72,9 @@
 public class ExecutionEnvironment extends TestHelper {
     static final String LD_LIBRARY_PATH    = TestHelper.isMacOSX
             ? "DYLD_LIBRARY_PATH"
-            : "LD_LIBRARY_PATH";
+            : TestHelper.isAIX
+                    ? "LIBPATH"
+                    : "LD_LIBRARY_PATH";
     static final String LD_LIBRARY_PATH_32 = LD_LIBRARY_PATH + "_32";
     static final String LD_LIBRARY_PATH_64 = LD_LIBRARY_PATH + "_64";
 
@@ -144,7 +146,19 @@
 
         for (String x : LD_PATH_STRINGS) {
             if (!tr.contains(x)) {
-                flagError(tr, "FAIL: did not get <" + x + ">");
+                if (TestHelper.isAIX && x.startsWith(LD_LIBRARY_PATH)) {
+                    // AIX does not support the '-rpath' linker options so the
+                    // launchers have to prepend the jdk library path to 'LIBPATH'.
+                    String aixLibPath = LD_LIBRARY_PATH + "=" +
+                        System.getenv(LD_LIBRARY_PATH) +
+                        System.getProperty("path.separator") + LD_LIBRARY_PATH_VALUE;
+                    if (!tr.matches(aixLibPath)) {
+                        flagError(tr, "FAIL: did not get <" + aixLibPath + ">");
+                    }
+                }
+                else {
+                    flagError(tr, "FAIL: did not get <" + x + ">");
+                }
             }
         }
     }
@@ -180,7 +194,7 @@
 
         Map<String, String> env = new HashMap<>();
 
-        if (TestHelper.isLinux || TestHelper.isMacOSX) {
+        if (TestHelper.isLinux || TestHelper.isMacOSX || TestHelper.isAIX) {
             for (String x : LD_PATH_STRINGS) {
                 String pairs[] = x.split("=");
                 env.put(pairs[0], pairs[1]);