gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

RepeatedTest.php (2295B)


      1 <?php
      2 /*
      3  * This file is part of PHPUnit.
      4  *
      5  * (c) Sebastian Bergmann <sebastian@phpunit.de>
      6  *
      7  * For the full copyright and license information, please view the LICENSE
      8  * file that was distributed with this source code.
      9  */
     10 
     11 /**
     12  * A Decorator that runs a test repeatedly.
     13  *
     14  * @since Class available since Release 2.0.0
     15  */
     16 class PHPUnit_Extensions_RepeatedTest extends PHPUnit_Extensions_TestDecorator
     17 {
     18     /**
     19      * @var bool
     20      */
     21     protected $processIsolation = false;
     22 
     23     /**
     24      * @var int
     25      */
     26     protected $timesRepeat = 1;
     27 
     28     /**
     29      * @param PHPUnit_Framework_Test $test
     30      * @param int                    $timesRepeat
     31      * @param bool                   $processIsolation
     32      *
     33      * @throws PHPUnit_Framework_Exception
     34      */
     35     public function __construct(PHPUnit_Framework_Test $test, $timesRepeat = 1, $processIsolation = false)
     36     {
     37         parent::__construct($test);
     38 
     39         if (is_integer($timesRepeat) &&
     40             $timesRepeat >= 0) {
     41             $this->timesRepeat = $timesRepeat;
     42         } else {
     43             throw PHPUnit_Util_InvalidArgumentHelper::factory(
     44                 2,
     45                 'positive integer'
     46             );
     47         }
     48 
     49         $this->processIsolation = $processIsolation;
     50     }
     51 
     52     /**
     53      * Counts the number of test cases that
     54      * will be run by this test.
     55      *
     56      * @return int
     57      */
     58     public function count()
     59     {
     60         return $this->timesRepeat * count($this->test);
     61     }
     62 
     63     /**
     64      * Runs the decorated test and collects the
     65      * result in a TestResult.
     66      *
     67      * @param PHPUnit_Framework_TestResult $result
     68      *
     69      * @return PHPUnit_Framework_TestResult
     70      *
     71      * @throws PHPUnit_Framework_Exception
     72      */
     73     public function run(PHPUnit_Framework_TestResult $result = null)
     74     {
     75         if ($result === null) {
     76             $result = $this->createResult();
     77         }
     78 
     79         //@codingStandardsIgnoreStart
     80         for ($i = 0; $i < $this->timesRepeat && !$result->shouldStop(); $i++) {
     81             //@codingStandardsIgnoreEnd
     82             if ($this->test instanceof PHPUnit_Framework_TestSuite) {
     83                 $this->test->setRunTestInSeparateProcess($this->processIsolation);
     84             }
     85             $this->test->run($result);
     86         }
     87 
     88         return $result;
     89     }
     90 }