diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2015-09-08 15:24:50 +0200 |
---|---|---|
committer | Duarte Meneses <duarte.meneses@sonarsource.com> | 2015-09-09 11:57:38 +0200 |
commit | 4be016e61f4d1e4fed297dd7eb3b3ccb286f0f81 (patch) | |
tree | 7ce08a4beef4bf70b6521bdd04e27cc9e2907e92 /it | |
parent | 84c39f50d53f7f4a76fcda6c58b6120875501e40 (diff) | |
download | sonarqube-4be016e61f4d1e4fed297dd7eb3b3ccb286f0f81.tar.gz sonarqube-4be016e61f4d1e4fed297dd7eb3b3ccb286f0f81.zip |
SONAR-6817 Issues mode should support analysis of projects not associated
Diffstat (limited to 'it')
4 files changed, 65 insertions, 10 deletions
diff --git a/it/it-projects/shared/xoo-sample-non-associated/sonar-project.properties b/it/it-projects/shared/xoo-sample-non-associated/sonar-project.properties new file mode 100644 index 00000000000..71b83e48b9f --- /dev/null +++ b/it/it-projects/shared/xoo-sample-non-associated/sonar-project.properties @@ -0,0 +1,5 @@ +#sonar.projectKey=sample +sonar.projectName=Sample +sonar.projectVersion=1.0-SNAPSHOT +sonar.sources=src/main/xoo +sonar.language=xoo diff --git a/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo new file mode 100644 index 00000000000..41871e123a3 --- /dev/null +++ b/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo @@ -0,0 +1,16 @@ +package sample; + +public class Sample { + + public Sample(int i) { + int j = i++; + } + + private String myMethod() { + if (foo == bar) { + return "hello"; + } else { + throw new IllegalStateException(); + } + } +} diff --git a/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures new file mode 100644 index 00000000000..3f73ea8f695 --- /dev/null +++ b/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures @@ -0,0 +1,11 @@ +ncloc:13 +#Used by dashboard/widgets tests +complexity:3 +complexity_in_classes:3 +classes:1 +comment_lines:3 +public_api:5 +public_undocumented_api:2 +duplicated_files:1 +duplicated_blocks:2 +duplicated_lines:3 diff --git a/it/it-tests/src/test/java/batch/IssuesModeTest.java b/it/it-tests/src/test/java/batch/IssuesModeTest.java index 651546c0535..5e3c0660b66 100644 --- a/it/it-tests/src/test/java/batch/IssuesModeTest.java +++ b/it/it-tests/src/test/java/batch/IssuesModeTest.java @@ -69,28 +69,45 @@ public class IssuesModeTest { } @Test - public void issuesAnalysisOnNewProject() throws IOException { + public void issues_analysis_on_new_project() throws IOException { restoreProfile("one-issue-per-line.xml"); orchestrator.getServer().provisionProject("sample", "xoo-sample"); orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); SonarRunner runner = configureRunnerIssues("shared/xoo-sample"); - orchestrator.executeBuild(runner); + BuildResult result = orchestrator.executeBuild(runner); + assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); } - + @Test - public void invalidIncrementalMode() throws IOException { + public void invalid_incremental_mode() throws IOException { restoreProfile("one-issue-per-line.xml"); orchestrator.getServer().provisionProject("sample", "xoo-sample"); orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); SonarRunner runner = configureRunner("shared/xoo-sample"); runner.setProperty("sonar.analysis.mode", "incremental"); - + thrown.expect(BuildFailureException.class); BuildResult res = orchestrator.executeBuild(runner); - + assertThat(res.getLogs()).contains("Invalid analysis mode: incremental. This mode was removed in SonarQube 5.2"); } + @Test + public void non_associated_mode() throws IOException { + restoreProfile("one-issue-per-line.xml"); + setDefaultQualityProfile("xoo", "one-issue-per-line"); + SonarRunner runner = configureRunnerIssues("shared/xoo-sample-non-associated"); + BuildResult result = orchestrator.executeBuild(runner); + + assertThat(result.getLogs()).contains("is not associated"); + assertThat(result.getLogs()).contains("Cache not found, synchronizing data"); + assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); + + result = orchestrator.executeBuild(runner); + assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); + assertThat(result.getLogs()).contains("Found cache"); + } + // SONAR-5715 @Test public void test_issues_mode_on_project_with_space_in_filename() throws IOException { @@ -329,16 +346,16 @@ public class IssuesModeTest { boolean expectedError = false; for (Future<BuildResult> result : executorService.invokeAll(tasks)) { try { - result.get(); - } catch(ExecutionException e) { - if(e.getCause() instanceof BuildFailureException) { + result.get(); + } catch (ExecutionException e) { + if (e.getCause() instanceof BuildFailureException) { BuildFailureException bfe = (BuildFailureException) e.getCause(); assertThat(bfe.getResult().getLogs()).contains("Another SonarQube analysis is already in progress for this project"); expectedError = true; } } } - if(!expectedError) { + if (!expectedError) { fail("At least one of the threads should have failed"); } } @@ -370,4 +387,10 @@ public class IssuesModeTest { return runner; } + private void setDefaultQualityProfile(String languageKey, String profileName) { + orchestrator.getServer().adminWsClient().post("api/qualityprofiles/set_default", + "language", languageKey, + "profileName", profileName); + } + } |