Read process output before waiting for it to finish
Otherwise process may hang when output buffer is full.
Test: verified with a setup showing hanging symptoms
Change-Id: Icefa8497d4688c87c9bf8ecbce9d99760013b086
diff --git a/tools/selinux/SELinuxNeverallowTestFrame.py b/tools/selinux/SELinuxNeverallowTestFrame.py
index 370b40b..5f9f768 100644
--- a/tools/selinux/SELinuxNeverallowTestFrame.py
+++ b/tools/selinux/SELinuxNeverallowTestFrame.py
@@ -155,7 +155,6 @@
pb.redirectOutput(ProcessBuilder.Redirect.PIPE);
pb.redirectErrorStream(true);
Process p = pb.start();
- p.waitFor();
BufferedReader result = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
StringBuilder errorString = new StringBuilder();
@@ -163,6 +162,7 @@
errorString.append(line);
errorString.append("\\n");
}
+ p.waitFor();
assertTrue("The following errors were encountered when validating the SELinux"
+ "neverallow rule:\\n" + neverallowRule + "\\n" + errorString,
errorString.length() == 0);