Lines 333-336
Link Here
|
333 |
assertTrue("3.0", builder.wasIncrementalBuild()); |
333 |
assertTrue("3.0", builder.wasIncrementalBuild()); |
334 |
|
334 |
|
335 |
} |
335 |
} |
|
|
336 |
|
337 |
|
338 |
|
339 |
|
340 |
|
341 |
|
342 |
/** |
343 |
* Tests that a builder that responds only to the "full" trigger will be called |
344 |
* on the first and only first build after a clean. |
345 |
* See bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=206540. |
346 |
*/ |
347 |
public void testCleanBuild_AfterCleanBuilder() throws CoreException { |
348 |
IWorkspace workspace = getWorkspace(); |
349 |
IProject project = workspace.getRoot().getProject("PROJECT" + 1); |
350 |
ICommand command = null; |
351 |
|
352 |
// Create some resources |
353 |
project.create(getMonitor()); |
354 |
project.open(getMonitor()); |
355 |
|
356 |
// Create and set a build specs for project |
357 |
IProjectDescription desc = project.getDescription(); |
358 |
command = createCommand(desc, CustomTriggerBuilder.BUILDER_NAME, "Build0"); |
359 |
command.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, false); |
360 |
command.setBuilding(IncrementalProjectBuilder.FULL_BUILD, true); |
361 |
command.setBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD, false); |
362 |
command.setBuilding(IncrementalProjectBuilder.CLEAN_BUILD, false); |
363 |
desc.setBuildSpec(new ICommand[] {command}); |
364 |
project.setDescription(desc, getMonitor()); |
365 |
command = project.getDescription().getBuildSpec()[0]; |
366 |
|
367 |
// turn auto-building off |
368 |
setAutoBuilding(false); |
369 |
|
370 |
// do an initial build to get the builder instance |
371 |
try { |
372 |
project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, getMonitor()); |
373 |
} catch (CoreException e) { |
374 |
fail("1.0", e); |
375 |
} |
376 |
waitForBuild(); |
377 |
CustomTriggerBuilder builder = CustomTriggerBuilder.getInstance(); |
378 |
assertNotNull("2.0", builder); |
379 |
assertTrue("2.1", builder.wasFullBuild()); |
380 |
|
381 |
// do a clean - builder should not be called |
382 |
builder.clearBuildTrigger(); |
383 |
builder.reset(); |
384 |
workspace.build(IncrementalProjectBuilder.CLEAN_BUILD, getMonitor()); |
385 |
assertTrue("3.0",!builder.wasCleanBuild()); |
386 |
assertTrue("3.1",!builder.wasFullBuild()); |
387 |
|
388 |
// do an incremental build - FULL_BUILD should be triggered |
389 |
builder.clearBuildTrigger(); |
390 |
builder.reset(); |
391 |
workspace.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, getMonitor()); |
392 |
waitForBuild(); |
393 |
assertTrue("4.0",!builder.wasCleanBuild()); |
394 |
assertTrue("4.1",builder.wasFullBuild()); |
395 |
|
396 |
// add a file in the project before an incremental build is triggered again |
397 |
IFile file = project.getFile("a.txt"); |
398 |
try { |
399 |
file.create(getRandomContents(), IResource.NONE, getMonitor()); |
400 |
} catch (CoreException e) { |
401 |
fail("5.00", e); |
402 |
} |
403 |
|
404 |
// do an incremental build - build should NOT be triggered |
405 |
builder.clearBuildTrigger(); |
406 |
builder.reset(); |
407 |
workspace.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, getMonitor()); |
408 |
waitForBuild(); |
409 |
assertTrue("6.0",!builder.wasCleanBuild()); |
410 |
assertTrue("6.1",!builder.wasFullBuild()); |
411 |
} |
412 |
|
413 |
/** |
414 |
* Tests that a builder that responds only to the "full" trigger will be called |
415 |
* on the first and only first build after a clean. |
416 |
* See bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=206540. |
417 |
*/ |
418 |
public void testCleanAutoBuild_AfterCleanBuilder() throws CoreException { |
419 |
IWorkspace workspace = getWorkspace(); |
420 |
IProject project = workspace.getRoot().getProject("PROJECT" + 1); |
421 |
ICommand command = null; |
422 |
|
423 |
// Create some resources |
424 |
project.create(getMonitor()); |
425 |
project.open(getMonitor()); |
426 |
|
427 |
// Create and set a build specs for project |
428 |
IProjectDescription desc = project.getDescription(); |
429 |
command = createCommand(desc, CustomTriggerBuilder.BUILDER_NAME, "Build0"); |
430 |
command.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, false); |
431 |
command.setBuilding(IncrementalProjectBuilder.FULL_BUILD, true); |
432 |
command.setBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD, false); |
433 |
command.setBuilding(IncrementalProjectBuilder.CLEAN_BUILD, false); |
434 |
desc.setBuildSpec(new ICommand[] {command}); |
435 |
project.setDescription(desc, getMonitor()); |
436 |
command = project.getDescription().getBuildSpec()[0]; |
437 |
|
438 |
// turn auto-building on |
439 |
setAutoBuilding(true); |
440 |
waitForBuild(); |
441 |
CustomTriggerBuilder builder = CustomTriggerBuilder.getInstance(); |
442 |
assertNotNull("1.0", builder); |
443 |
assertTrue("1.1", builder.wasFullBuild()); |
444 |
|
445 |
// do a clean - builder should not be called |
446 |
builder.clearBuildTrigger(); |
447 |
builder.reset(); |
448 |
workspace.build(IncrementalProjectBuilder.CLEAN_BUILD, getMonitor()); |
449 |
assertTrue("2.0",!builder.wasCleanBuild()); |
450 |
assertTrue("2.1",!builder.wasFullBuild()); |
451 |
|
452 |
|
453 |
// add a file in the project to trigger an auto-build - FULL_BUILD should be triggered |
454 |
builder.clearBuildTrigger(); |
455 |
builder.reset(); |
456 |
|
457 |
IFile file = project.getFile("a.txt"); |
458 |
try { |
459 |
file.create(getRandomContents(), IResource.NONE, getMonitor()); |
460 |
} catch (CoreException e) { |
461 |
fail("3.00", e); |
462 |
} |
463 |
|
464 |
waitForBuild(); |
465 |
assertTrue("4.0",!builder.wasCleanBuild()); |
466 |
assertTrue("4.1",builder.wasFullBuild()); |
467 |
|
468 |
// add another file in the project to trigger an auto-build - build should NOT be triggered |
469 |
builder.clearBuildTrigger(); |
470 |
builder.reset(); |
471 |
|
472 |
file = project.getFile("b.txt"); |
473 |
try { |
474 |
file.create(getRandomContents(), IResource.NONE, getMonitor()); |
475 |
} catch (CoreException e) { |
476 |
fail("5.00", e); |
477 |
} |
478 |
|
479 |
waitForBuild(); |
480 |
assertTrue("6.0",!builder.wasCleanBuild()); |
481 |
assertTrue("6.1",!builder.wasFullBuild()); |
482 |
} |
336 |
} |
483 |
} |