Page MenuHomePhabricator

D13854.id.diff
No OneTemporary

D13854.id.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -247,6 +247,7 @@
'ArcanistUnitRenderer' => 'unit/renderer/ArcanistUnitRenderer.php',
'ArcanistUnitTestEngine' => 'unit/engine/ArcanistUnitTestEngine.php',
'ArcanistUnitTestResult' => 'unit/ArcanistUnitTestResult.php',
+ 'ArcanistUnitTestResultTestCase' => 'unit/__tests__/ArcanistUnitTestResultTestCase.php',
'ArcanistUnitTestableLintEngine' => 'lint/engine/ArcanistUnitTestableLintEngine.php',
'ArcanistUnitWorkflow' => 'workflow/ArcanistUnitWorkflow.php',
'ArcanistUnnecessaryFinalModifierXHPASTLinterRule' => 'lint/linter/xhpast/rules/ArcanistUnnecessaryFinalModifierXHPASTLinterRule.php',
@@ -525,6 +526,7 @@
'ArcanistUnitRenderer' => 'Phobject',
'ArcanistUnitTestEngine' => 'Phobject',
'ArcanistUnitTestResult' => 'Phobject',
+ 'ArcanistUnitTestResultTestCase' => 'PhutilTestCase',
'ArcanistUnitTestableLintEngine' => 'ArcanistLintEngine',
'ArcanistUnitWorkflow' => 'ArcanistWorkflow',
'ArcanistUnnecessaryFinalModifierXHPASTLinterRule' => 'ArcanistXHPASTLinterRule',
diff --git a/src/unit/ArcanistUnitTestResult.php b/src/unit/ArcanistUnitTestResult.php
--- a/src/unit/ArcanistUnitTestResult.php
+++ b/src/unit/ArcanistUnitTestResult.php
@@ -129,13 +129,22 @@
$base = reset($coverage);
foreach ($coverage as $more_coverage) {
- $len = min(strlen($base), strlen($more_coverage));
+ $base_len = strlen($base);
+ $more_len = strlen($more_coverage);
+
+ $len = min($base_len, $more_len);
for ($ii = 0; $ii < $len; $ii++) {
if ($more_coverage[$ii] == 'C') {
$base[$ii] = 'C';
}
}
+
+ // If a secondary report has more data, copy all of it over.
+ if ($more_len > $base_len) {
+ $base .= substr($more_coverage, $base_len);
+ }
}
+
return $base;
}
diff --git a/src/unit/__tests__/ArcanistUnitTestResultTestCase.php b/src/unit/__tests__/ArcanistUnitTestResultTestCase.php
new file mode 100644
--- /dev/null
+++ b/src/unit/__tests__/ArcanistUnitTestResultTestCase.php
@@ -0,0 +1,43 @@
+<?php
+
+final class ArcanistUnitTestResultTestCase extends PhutilTestCase {
+
+ public function testCoverageMerges() {
+ $cases = array(
+ array(
+ 'coverage' => array(),
+ 'expect' => null,
+ ),
+ array(
+ 'coverage' => array(
+ 'UUUNCNC',
+ ),
+ 'expect' => 'UUUNCNC',
+ ),
+ array(
+ 'coverage' => array(
+ 'UUCUUU',
+ 'UUUUCU',
+ ),
+ 'expect' => 'UUCUCU',
+ ),
+ array(
+ 'coverage' => array(
+ 'UUCCCU',
+ 'UUUCCCNNNC',
+ ),
+ 'expect' => 'UUCCCCNNNC',
+ ),
+ );
+
+ foreach ($cases as $case) {
+ $input = $case['coverage'];
+ $expect = $case['expect'];
+
+ $actual = ArcanistUnitTestResult::mergeCoverage($input);
+
+ $this->assertEqual($expect, $actual);
+ }
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 24, 8:53 AM (2 d, 1 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7718216
Default Alt Text
D13854.id.diff (3 KB)

Event Timeline