2011-01-09 15:22:25 -08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/*
|
2012-01-31 12:07:05 -08:00
|
|
|
* Copyright 2012 Facebook, Inc.
|
2011-01-09 15:22:25 -08:00
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
2011-02-19 11:36:08 -08:00
|
|
|
/**
|
|
|
|
* Represents the outcome of running a unit test.
|
|
|
|
*
|
|
|
|
* @group unit
|
|
|
|
*/
|
2012-01-31 12:07:05 -08:00
|
|
|
final class ArcanistUnitTestResult {
|
2011-01-09 15:22:25 -08:00
|
|
|
|
|
|
|
const RESULT_PASS = 'pass';
|
|
|
|
const RESULT_FAIL = 'fail';
|
|
|
|
const RESULT_SKIP = 'skip';
|
|
|
|
const RESULT_BROKEN = 'broken';
|
|
|
|
const RESULT_UNSOUND = 'unsound';
|
2011-03-21 17:29:12 -07:00
|
|
|
const RESULT_POSTPONED = 'postponed';
|
2011-01-09 15:22:25 -08:00
|
|
|
|
|
|
|
private $namespace;
|
|
|
|
private $name;
|
|
|
|
private $result;
|
2011-07-03 23:31:14 -07:00
|
|
|
private $duration;
|
2011-01-09 15:22:25 -08:00
|
|
|
private $userData;
|
2012-01-31 12:07:19 -08:00
|
|
|
private $coverage;
|
2011-01-09 15:22:25 -08:00
|
|
|
|
|
|
|
public function setName($name) {
|
|
|
|
$this->name = $name;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getName() {
|
|
|
|
return $this->name;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setResult($result) {
|
|
|
|
$this->result = $result;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getResult() {
|
|
|
|
return $this->result;
|
|
|
|
}
|
|
|
|
|
2011-07-03 23:31:14 -07:00
|
|
|
public function setDuration($duration) {
|
|
|
|
$this->duration = $duration;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getDuration() {
|
|
|
|
return $this->duration;
|
|
|
|
}
|
|
|
|
|
2011-01-09 15:22:25 -08:00
|
|
|
public function setUserData($user_data) {
|
|
|
|
$this->userData = $user_data;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getUserData() {
|
|
|
|
return $this->userData;
|
|
|
|
}
|
|
|
|
|
2012-01-31 12:07:19 -08:00
|
|
|
public function setCoverage($coverage) {
|
|
|
|
$this->coverage = $coverage;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getCoverage() {
|
|
|
|
return $this->coverage;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Merge several coverage reports into a comprehensive coverage report.
|
|
|
|
*
|
|
|
|
* @param list List of coverage report strings.
|
|
|
|
* @return string Cumulative coverage report.
|
|
|
|
*/
|
|
|
|
public static function mergeCoverage(array $coverage) {
|
|
|
|
$base = reset($coverage);
|
|
|
|
foreach ($coverage as $more_coverage) {
|
|
|
|
$len = min(strlen($base), strlen($more_coverage));
|
|
|
|
for ($ii = 0; $ii < $len; $ii++) {
|
|
|
|
if ($more_coverage[$ii] == 'C') {
|
|
|
|
$base[$ii] = 'C';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $base;
|
|
|
|
}
|
|
|
|
|
2011-01-09 15:22:25 -08:00
|
|
|
}
|