use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class WarningsPluginTest method should_not_skip_failed_builds_with_option_run_always.
/**
* Checks that the warnings plugin will not skip build results if "Run always" is checked.
*/
@Test
@Issue("28479")
@Ignore("Reactivate after JENKINS-28479 has been fixed.")
public void should_not_skip_failed_builds_with_option_run_always() {
FreeStyleJob job = runBuildWithRunAlwaysOption(true);
Build build = buildJobAndWait(job).shouldFail();
assertThatActionExists(job, build, "Java Warnings");
WarningsAction action = createJavaResultAction(build);
assertThatWarningsCountInSummaryIs(action, 131);
assertThatNewWarningsCountInSummaryIs(action, 131);
}
use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class WarningsPluginTest method should_resolve_workspace_files.
/**
* Verifies that Jenkins scans the workspace for all available files to resolve relative paths
* of files with warnings when the option 'resolve-relative-paths' is enabled.
*/
@Test
@Issue("JENKINS-32150")
@WithPlugins("analysis-core@1.76")
public void should_resolve_workspace_files() {
FreeStyleJob job = createFreeStyleJob(RESOURCES + "jenkins-32150", settings -> {
settings.addWorkspaceScanner(CLANG_ID, "**/compile-log.txt");
settings.setCanResolveRelativePaths(true);
});
Build build = buildSuccessfulJob(job);
assertThatActionExists(job, build, "LLVM/Clang Warnings");
build.open();
int count = 10;
assertThat(driver, hasContent("LLVM/Clang Warnings: " + count));
WarningsAction action = new WarningsAction(build, "LLVM/Clang", "Clang (LLVM based)");
assertThatWarningsCountInSummaryIs(action, count);
assertThatNewWarningsCountInSummaryIs(action, count);
action.open();
assertThat(action.getNumberOfWarnings(), is(count));
assertThat(action.getNumberOfNewWarnings(), is(count));
assertThat(action.getNumberOfFixedWarnings(), is(0));
assertThat(action.getNumberOfWarningsWithHighPriority(), is(0));
assertThat(action.getNumberOfWarningsWithNormalPriority(), is(count));
assertThat(action.getNumberOfWarningsWithLowPriority(), is(0));
assertThatFilesTabIsCorrectlyFilled(action);
assertThatWarningsTabIsCorrectlyFilled(action);
verifySourceLine(action, "file-in-subdir.txt", 2, "02 EXAMPLE IN SUBDIR", "Some other warning");
verifySourceLine(action, "file.txt", 6, "06 EXAMPLE", "Some warning SECOND");
// Since multi-file-in-subdir.txt is contained twice in the workspace no source code is resolved
verifySourceLine(action, "multi-file-in-subdir.txt", 3, "03 Is the file 'multi-file-in-subdir.txt' contained more than once in your workspace?", "Another warning");
}
use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class WarningsPluginTest method should_override_tab_name_with_groovy_parser.
/**
* Checks that a dynamic Groovy parser can override package tab title.
*/
@Test
@WithPlugins("analysis-core@1.91")
public void should_override_tab_name_with_groovy_parser() {
String parserName = createParser(OVERRIDE_PARSER_SCRIPT);
FreeStyleJob job = createFreeStyleJob(RESOURCES + GROOVY_TWO_LINES_FILE_NAME, settings -> settings.addWorkspaceScanner(parserName, "**/" + GROOVY_TWO_LINES_FILE_NAME));
Build build = buildSuccessfulJob(job);
WarningsAction action = createJavaResultAction(build);
action.open();
assertThat(driver, hasContent("DEAD_A"));
assertThat(driver, hasContent("DEAD_B"));
assertThat(driver, hasContent("BEEF"));
assertThat(driver.getPageSource(), containsString("<div id=\"packages\">BEEFs</div>"));
}
use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class WarningsPluginTest method should_resolve_environment_variables.
/**
* Verifies that environment variables are expanded in the file name pattern.
*/
@Test
@Issue("JENKINS-34157")
@WithPlugins("envinject")
public void should_resolve_environment_variables() {
FreeStyleJob job = createFreeStyleJob(RESOURCES + "jenkins-32150", settings -> {
settings.addWorkspaceScanner(CLANG_ID, "${ENV_PREFIX}/${PARAMETER}");
settings.addWorkspaceScanner(JAVA_TITLE, "${BUILD_NUMBER}/nothing");
settings.addWorkspaceScanner(JAVA_DOC_ID, "${BUILD_NUMBER}_${Reference}\\ND4\\ReleaseTools\\Build\\Log\\warning.log");
});
job.configure();
new EnvInjectConfig.Environment(job).properties.sendKeys("ENV_PREFIX=**");
String parameter = "PARAMETER";
job.addParameter(StringParameter.class).setName(parameter);
String reference = "Reference";
job.addParameter(StringParameter.class).setName(reference);
job.save();
Node slave = createSlaveForJob(job);
Map<String, String> parameters = new HashMap<>();
parameters.put("slavename", slave.getName());
parameters.put(parameter, "compile-log.txt");
parameters.put(reference, "master");
Build build = job.startBuild(parameters).shouldSucceed();
assertThatActionExists(job, build, "LLVM/Clang Warnings");
build.open();
int count = 10;
assertThat(driver, hasContent(CLANG_TITLE + ": " + count));
assertThat(build.getConsole(), containsString("[WARNINGS] Parsing warnings in files '**/compile-log.txt' with parser Clang (LLVM based)"));
assertThat(build.getConsole(), containsRegexp("\\[WARNINGS\\] Parsing warnings in files '[\\d]+/nothing'"));
assertThat(build.getConsole(), containsRegexp("\\[WARNINGS\\] Parsing warnings in files '[\\d]+_master\\\\ND4\\\\ReleaseTools\\\\Build\\\\Log\\\\warning.log'"));
}
use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class WarningsPluginTest method assertThatCodeNarcActionExists.
private void assertThatCodeNarcActionExists(FreeStyleJob job) {
job.configure();
job.copyResource(resource(RESOURCE_CODE_NARC_REPORT_PATH));
WarningsPublisher warningsPublisher = job.addPublisher(WarningsPublisher.class);
warningsPublisher.addWorkspaceFileScanner("Codenarc", RESOURCE_CODE_NARC_REPORT);
job.save();
Build build = job.startBuild().shouldSucceed();
assertThatActionExists(job, build, "Codenarc Warnings");
}
Aggregations