From 792d73d26972dfa1f5f2f47fc88e930ef56af5ef Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Tue, 16 Aug 2016 16:42:25 +0200 Subject: [PATCH] SONAR-7957 Replace new ncloc by new lines --- ...icatedLinesWithOtherDirectory.xoo.measures | 1 - ...icatedLinesWithOtherDirectory.xoo.measures | 1 - .../DuplicatedLinesInSameFile.xoo.measures | 1 - .../it/duplication/NewDuplicationsTest.java | 12 +-- .../step/NewSizeMeasuresStep.java | 57 +++----------- .../step/NewSizeMeasuresStepTest.java | 75 ++++++------------- .../resources/org/sonar/l10n/core.properties | 4 +- .../org/sonar/api/measures/CoreMetrics.java | 6 +- 8 files changed, 45 insertions(+), 112 deletions(-) diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures index 86639725ced..03005736cf7 100644 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures +++ b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures @@ -1,2 +1 @@ ncloc:42 -ncloc_data:1=0;2=0;3=0;4=0;5=1;6=1;7=0;8=1;9=1;10=1;11=1;12=1;13=1;14=1;15=1;16=1;17=1;18=1;19=1;20=1;21=1;22=1;23=1;24=1;25=1;26=1;27=1;28=1;29=1;30=1;31=1;32=1;33=1;34=1;35=1;36=1;37=1;38=1;39=1;40=1;41=0;42=0; diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures index 24cb7ef5ab1..33a558499a3 100644 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures +++ b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures @@ -1,3 +1,2 @@ ncloc:36 -ncloc_data:1=0;2=0;3=0;4=0;5=1;6=1;7=0;8=1;9=1;10=1;11=1;12=1;13=1;14=1;15=1;16=1;17=1;18=1;19=1;20=1;21=1;22=1;23=1;24=1;25=1;26=1;27=1;28=1;29=1;30=1;31=1;32=1;33=1;34=1;35=0;36=0; diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures index 902659ea929..2fb2025cb32 100644 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures +++ b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures @@ -1,3 +1,2 @@ ncloc:81 -ncloc_data:1=0;2=0;3=0;4=0;5=1;6=1;7=0;8=1;9=1;10=1;11=1;12=1;13=1;14=1;15=1;16=1;17=1;18=1;19=1;20=1;21=1;22=1;23=1;24=1;25=1;26=1;27=1;28=1;29=1;30=1;31=1;32=1;33=1;34=1;35=1;36=1;37=1;38=0;39=1;40=1;41=0;42=0;43=1;44=1;45=1;46=1;47=1;48=0;49=1;50=1;51=1;52=1;53=0;54=0;55=0;56=1;57=1;58=1;59=1;60=1;61=1;62=1;63=1;64=1;65=1;66=1;67=1;68=1;69=1;70=1;71=1;72=0;73=1;74=1;75=1;76=1;77=1;78=1;79=0;80=0;81=0; diff --git a/it/it-tests/src/test/java/it/duplication/NewDuplicationsTest.java b/it/it-tests/src/test/java/it/duplication/NewDuplicationsTest.java index 65ea8831cc5..b0c3bf917e6 100644 --- a/it/it-tests/src/test/java/it/duplication/NewDuplicationsTest.java +++ b/it/it-tests/src/test/java/it/duplication/NewDuplicationsTest.java @@ -52,16 +52,16 @@ public class NewDuplicationsTest { @Test public void new_duplications_on_project() throws Exception { Resource project = getComponent("new-duplications"); - assertThat(project.getMeasure("new_ncloc").getVariation1()).isEqualTo(75d, DEFAULT_OFFSET); + assertThat(project.getMeasure("new_lines").getVariation1()).isEqualTo(83d, DEFAULT_OFFSET); assertThat(project.getMeasure("new_duplicated_lines").getVariation1()).isEqualTo(71d, DEFAULT_OFFSET); - assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(94.7d, DEFAULT_OFFSET); + assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(85.5d, DEFAULT_OFFSET); assertThat(project.getMeasure("new_duplicated_blocks").getVariation1()).isEqualTo(12d, DEFAULT_OFFSET); } @Test public void new_duplications_on_directory() throws Exception { Resource project = getComponent("new-duplications:src/main/xoo/duplicated_lines_with_other_dir1"); - assertThat(project.getMeasure("new_ncloc").getVariation1()).isEqualTo(24d, DEFAULT_OFFSET); + assertThat(project.getMeasure("new_lines").getVariation1()).isEqualTo(24d, DEFAULT_OFFSET); assertThat(project.getMeasure("new_duplicated_lines").getVariation1()).isEqualTo(24d, DEFAULT_OFFSET); assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(100d, DEFAULT_OFFSET); assertThat(project.getMeasure("new_duplicated_blocks").getVariation1()).isEqualTo(7d, DEFAULT_OFFSET); @@ -70,15 +70,15 @@ public class NewDuplicationsTest { @Test public void new_duplications_on_file() throws Exception { Resource project = getComponent("new-duplications:src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo"); - assertThat(project.getMeasure("new_ncloc").getVariation1()).isEqualTo(33d, DEFAULT_OFFSET); + assertThat(project.getMeasure("new_lines").getVariation1()).isEqualTo(41d, DEFAULT_OFFSET); assertThat(project.getMeasure("new_duplicated_lines").getVariation1()).isEqualTo(29d, DEFAULT_OFFSET); - assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(87.9d, DEFAULT_OFFSET); + assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(70.7d, DEFAULT_OFFSET); assertThat(project.getMeasure("new_duplicated_blocks").getVariation1()).isEqualTo(2d, DEFAULT_OFFSET); } private static Resource getComponent(String key) { Resource component = orchestrator.getServer().getWsClient() - .find(ResourceQuery.createForMetrics(key, "new_ncloc", "new_duplicated_lines", "new_duplicated_lines_density", "new_duplicated_blocks").setIncludeTrends(true)); + .find(ResourceQuery.createForMetrics(key, "new_lines", "new_duplicated_lines", "new_duplicated_lines_density", "new_duplicated_blocks").setIncludeTrends(true)); assertThat(component).isNotNull(); return component; } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStep.java index a78bb91766e..54c3a77d7cd 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStep.java @@ -35,7 +35,6 @@ import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; -import org.sonar.api.utils.KeyValueFormat; import org.sonar.server.computation.task.projectanalysis.component.Component; import org.sonar.server.computation.task.projectanalysis.component.PathAwareCrawler; import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolder; @@ -53,7 +52,6 @@ import org.sonar.server.computation.task.projectanalysis.formula.counter.IntVari import org.sonar.server.computation.task.projectanalysis.measure.Measure; import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepository; import org.sonar.server.computation.task.projectanalysis.measure.MeasureVariations; -import org.sonar.server.computation.task.projectanalysis.metric.Metric; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepository; import org.sonar.server.computation.task.projectanalysis.period.Period; import org.sonar.server.computation.task.projectanalysis.period.PeriodsHolder; @@ -63,12 +61,10 @@ import org.sonar.server.computation.task.projectanalysis.scm.ScmInfoRepository; import org.sonar.server.computation.task.step.ComputationStep; import static java.util.stream.Collectors.toMap; -import static org.sonar.api.measures.CoreMetrics.NCLOC_DATA_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_BLOCKS_DUPLICATED_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_KEY; -import static org.sonar.api.measures.CoreMetrics.NEW_NCLOC_KEY; -import static org.sonar.api.utils.KeyValueFormat.newIntegerConverter; +import static org.sonar.api.measures.CoreMetrics.NEW_LINES_KEY; /** * Computes measures on new code related to the size @@ -87,7 +83,7 @@ public class NewSizeMeasuresStep implements ComputationStep { this.periodsHolder = periodsHolder; this.metricRepository = metricRepository; this.measureRepository = measureRepository; - this.duplicationFormula = new NewDuplicationFormula(measureRepository, metricRepository, scmInfoRepository, duplicationRepository); + this.duplicationFormula = new NewDuplicationFormula(scmInfoRepository, duplicationRepository); } @Override @@ -105,20 +101,16 @@ public class NewSizeMeasuresStep implements ComputationStep { } private static class NewSizeCounter implements Counter { - private final MeasureRepository measureRepository; private final DuplicationRepository duplicationRepository; private final ScmInfoRepository scmInfoRepository; - private final Metric nclocDataMetric; private final IntVariationValue.Array newLines = IntVariationValue.newArray(); private final IntVariationValue.Array newDuplicatedLines = IntVariationValue.newArray(); private final IntVariationValue.Array newDuplicatedBlocks = IntVariationValue.newArray(); - private NewSizeCounter(MeasureRepository measureRepository, MetricRepository metricRepository, DuplicationRepository duplicationRepository, + private NewSizeCounter(DuplicationRepository duplicationRepository, ScmInfoRepository scmInfoRepository) { - this.measureRepository = measureRepository; this.duplicationRepository = duplicationRepository; this.scmInfoRepository = scmInfoRepository; - this.nclocDataMetric = metricRepository.getByKey(NCLOC_DATA_KEY); } @Override @@ -144,20 +136,14 @@ public class NewSizeMeasuresStep implements ComputationStep { return; } - initNewLines(leaf, scmInfo.get(), context.getPeriods()); + initNewLines(scmInfo.get(), context.getPeriods()); initNewDuplicated(leaf, scmInfo.get(), context.getPeriods()); } - private void initNewLines(Component component, ScmInfo scmInfo, List periods) { - Optional nclocData = measureRepository.getRawMeasure(component, nclocDataMetric); - if (!nclocData.isPresent()) { - return; - } - nclocLineNumbers(nclocData.get()).stream() - .map(scmInfo::getChangesetForLine) - .forEach(changeset -> periods.stream() - .filter(period -> isLineInPeriod(changeset, period)) - .forEach(period -> newLines.increment(period, 1))); + private void initNewLines(ScmInfo scmInfo, List periods) { + scmInfo.getAllChangesets().forEach(changeset -> periods.stream() + .filter(period -> isLineInPeriod(changeset, period)) + .forEach(period -> newLines.increment(period, 1))); } private void initNewDuplicated(Component component, ScmInfo scmInfo, List periods) { @@ -178,21 +164,6 @@ public class NewSizeMeasuresStep implements ComputationStep { }); } - /** - * NCLOC_DATA contains Key-value pairs, where key - is a line number, and value - is an indicator of whether line - * contains code (1) or not (0). - * - * This method parses the value of the NCLOC_DATA measure and return the line numbers which contain code. - */ - private static List nclocLineNumbers(Measure nclocDataMeasure) { - Map parsedNclocData = KeyValueFormat.parse(nclocDataMeasure.getData(), newIntegerConverter(), newIntegerConverter()); - return parsedNclocData.entrySet() - .stream() - .filter(entry -> entry.getValue() == 1) - .map(Map.Entry::getKey) - .collect(Collectors.toList()); - } - private static boolean isLineInPeriod(Changeset changeset, Period period) { return changeset.getDate() > period.getSnapshotDate(); } @@ -237,29 +208,25 @@ public class NewSizeMeasuresStep implements ComputationStep { } private static final class NewDuplicationFormula implements Formula { - private final MeasureRepository measureRepository; - private final MetricRepository metricRepository; private final DuplicationRepository duplicationRepository; private final ScmInfoRepository scmInfoRepository; - private NewDuplicationFormula(MeasureRepository measureRepository, MetricRepository metricRepository, ScmInfoRepository scmInfoRepository, + private NewDuplicationFormula(ScmInfoRepository scmInfoRepository, DuplicationRepository duplicationRepository) { - this.measureRepository = measureRepository; - this.metricRepository = metricRepository; this.duplicationRepository = duplicationRepository; this.scmInfoRepository = scmInfoRepository; } @Override public NewSizeCounter createNewCounter() { - return new NewSizeCounter(measureRepository, metricRepository, duplicationRepository, scmInfoRepository); + return new NewSizeCounter(duplicationRepository, scmInfoRepository); } @Override public Optional createMeasure(NewSizeCounter counter, CreateMeasureContext context) { String metricKey = context.getMetric().getKey(); switch (metricKey) { - case NEW_NCLOC_KEY: + case NEW_LINES_KEY: return createMeasure(counter.newLines.toMeasureVariations()); case NEW_DUPLICATED_LINES_KEY: return createMeasure(counter.newDuplicatedLines.toMeasureVariations()); @@ -298,7 +265,7 @@ public class NewSizeMeasuresStep implements ComputationStep { @Override public String[] getOutputMetricKeys() { - return new String[] {NEW_NCLOC_KEY, NEW_DUPLICATED_LINES_KEY, NEW_DUPLICATED_LINES_DENSITY_KEY, NEW_BLOCKS_DUPLICATED_KEY}; + return new String[] {NEW_LINES_KEY, NEW_DUPLICATED_LINES_KEY, NEW_DUPLICATED_LINES_DENSITY_KEY, NEW_BLOCKS_DUPLICATED_KEY}; } } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStepTest.java index 84d9ec28af6..3a2794242cf 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStepTest.java @@ -21,20 +21,13 @@ package org.sonar.server.computation.task.projectanalysis.step; import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.stream.IntStream; import javax.annotation.Nullable; import org.assertj.core.data.Offset; import org.junit.Rule; import org.junit.Test; -import org.sonar.api.utils.KeyValueFormat; import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolderRule; import org.sonar.server.computation.task.projectanalysis.duplication.DuplicationRepositoryRule; import org.sonar.server.computation.task.projectanalysis.duplication.TextBlock; -import org.sonar.server.computation.task.projectanalysis.measure.Measure; import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepositoryRule; import org.sonar.server.computation.task.projectanalysis.measure.MeasureVariations; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepositoryRule; @@ -46,16 +39,14 @@ import org.sonar.server.computation.task.projectanalysis.scm.ScmInfoRepositoryRu import static com.google.common.base.Preconditions.checkArgument; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.guava.api.Assertions.assertThat; -import static org.sonar.api.measures.CoreMetrics.NCLOC_DATA; -import static org.sonar.api.measures.CoreMetrics.NCLOC_DATA_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_BLOCKS_DUPLICATED; import static org.sonar.api.measures.CoreMetrics.NEW_BLOCKS_DUPLICATED_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES; import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY; import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_KEY; -import static org.sonar.api.measures.CoreMetrics.NEW_NCLOC; -import static org.sonar.api.measures.CoreMetrics.NEW_NCLOC_KEY; +import static org.sonar.api.measures.CoreMetrics.NEW_LINES; +import static org.sonar.api.measures.CoreMetrics.NEW_LINES_KEY; import static org.sonar.api.utils.DateUtils.parseDate; import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.DIRECTORY; import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.FILE; @@ -113,8 +104,7 @@ public class NewSizeMeasuresStepTest { @Rule public MetricRepositoryRule metricRepository = new MetricRepositoryRule() - .add(NCLOC_DATA) - .add(NEW_NCLOC) + .add(NEW_LINES) .add(NEW_DUPLICATED_LINES) .add(NEW_DUPLICATED_LINES_DENSITY) .add(NEW_BLOCKS_DUPLICATED); @@ -130,40 +120,34 @@ public class NewSizeMeasuresStepTest { @Test public void compute_new_lines() { - setChangesets(FILE_1_REF, FILE_2_REF, FILE_3_REF, FILE_4_REF); - setNclocsExcept(FILE_1_REF, 2, 4, 6); - setNclocsExcept(FILE_2_REF); - setNclocsExcept(FILE_3_REF, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); - setNclocsExcept(FILE_4_REF, 1, 2); + setChangesets(FILE_1_REF, FILE_2_REF, FILE_4_REF); underTest.execute(); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_1_REF, NEW_NCLOC_KEY, 12 - 1 - 3); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_2_REF, NEW_NCLOC_KEY, 12 - 1); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_3_REF, NEW_NCLOC_KEY, 0); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_4_REF, NEW_NCLOC_KEY, 12 - 1 - 2); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(DIRECTORY_REF, NEW_NCLOC_KEY, 19); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(DIRECTORY_2_REF, NEW_NCLOC_KEY, 0); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(SUB_MODULE_1_REF, NEW_NCLOC_KEY, 19); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(SUB_MODULE_2_REF, NEW_NCLOC_KEY, 9); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(MODULE_REF, NEW_NCLOC_KEY, 28); - assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(ROOT_REF, NEW_NCLOC_KEY, 28); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_1_REF, NEW_LINES_KEY, 11); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_2_REF, NEW_LINES_KEY, 11); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_3_REF, NEW_LINES_KEY, 0); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_4_REF, NEW_LINES_KEY, 11); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(DIRECTORY_REF, NEW_LINES_KEY, 22); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(DIRECTORY_2_REF, NEW_LINES_KEY, 0); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(SUB_MODULE_1_REF, NEW_LINES_KEY, 22); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(SUB_MODULE_2_REF, NEW_LINES_KEY, 11); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(MODULE_REF, NEW_LINES_KEY, 33); + assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(ROOT_REF, NEW_LINES_KEY, 33); } @Test public void compute_new_lines_with_no_changeset() { - setNclocsExcept(FILE_1_REF); - underTest.execute(); - assertComputedAndAggregatedToZeroInt(NEW_NCLOC_KEY); + assertComputedAndAggregatedToZeroInt(NEW_LINES_KEY); } @Test public void compute_new_lines_with_no_ncloc_data() { underTest.execute(); - assertComputedAndAggregatedToZeroInt(NEW_NCLOC_KEY); + assertComputedAndAggregatedToZeroInt(NEW_LINES_KEY); } @Test @@ -343,47 +327,32 @@ public class NewSizeMeasuresStepTest { @Test public void compute_new_duplicated_lines_density() { - setChangesets(FILE_1_REF, FILE_2_REF, FILE_3_REF, FILE_4_REF); - setNclocsExcept(FILE_1_REF, 2, 4, 6); - setNclocsExcept(FILE_2_REF); - setNclocsExcept(FILE_3_REF, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); - setNclocsExcept(FILE_4_REF, 1, 2); + setChangesets(FILE_1_REF, FILE_2_REF, FILE_4_REF); addDuplicatedBlock(FILE_1_REF, 2); addDuplicatedBlock(FILE_3_REF, 10); addDuplicatedBlock(FILE_4_REF, 12); underTest.execute(); - assertRawMeasureValue(FILE_1_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 25d, null); + assertRawMeasureValue(FILE_1_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 18.2d, null); assertRawMeasureValue(FILE_2_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 0d, null); assertNoRawMeasure(FILE_3_REF, NEW_DUPLICATED_LINES_DENSITY_KEY); assertRawMeasureValue(FILE_4_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 100d, null); - assertRawMeasureValue(DIRECTORY_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 10.5d, null); + assertRawMeasureValue(DIRECTORY_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 9.1d, null); assertNoRawMeasure(DIRECTORY_2_REF, NEW_DUPLICATED_LINES_DENSITY_KEY); - assertRawMeasureValue(SUB_MODULE_1_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 10.5d,null); + assertRawMeasureValue(SUB_MODULE_1_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 9.1d, null); assertRawMeasureValue(SUB_MODULE_2_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 100d, null); - assertRawMeasureValue(MODULE_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 78.6d, null); - assertRawMeasureValue(ROOT_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 78.6d, null); + assertRawMeasureValue(MODULE_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 39.4d, null); + assertRawMeasureValue(ROOT_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 39.4d, null); } @Test public void compute_no_new_duplicated_lines_density_when_no_lines() { - setChangesets(FILE_1_REF, FILE_2_REF, FILE_3_REF, FILE_4_REF); - underTest.execute(); assertNoRawMeasures(NEW_DUPLICATED_LINES_DENSITY_KEY); } - private void setNclocsExcept(int componentRef, Integer... lineNumbersNotLineOfCode) { - List notLocNumbers = Arrays.asList(lineNumbersNotLineOfCode); - Map nclocData = IntStream.rangeClosed(1, 12) - .filter(lineNumber -> !notLocNumbers.contains(lineNumber)) - .boxed() - .collect(Collectors.toMap(Function.identity(), lineNumber -> 1)); - measureRepository.addRawMeasure(componentRef, NCLOC_DATA_KEY, Measure.newMeasureBuilder().create(KeyValueFormat.format(nclocData))); - } - /** * Adds duplication blocks of a single line (each line is specific to its block). * diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties index a0371ca6877..be5c66370c6 100644 --- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties +++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties @@ -2503,8 +2503,8 @@ metric.new_major_violations.description=New Major issues metric.new_major_violations.name=New Major Issues metric.new_minor_violations.description=New Minor issues metric.new_minor_violations.name=New Minor Issues -metric.new_ncloc.name=New Lines of Code -metric.new_ncloc.description=New non commenting lines of code +metric.new_lines.name=Lines on New Code +metric.new_lines.description=Non commenting lines on new code metric.new_overall_branch_coverage.description=Condition coverage of new/changed code by all tests metric.new_overall_branch_coverage.name=Overall Condition Coverage on New Code metric.new_overall_conditions_to_cover.description=New conditions to cover by all tests diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java index 4289ac363e3..a9c59954a40 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java @@ -132,12 +132,12 @@ public final class CoreMetrics { /** * @since 6.1 */ - public static final String NEW_NCLOC_KEY = "new_ncloc"; + public static final String NEW_LINES_KEY = "new_lines"; /** * @since 6.1 */ - public static final Metric NEW_NCLOC = new Metric.Builder(NEW_NCLOC_KEY, "New Lines of Code", Metric.ValueType.INT) - .setDescription("New non commenting lines of code") + public static final Metric NEW_LINES = new Metric.Builder(NEW_LINES_KEY, "Lines on New Code", Metric.ValueType.INT) + .setDescription("Non commenting lines on new code") .setDirection(Metric.DIRECTION_WORST) .setQualitative(false) .setDomain(DOMAIN_SIZE) -- 2.39.5