Lines 382-391
Link Here
|
382 |
public void testCanceling() { |
382 |
public void testCanceling() { |
383 |
final TestBarrier barrier = new TestBarrier(); |
383 |
final TestBarrier barrier = new TestBarrier(); |
384 |
barrier.setStatus(TestBarrier.STATUS_WAIT_FOR_START); |
384 |
barrier.setStatus(TestBarrier.STATUS_WAIT_FOR_START); |
385 |
final boolean[] canceling = new boolean[] {false}; |
385 |
final int[] canceling = new int[] {0}; |
386 |
Job job = new Job("Testing#testCanceling") { |
386 |
Job job = new Job("Testing#testCanceling") { |
387 |
protected void canceling() { |
387 |
protected void canceling() { |
388 |
canceling[0] = true; |
388 |
canceling[0]++; |
389 |
} |
389 |
} |
390 |
|
390 |
|
391 |
protected IStatus run(IProgressMonitor monitor) { |
391 |
protected IStatus run(IProgressMonitor monitor) { |
Lines 397-405
Link Here
|
397 |
//schedule the job and wait on the barrier until it is running |
397 |
//schedule the job and wait on the barrier until it is running |
398 |
job.schedule(); |
398 |
job.schedule(); |
399 |
barrier.waitForStatus(TestBarrier.STATUS_WAIT_FOR_RUN); |
399 |
barrier.waitForStatus(TestBarrier.STATUS_WAIT_FOR_RUN); |
400 |
assertTrue("1.0", !canceling[0]); |
400 |
assertTrue("1.0", canceling[0] == 0); |
401 |
job.cancel(); |
401 |
job.cancel(); |
402 |
assertTrue("1.1", canceling[0]); |
402 |
assertTrue("1.1", canceling[0] == 1); |
|
|
403 |
job.cancel(); |
404 |
assertTrue("1.2", canceling[0] == 1); |
403 |
//let the job finish |
405 |
//let the job finish |
404 |
barrier.setStatus(TestBarrier.STATUS_RUNNING); |
406 |
barrier.setStatus(TestBarrier.STATUS_RUNNING); |
405 |
waitForState(job, Job.NONE); |
407 |
waitForState(job, Job.NONE); |
Lines 411-421
Link Here
|
411 |
public void testCancelingByMonitor() { |
413 |
public void testCancelingByMonitor() { |
412 |
final TestBarrier barrier = new TestBarrier(); |
414 |
final TestBarrier barrier = new TestBarrier(); |
413 |
barrier.setStatus(TestBarrier.STATUS_WAIT_FOR_START); |
415 |
barrier.setStatus(TestBarrier.STATUS_WAIT_FOR_START); |
414 |
final boolean[] canceling = new boolean[] {false}; |
416 |
final int[] canceling = new int[] {0}; |
415 |
final IProgressMonitor[] jobmonitor = new IProgressMonitor[1]; |
417 |
final IProgressMonitor[] jobmonitor = new IProgressMonitor[1]; |
416 |
Job job = new Job("Testing#testCancelingByMonitor") { |
418 |
Job job = new Job("Testing#testCancelingByMonitor") { |
417 |
protected void canceling() { |
419 |
protected void canceling() { |
418 |
canceling[0] = true; |
420 |
canceling[0]++; |
419 |
} |
421 |
} |
420 |
|
422 |
|
421 |
protected IStatus run(IProgressMonitor monitor) { |
423 |
protected IStatus run(IProgressMonitor monitor) { |
Lines 427-439
Link Here
|
427 |
}; |
429 |
}; |
428 |
//run test twice to ensure job is left in a clean state after first cancelation |
430 |
//run test twice to ensure job is left in a clean state after first cancelation |
429 |
for (int i = 0; i < 2; i++) { |
431 |
for (int i = 0; i < 2; i++) { |
430 |
canceling[0] = false; |
432 |
canceling[0] = 0; |
431 |
//schedule the job and wait on the barrier until it is running |
433 |
//schedule the job and wait on the barrier until it is running |
432 |
job.schedule(); |
434 |
job.schedule(); |
433 |
barrier.waitForStatus(TestBarrier.STATUS_WAIT_FOR_RUN); |
435 |
barrier.waitForStatus(TestBarrier.STATUS_WAIT_FOR_RUN); |
434 |
assertTrue(Integer.toString(i) + ".1.0", !canceling[0]); |
436 |
assertEquals(Integer.toString(i) + ".1.0", 0, canceling[0]); |
|
|
437 |
jobmonitor[0].setCanceled(true); |
438 |
assertEquals(Integer.toString(i) + ".1.1", 1, canceling[0]); |
435 |
jobmonitor[0].setCanceled(true); |
439 |
jobmonitor[0].setCanceled(true); |
436 |
assertTrue(Integer.toString(i) + ".1.1", canceling[0]); |
440 |
assertEquals(Integer.toString(i) + ".1.2", 1, canceling[0]); |
437 |
//let the job finish |
441 |
//let the job finish |
438 |
barrier.setStatus(TestBarrier.STATUS_RUNNING); |
442 |
barrier.setStatus(TestBarrier.STATUS_RUNNING); |
439 |
waitForState(job, Job.NONE); |
443 |
waitForState(job, Job.NONE); |