Search in sources :

Example 26 with Build

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);
}
Also used : Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) WarningsAction(org.jenkinsci.test.acceptance.plugins.warnings.WarningsAction) Ignore(org.junit.Ignore) Issue(org.jvnet.hudson.test.Issue) Test(org.junit.Test)

Example 27 with Build

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");
}
Also used : Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) WarningsAction(org.jenkinsci.test.acceptance.plugins.warnings.WarningsAction) Issue(org.jvnet.hudson.test.Issue) Test(org.junit.Test) WithPlugins(org.jenkinsci.test.acceptance.junit.WithPlugins)

Example 28 with Build

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>"));
}
Also used : Build(org.jenkinsci.test.acceptance.po.Build) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) WarningsAction(org.jenkinsci.test.acceptance.plugins.warnings.WarningsAction) Test(org.junit.Test) WithPlugins(org.jenkinsci.test.acceptance.junit.WithPlugins)

Example 29 with Build

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'"));
}
Also used : StringParameter(org.jenkinsci.test.acceptance.po.StringParameter) Build(org.jenkinsci.test.acceptance.po.Build) Node(org.jenkinsci.test.acceptance.po.Node) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Issue(org.jvnet.hudson.test.Issue) Test(org.junit.Test) WithPlugins(org.jenkinsci.test.acceptance.junit.WithPlugins)

Example 30 with Build

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");
}
Also used : Build(org.jenkinsci.test.acceptance.po.Build) WarningsPublisher(org.jenkinsci.test.acceptance.plugins.warnings.WarningsPublisher)

Aggregations

Build (org.jenkinsci.test.acceptance.po.Build)175 Test (org.junit.Test)157 FreeStyleJob (org.jenkinsci.test.acceptance.po.FreeStyleJob)113 AbstractJUnitTest (org.jenkinsci.test.acceptance.junit.AbstractJUnitTest)101 WithPlugins (org.jenkinsci.test.acceptance.junit.WithPlugins)40 DockerTest (org.jenkinsci.test.acceptance.junit.DockerTest)22 WorkflowJob (org.jenkinsci.test.acceptance.po.WorkflowJob)20 Issue (org.jvnet.hudson.test.Issue)18 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)14 GitRepo (org.jenkinsci.test.acceptance.plugins.git.GitRepo)13 JobDslBuildStep (org.jenkinsci.test.acceptance.plugins.job_dsl.JobDslBuildStep)13 Pattern (java.util.regex.Pattern)11 Job (org.jenkinsci.test.acceptance.po.Job)11 SmokeTest (org.jenkinsci.test.acceptance.junit.SmokeTest)9 WithCredentials (org.jenkinsci.test.acceptance.junit.WithCredentials)9 GitScm (org.jenkinsci.test.acceptance.plugins.git.GitScm)9 Matchers.containsString (org.hamcrest.Matchers.containsString)8 WarningsAction (org.jenkinsci.test.acceptance.plugins.warnings.WarningsAction)8 MavenModuleSet (org.jenkinsci.test.acceptance.plugins.maven.MavenModuleSet)7 IOException (java.io.IOException)6