/**
   * Checks if a file from error output can be found.
   *
   * @throws Exception...
   */
  public void testBuildDir() throws Exception {
    ResourceHelper.createEfsFolder(fProject, "Folder", "null:/Folder");
    ResourceHelper.createEfsFile(fProject, "Folder/testBuildDir.c", "null:/Folder/testBuildDir.c");
    ResourceHelper.createEfsFolder(fProject, "BuildDir", "null:/BuildDir");
    ResourceHelper.createEfsFile(
        fProject, "BuildDir/testBuildDir.c", "null:/BuildDir/testBuildDir.c");

    String buildDir = fProject.getLocation().append("BuildDir").toOSString();
    parseOutput(fProject, buildDir, "testBuildDir.c:1:error");
    assertEquals(1, errorList.size());

    ProblemMarkerInfo problemMarkerInfo = errorList.get(0);
    assertEquals(
        "L/FindMatchingFilesEfsTest/BuildDir/testBuildDir.c", problemMarkerInfo.file.toString());
    assertEquals(1, problemMarkerInfo.lineNumber);
    assertEquals("error", problemMarkerInfo.description);
  }
  /**
   * Checks if a file from error output can be found.
   *
   * @throws Exception...
   */
  public void testRelativePathDotFromSubfolder() throws Exception {
    ResourceHelper.createEfsFolder(fProject, "Subfolder", "null:/Subfolder");
    ResourceHelper.createEfsFolder(fProject, "Subfolder/Folder", "null:/Subfolder/Folder");
    ResourceHelper.createEfsFile(
        fProject,
        "Subfolder/Folder/testRelativePathDotFromSubfolder.c",
        "null:/Subfolder/Folder/testRelativePathDotFromSubfolder.c");

    parseOutput("./Folder/testRelativePathDotFromSubfolder.c:1:error");
    assertEquals(1, errorList.size());

    ProblemMarkerInfo problemMarkerInfo = errorList.get(0);
    assertEquals(
        "L/FindMatchingFilesEfsTest/Subfolder/Folder/testRelativePathDotFromSubfolder.c",
        problemMarkerInfo.file.toString());
    assertEquals(1, problemMarkerInfo.lineNumber);
    assertEquals("error", problemMarkerInfo.description);
  }
  /**
   * Checks if a file from error output can be found.
   *
   * @throws Exception...
   */
  public void testInFolder() throws Exception {
    ResourceHelper.createEfsFolder(fProject, "Folder", "null:/Folder");
    ResourceHelper.createEfsFile(
        fProject, "Folder/testInFolder.c", "null:/EfsFolder/efsTestInFolder.c");

    parseOutput("efsTestInFolder.c:1:error");
    assertEquals(1, errorList.size());

    ProblemMarkerInfo problemMarkerInfo = errorList.get(0);
    assertEquals(
        "L/FindMatchingFilesEfsTest/Folder/testInFolder.c", problemMarkerInfo.file.toString());
    assertEquals("error", problemMarkerInfo.description);
  }
  /**
   * Checks if a file from error output can be found.
   *
   * @throws Exception...
   */
  public void testRelativePathDuplicate() throws Exception {
    ResourceHelper.createEfsFolder(fProject, "SubfolderA", "null:/SubfolderA");
    ResourceHelper.createEfsFolder(fProject, "SubfolderA/Folder", "null:/SubfolderA/Folder");
    ResourceHelper.createEfsFile(
        fProject,
        "SubfolderA/Folder/testRelativePathDuplicate.c",
        "null:/SubfolderA/Folder/testRelativePathDuplicate.c");
    ResourceHelper.createEfsFolder(fProject, "SubfolderB", "null:/SubfolderB");
    ResourceHelper.createEfsFolder(fProject, "SubfolderB/Folder", "null:/SubfolderB/Folder");
    ResourceHelper.createEfsFile(
        fProject,
        "SubfolderB/Folder/testRelativePathDuplicate.c",
        "null:/SubfolderBS/Folder/testRelativePathDuplicate.c");

    parseOutput("Folder/testRelativePathDuplicate.c:1:error");
    assertEquals(1, errorList.size());

    ProblemMarkerInfo problemMarkerInfo = errorList.get(0);
    // No match found
    assertEquals("P/FindMatchingFilesEfsTest", problemMarkerInfo.file.toString());
    assertEquals(1, problemMarkerInfo.lineNumber);
    assertEquals("error", problemMarkerInfo.description);
    assertEquals(new Path("Folder/testRelativePathDuplicate.c"), problemMarkerInfo.externalPath);
  }
  /**
   * Checks if a file from error output can be found.
   *
   * @throws Exception...
   */
  public void testDuplicateInRoot() throws Exception {
    ResourceHelper.createEfsFile(fProject, "testDuplicateInRoot.c", "null:/testDuplicateInRoot.c");

    ResourceHelper.createEfsFolder(fProject, "Folder", "null:/Folder");
    ResourceHelper.createEfsFile(
        fProject, "Folder/testDuplicateInRoot.c", "null:/Folder/testDuplicateInRoot.c");

    // Resolved to the file in root folder
    parseOutput("testDuplicateInRoot.c:1:error");
    assertEquals(1, errorList.size());

    ProblemMarkerInfo problemMarkerInfo = errorList.get(0);
    assertEquals(1, problemMarkerInfo.lineNumber);
    assertEquals(
        "L/FindMatchingFilesEfsTest/testDuplicateInRoot.c", problemMarkerInfo.file.toString());
    assertEquals("error", problemMarkerInfo.description);
  }