aboutsummaryrefslogtreecommitdiffstats
path: root/it
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2015-09-08 15:24:50 +0200
committerDuarte Meneses <duarte.meneses@sonarsource.com>2015-09-09 11:57:38 +0200
commit4be016e61f4d1e4fed297dd7eb3b3ccb286f0f81 (patch)
tree7ce08a4beef4bf70b6521bdd04e27cc9e2907e92 /it
parent84c39f50d53f7f4a76fcda6c58b6120875501e40 (diff)
downloadsonarqube-4be016e61f4d1e4fed297dd7eb3b3ccb286f0f81.tar.gz
sonarqube-4be016e61f4d1e4fed297dd7eb3b3ccb286f0f81.zip
SONAR-6817 Issues mode should support analysis of projects not associated
Diffstat (limited to 'it')
-rw-r--r--it/it-projects/shared/xoo-sample-non-associated/sonar-project.properties5
-rw-r--r--it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo16
-rw-r--r--it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures11
-rw-r--r--it/it-tests/src/test/java/batch/IssuesModeTest.java43
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);
+ }
+
}