mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
dispose fixture root disposable before project fixture tearDown
the latter checks if temp injectors are removed, and they're removed in the former should fix damn flaky PsiAnchorTest (still not sure why flaky)
This commit is contained in:
+9
-1
@@ -47,11 +47,19 @@ public class BaseFixture implements IdeaTestFixture {
|
||||
public void tearDown() throws Exception {
|
||||
Assert.assertTrue("setUp() has not been called", myInitialized);
|
||||
Assert.assertFalse("tearDown() already has been called", myDisposed);
|
||||
EdtTestUtil.runInEdtAndWait(() -> Disposer.dispose(myTestRootDisposable));
|
||||
disposeRootDisposable();
|
||||
myDisposed = true;
|
||||
resetClassFields(getClass());
|
||||
}
|
||||
|
||||
protected void disposeRootDisposable() {
|
||||
EdtTestUtil.runInEdtAndWait(() -> {
|
||||
if (!Disposer.isDisposed(myTestRootDisposable)) {
|
||||
Disposer.dispose(myTestRootDisposable);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void resetClassFields(final Class<?> aClass) {
|
||||
try {
|
||||
UsefulTestCase.clearDeclaredFields(this, aClass);
|
||||
|
||||
+1
@@ -1237,6 +1237,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
myChooseByNamePopup = null;
|
||||
})
|
||||
// don't use method references here to make stack trace reading easier
|
||||
.append(() -> disposeRootDisposable())
|
||||
.append(() -> EdtTestUtil.runInEdtAndWait(() -> myProjectFixture.tearDown()))
|
||||
.append(() -> EdtTestUtil.runInEdtAndWait(() -> myTempDirFixture.tearDown()))
|
||||
.append(() -> super.tearDown())
|
||||
|
||||
Reference in New Issue
Block a user