]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-11077 log nb of inserts in CE PersistMeasuresStep
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Mon, 30 Jul 2018 19:25:26 +0000 (21:25 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 2 Aug 2018 18:21:36 +0000 (20:21 +0200)
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStep.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistMeasuresStepTest.java

index c303dfef11388da56bb1e1d0edb50e69250a4e27..7da1caa2529ae3d304750b48137ec7f653dd6c68 100644 (file)
@@ -79,13 +79,16 @@ public class PersistMeasuresStep implements ComputationStep {
   @Override
   public void execute(ComputationStep.Context context) {
     try (DbSession dbSession = dbClient.openSession(true)) {
-      new DepthTraversalTypeAwareCrawler(new MeasureVisitor(dbSession)).visit(treeRootHolder.getRoot());
+      MeasureVisitor visitor = new MeasureVisitor(dbSession);
+      new DepthTraversalTypeAwareCrawler(visitor).visit(treeRootHolder.getRoot());
       dbSession.commit();
+      context.getStatistics().add("inserts", visitor.inserts);
     }
   }
 
   private class MeasureVisitor extends TypeAwareVisitorAdapter {
     private final DbSession session;
+    private int inserts = 0;
 
     private MeasureVisitor(DbSession session) {
       super(CrawlerDepthLimit.LEAVES, PRE_ORDER);
@@ -133,6 +136,7 @@ public class PersistMeasuresStep implements ComputationStep {
         measuresByMetricKey.getValue().stream().filter(NonEmptyMeasure.INSTANCE).forEach(measure -> {
           MeasureDto measureDto = measureToMeasureDto.toMeasureDto(measure, metric, component);
           measureDao.insert(session, measureDto);
+          inserts++;
         });
       }
     }
index fd19e2974c293095df9693e15fbc9f8f0f46d62e..7326cab8927b83c6aad83ccb4077b35839caa953 100644 (file)
@@ -95,7 +95,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     measureRepository.addRawMeasure(REF_3, STRING_METRIC.getKey(), newMeasureBuilder().create("dir-value"));
     measureRepository.addRawMeasure(REF_4, STRING_METRIC.getKey(), newMeasureBuilder().create("file-value"));
 
-    execute(true);
+    TestComputationStepContext context = execute(true);
 
     // project, module and dir measures are persisted, but not file measures
     assertThat(db.countRowsOfTable("project_measures")).isEqualTo(3);
@@ -103,6 +103,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     assertThat(selectMeasure("module-uuid", STRING_METRIC).get().getData()).isEqualTo("module-value");
     assertThat(selectMeasure("dir-uuid", STRING_METRIC).get().getData()).isEqualTo("dir-value");
     assertThatMeasuresAreNotPersisted("file-uuid");
+    assertNbOfInserts(context, 3);
   }
 
   @Test
@@ -115,7 +116,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     measureRepository.addRawMeasure(REF_3, STRING_METRIC.getKey(), newMeasureBuilder().create("dir-value"));
     measureRepository.addRawMeasure(REF_4, STRING_METRIC.getKey(), newMeasureBuilder().create("file-value"));
 
-    execute(false);
+    TestComputationStepContext context = execute(false);
 
     // project, module and dir measures are persisted, but not file measures
     assertThat(db.countRowsOfTable("project_measures")).isEqualTo(2);
@@ -123,6 +124,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     assertThat(selectMeasure("module-uuid", STRING_METRIC).get().getData()).isEqualTo("module-value");
     assertThatMeasuresAreNotPersisted("dir-uuid");
     assertThatMeasuresAreNotPersisted("file-uuid");
+    assertNbOfInserts(context, 2);
   }
 
   @Test
@@ -131,10 +133,11 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     measureRepository.addRawMeasure(REF_1, STRING_METRIC.getKey(), newMeasureBuilder().createNoValue());
     measureRepository.addRawMeasure(REF_1, INT_METRIC.getKey(), newMeasureBuilder().createNoValue());
 
-    execute(false);
+    TestComputationStepContext context =  execute(false);
 
     assertThatMeasureIsNotPersisted("project-uuid", STRING_METRIC);
     assertThatMeasureIsNotPersisted("project-uuid", INT_METRIC);
+    assertNbOfInserts(context, 0);
   }
 
   @Test
@@ -142,11 +145,12 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     prepareProject();
     measureRepository.addRawMeasure(REF_1, INT_METRIC.getKey(), newMeasureBuilder().setVariation(42.0).createNoValue());
 
-    execute(false);
+    TestComputationStepContext context = execute(false);
 
     MeasureDto persistedMeasure = selectMeasure("project-uuid", INT_METRIC).get();
     assertThat(persistedMeasure.getValue()).isNull();
     assertThat(persistedMeasure.getVariation()).isEqualTo(42.0);
+    assertNbOfInserts(context, 1);
   }
 
   @Test
@@ -158,11 +162,12 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     measureRepository.addRawMeasure(REF_2, STRING_METRIC.getKey(), newMeasureBuilder().create("subview-value"));
     measureRepository.addRawMeasure(REF_3, STRING_METRIC.getKey(), newMeasureBuilder().create("project-value"));
 
-    execute(true);
+    TestComputationStepContext context =  execute(true);
 
     assertThat(db.countRowsOfTable("project_measures")).isEqualTo(2);
     assertThat(selectMeasure("view-uuid", STRING_METRIC).get().getData()).isEqualTo("view-value");
     assertThat(selectMeasure("subview-uuid", STRING_METRIC).get().getData()).isEqualTo("subview-value");
+    assertNbOfInserts(context, 2);
   }
 
   private void prepareProject() {
@@ -216,9 +221,11 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     assertThatMeasureIsNotPersisted(componentUuid, INT_METRIC);
   }
 
-  private void execute(boolean persistDirectories) {
+  private TestComputationStepContext execute(boolean persistDirectories) {
+    TestComputationStepContext context = new TestComputationStepContext();
     new PersistMeasuresStep(dbClient, metricRepository, new MeasureToMeasureDto(analysisMetadataHolder, treeRootHolder), treeRootHolder, measureRepository, persistDirectories)
-      .execute(new TestComputationStepContext());
+      .execute(context);
+    return context;
   }
 
   private Optional<MeasureDto> selectMeasure(String componentUuid, Metric metric) {
@@ -237,6 +244,10 @@ public class PersistMeasuresStepTest extends BaseStepTest {
     return componentDto;
   }
 
+  private static void assertNbOfInserts(TestComputationStepContext context, int expected) {
+    context.getStatistics().assertValue("inserts", expected);
+  }
+
   @Override
   protected ComputationStep step() {
     return new PersistMeasuresStep(dbClient, metricRepository, new MeasureToMeasureDto(analysisMetadataHolder, treeRootHolder), treeRootHolder, measureRepository, true);