1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-29 20:05:35 +02:00

bug 311468: JUnit failure: ErrorParserFileMatchingTest - SymbolicLink

finally, a fix
This commit is contained in:
Andrew Gvozdev 2010-05-13 15:05:14 +00:00
parent f3fdc00e62
commit 8e90b2c6f8

View file

@ -538,30 +538,16 @@ public class ResourceHelper {
String command = "ln -s " + realPath.toOSString() + ' ' + linkedPath.toOSString();
Process process = Runtime.getRuntime().exec(command);
// Thread is not supposed to be in interrupted state here and it causes waitFor() to throw immediately
Assert.assertFalse("Thread is in interrupted state", Thread.interrupted());
try {
process.waitFor();
} catch (InterruptedException e) {
Assert.assertTrue("Command to create symbolic link was interrupted: "+e.getMessage(),
new File(linkedPath.toOSString()).exists());
}
if (!new File(linkedPath.toOSString()).exists()) {
// Not supposed to happen, trying to figure out what's going on
final int timeCount = 5;
for (int i=1;i<=timeCount;i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
if (new File(linkedPath.toOSString()).exists()) {
Assert.fail("Symbolic link created only after "+i+" seconds: [" + command +"]");
break;
}
}
Assert.fail("Symbolic link NOT created after "+timeCount+" seconds: [" + command +"]");
} finally {
// Clear interrupted state, see Java bug http://bugs.sun.com/view_bug.do?bug_id=6420270
Thread.interrupted();
}
Assert.assertTrue("Symbolic link not created, command=[" + command +"]", new File(linkedPath.toOSString()).exists());
IResource resource = project.getFile(linkName);
resource.refreshLocal(IResource.DEPTH_ZERO, null);