Skip to content

Commit cdfe96a

Browse files
committed
VirtualLazyTreeViewerTest: avoid silent failures and force active shell
Several tests in VirtualLazyTreeViewerTest silently fail because the tree data is not set and the test then simply returns as succeeding. This change does the following: * Force shell activation to avoid the silent test failures * Make that the variable identifying data to be set volatile to be consistent across threads * Make the tests fail explicitly rather than silently Contributes to #1583
1 parent 6369b3d commit cdfe96a

File tree

1 file changed

+22
-81
lines changed

1 file changed

+22
-81
lines changed

tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/VirtualLazyTreeViewerTest.java

Lines changed: 22 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,19 @@
1818
import static org.junit.Assert.assertEquals;
1919
import static org.junit.Assert.assertFalse;
2020
import static org.junit.Assert.assertTrue;
21+
import static org.junit.Assume.assumeFalse;
2122

2223
import org.eclipse.jface.viewers.StructuredViewer;
2324
import org.eclipse.jface.viewers.TreeViewer;
2425
import org.eclipse.swt.SWT;
2526
import org.eclipse.swt.widgets.Composite;
2627
import org.eclipse.swt.widgets.Tree;
2728
import org.junit.Ignore;
28-
import org.junit.Rule;
2929
import org.junit.Test;
30-
import org.junit.rules.TestName;
3130

3231
public class VirtualLazyTreeViewerTest extends TreeViewerTest {
3332

34-
@Rule
35-
public TestName testName = new TestName();
36-
37-
protected int setDataCalls = 0;
33+
protected volatile int setDataCalls = 0;
3834

3935
@Override
4036
protected StructuredViewer createViewer(Composite parent) {
@@ -48,6 +44,7 @@ protected StructuredViewer createViewer(Composite parent) {
4844
@Override
4945
public void setUp() {
5046
super.setUp();
47+
fShell.forceActive();
5148
// process events because the content provider uses an asyncExec to set the item
5249
// count of the tree
5350
processEvents();
@@ -117,7 +114,6 @@ public void testInsertSiblingWithFilterNotFiltered() {
117114
@Ignore("no need to test since virtual trees do not support sorting")
118115
@Override
119116
public void testInsertSiblingWithSorter() {
120-
// no need to test since virtual trees do not support sorting
121117
}
122118

123119
@Ignore("no need to test since virtual trees do not support filtering")
@@ -140,131 +136,76 @@ public void testSorter() {
140136
public void testChildIsNotDuplicatedWhenCompareEquals() {
141137
}
142138

143-
// Temporary overrides for bug 347491:
139+
// Temporary overrides for bug 347491
144140
@Test
145141
@Override
146142
public void testRefreshWithAddedChildren() {
147-
if (disableTestsBug347491) {
148-
return;
149-
}
150-
if (setDataCalls == 0) {
151-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
152-
return;
153-
}
143+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
144+
assertTrue("data must have been set", setDataCalls > 0);
154145
super.testRefreshWithAddedChildren();
155146
}
156147

157148
@Test
158149
@Override
159150
public void testDeleteSibling() {
160-
if (disableTestsBug347491) {
161-
return;
162-
}
163-
if (setDataCalls == 0) {
164-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
165-
return;
166-
}
151+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
152+
assertTrue("data must have been set", setDataCalls > 0);
167153
super.testDeleteSibling();
168154
}
169155

170-
@Test
171-
@Override
172-
public void testExpandToLevel() {
173-
if (setDataCalls == 0) {
174-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
175-
return;
176-
}
177-
super.testExpandToLevel();
178-
}
179-
180156
@Test
181157
@Override
182158
public void testInsertSibling() {
183-
if (disableTestsBug347491) {
184-
return;
185-
}
186-
if (setDataCalls == 0) {
187-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
188-
return;
189-
}
159+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
160+
assertTrue("data must have been set", setDataCalls > 0);
190161
super.testInsertSibling();
191162
}
192163

193164
@Test
194165
@Override
195166
public void testInsertSiblings() {
196-
if (disableTestsBug347491) {
197-
return;
198-
}
199-
if (setDataCalls == 0) {
200-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
201-
return;
202-
}
167+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
168+
assertTrue("data must have been set", setDataCalls > 0);
203169
super.testInsertSiblings();
204170
}
205171

206172
@Test
207173
@Override
208174
public void testSetInput() {
209-
if (disableTestsBug347491) {
210-
return;
211-
}
212-
if (setDataCalls == 0) {
213-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
214-
return;
215-
}
175+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
176+
assertTrue("data must have been set", setDataCalls > 0);
216177
super.testSetInput();
217178
}
218179

219180
@Test
220181
@Override
221182
public void testSomeChildrenChanged() {
222-
if (disableTestsBug347491) {
223-
return;
224-
}
225-
if (setDataCalls == 0) {
226-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
227-
return;
228-
}
183+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
184+
assertTrue("data must have been set", setDataCalls > 0);
229185
super.testSomeChildrenChanged();
230186
}
231187

232188
@Test
233189
@Override
234190
public void testWorldChanged() {
235-
if (disableTestsBug347491) {
236-
return;
237-
}
238-
if (setDataCalls == 0) {
239-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
240-
return;
241-
}
191+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
192+
assertTrue("data must have been set", setDataCalls > 0);
242193
super.testWorldChanged();
243194
}
244195

245196
@Test
246197
@Override
247198
public void testContains() {
248-
if (disableTestsBug347491) {
249-
return;
250-
}
251-
if (setDataCalls == 0) {
252-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
253-
return;
254-
}
199+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
200+
assertTrue("data must have been set", setDataCalls > 0);
255201
super.testContains();
256202
}
257203

258204
@Test
259205
@Override
260206
public void testAutoExpandOnSingleChildThroughEvent() {
261-
if (disableTestsBug347491) {
262-
return;
263-
}
264-
if (setDataCalls == 0) {
265-
System.err.println("SWT.SetData is not received. Cancelled test " + testName.getMethodName());
266-
return;
267-
}
207+
assumeFalse("test disabled because of bug 347491", disableTestsBug347491);
208+
assertTrue("data must have been set", setDataCalls > 0);
268209
super.testAutoExpandOnSingleChildThroughEvent();
269210
}
270211

0 commit comments

Comments
 (0)