get errors from xbuild
This commit is contained in:
parent
f21ec5826e
commit
2cea58868f
|
@ -419,8 +419,10 @@ public abstract class BaseTest {
|
||||||
"/p:Configuration=Release",
|
"/p:Configuration=Release",
|
||||||
getTestProjectFile().getAbsolutePath()
|
getTestProjectFile().getAbsolutePath()
|
||||||
};
|
};
|
||||||
System.err.println("Starting build "+Utils.join(args, " "));
|
System.err.println("Starting build "+ Utils.join(args, " "));
|
||||||
Process process = Runtime.getRuntime().exec(args, null, new File(tmpdir));
|
ProcessBuilder pb = new ProcessBuilder(args);
|
||||||
|
pb.directory(new File(tmpdir));
|
||||||
|
Process process = pb.start();
|
||||||
StreamVacuum stdoutVacuum = new StreamVacuum(process.getInputStream());
|
StreamVacuum stdoutVacuum = new StreamVacuum(process.getInputStream());
|
||||||
StreamVacuum stderrVacuum = new StreamVacuum(process.getErrorStream());
|
StreamVacuum stderrVacuum = new StreamVacuum(process.getErrorStream());
|
||||||
stdoutVacuum.start();
|
stdoutVacuum.start();
|
||||||
|
@ -428,11 +430,13 @@ public abstract class BaseTest {
|
||||||
process.waitFor();
|
process.waitFor();
|
||||||
stdoutVacuum.join();
|
stdoutVacuum.join();
|
||||||
stderrVacuum.join();
|
stderrVacuum.join();
|
||||||
if ( stderrVacuum.toString().length()>0 ) {
|
// xbuild sends errors to output, so check exit code
|
||||||
this.stderrDuringParse = stderrVacuum.toString();
|
boolean success = process.exitValue()==0;
|
||||||
System.err.println("buildProject stderrVacuum: "+ stderrVacuum);
|
if ( !success ) {
|
||||||
|
this.stderrDuringParse = stdoutVacuum.toString();
|
||||||
|
System.err.println("buildProject stderrVacuum: "+ this.stderrDuringParse);
|
||||||
}
|
}
|
||||||
return process.exitValue()==0;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String locateMSBuild() {
|
private String locateMSBuild() {
|
||||||
|
@ -475,7 +479,7 @@ public abstract class BaseTest {
|
||||||
String runtimeName = isWindows() ? "Antlr4.Runtime.vs2013.csproj" : "Antlr4.Runtime.mono.csproj";
|
String runtimeName = isWindows() ? "Antlr4.Runtime.vs2013.csproj" : "Antlr4.Runtime.mono.csproj";
|
||||||
final URL runtimeProj = loader.getResource("CSharp/runtime/CSharp/Antlr4.Runtime/"+runtimeName);
|
final URL runtimeProj = loader.getResource("CSharp/runtime/CSharp/Antlr4.Runtime/"+runtimeName);
|
||||||
if ( runtimeProj==null ) {
|
if ( runtimeProj==null ) {
|
||||||
throw new RuntimeException("C# runtime project file not found at:" + runtimeProj.getPath());
|
throw new RuntimeException("C# runtime project file not found!");
|
||||||
}
|
}
|
||||||
String runtimeProjPath = runtimeProj.getPath();
|
String runtimeProjPath = runtimeProj.getPath();
|
||||||
XPathExpression exp = XPathFactory.newInstance().newXPath()
|
XPathExpression exp = XPathFactory.newInstance().newXPath()
|
||||||
|
@ -532,12 +536,12 @@ public abstract class BaseTest {
|
||||||
new String[] { "mono", exec, new File(tmpdir, "input").getAbsolutePath() };
|
new String[] { "mono", exec, new File(tmpdir, "input").getAbsolutePath() };
|
||||||
ProcessBuilder pb = new ProcessBuilder(args);
|
ProcessBuilder pb = new ProcessBuilder(args);
|
||||||
pb.directory(new File(tmpdir));
|
pb.directory(new File(tmpdir));
|
||||||
Process p = pb.start();
|
Process process = pb.start();
|
||||||
StreamVacuum stdoutVacuum = new StreamVacuum(p.getInputStream());
|
StreamVacuum stdoutVacuum = new StreamVacuum(process.getInputStream());
|
||||||
StreamVacuum stderrVacuum = new StreamVacuum(p.getErrorStream());
|
StreamVacuum stderrVacuum = new StreamVacuum(process.getErrorStream());
|
||||||
stdoutVacuum.start();
|
stdoutVacuum.start();
|
||||||
stderrVacuum.start();
|
stderrVacuum.start();
|
||||||
p.waitFor();
|
process.waitFor();
|
||||||
stdoutVacuum.join();
|
stdoutVacuum.join();
|
||||||
stderrVacuum.join();
|
stderrVacuum.join();
|
||||||
String output = stdoutVacuum.toString();
|
String output = stdoutVacuum.toString();
|
||||||
|
|
Loading…
Reference in New Issue