7174723: java/lang/ProcessBuilder/Basic.java failing [win] (original) (raw)
Alan Bateman Alan.Bateman at oracle.com
Thu Jun 7 14🔞45 UTC 2012
- Previous message: hg: jdk8/tl/jdk: 7163471: Licensee source bundle failed around 7u4
- Next message: hg: jdk8/tl/jdk: 7175041: HttpTimestamper should accept https URI
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Mike,
ProcessBuilder/Basic.java has been failing on Windows since the hash work went into jdk8/tl. This test is 11500 tests in one and the removeMappings fix fixes some of the failures. I looked into remaining issues today and it's another assumption on iteration order. A child process prints out the map of its environment variables and the parent assumes the order that they come back. I've changed the test so that the child process sorts them and adjusted the order that the parent expects. This means the test is passing again on all platforms. Attached is the patch. Assuming you are okay with then then we can push it after you push the fix for 7174736.
-Alan
diff --git a/test/java/lang/ProcessBuilder/Basic.java b/test/java/lang/ProcessBuilder/Basic.java --- a/test/java/lang/ProcessBuilder/Basic.java +++ b/test/java/lang/ProcessBuilder/Basic.java @@ -248,6 +248,7 @@ public class Basic {
private static String getenvAsString(Map<String,String> environment) {
StringBuilder sb = new StringBuilder();
environment = new TreeMap<>(environment); for (Map.Entry<String,String> e : environment.entrySet()) // Ignore magic environment variables added by the launcher if (! e.getKey().equals("NLSPATH") &&
@@ -1625,7 +1626,7 @@ public class Basic { childArgs.add("System.getenv()"); String[] cmdp = childArgs.toArray(new String[childArgs.size()]); String[] envp;
String[] envpWin = {"=ExitValue=3", "=C:=\\",
"SystemRoot="+systemRoot};
String[] envpWin = {"=C:=\\", "=ExitValue=3",
"SystemRoot="+systemRoot}; String[] envpOth = {"=ExitValue=3", "=C:=\"}; if (Windows.is()) { envp = envpWin; @@ -1633,7 +1634,7 @@ public class Basic { envp = envpOth; } Process p = Runtime.getRuntime().exec(cmdp, envp);
String expected = Windows.is() ?
"=C:=\,SystemRoot="+systemRoot+",=ExitValue=3," : "=C:=\,";
String expected = Windows.is() ?
"=C:=\,=ExitValue=3,SystemRoot="+systemRoot+"," : "=C:=\,"; String commandOutput = commandOutput(p); if (MacOSX.is()) { commandOutput = removeMacExpectedVars(commandOutput); @@ -1690,7 +1691,7 @@ public class Basic { commandOutput = removeMacExpectedVars(commandOutput); } check(commandOutput.equals(Windows.is()
? "SystemRoot="+systemRoot+",LC_ALL=C,"
? "LC_ALL=C,SystemRoot="+systemRoot+"," : "LC_ALL=C,"), "Incorrect handling of envstrings containing NULs"); } catch (Throwable t) { unexpected(t); }
- Previous message: hg: jdk8/tl/jdk: 7163471: Licensee source bundle failed around 7u4
- Next message: hg: jdk8/tl/jdk: 7175041: HttpTimestamper should accept https URI
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]