File tree Expand file tree Collapse file tree
src/VIPSoft/CodeCoverageCommon Expand file tree Collapse file tree Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Code Coverage Driver Factory
4+ *
5+ * @copyright 2013 Anthon Pang
6+ * @license BSD-3-Clause
7+ */
8+
9+ namespace VIPSoft \CodeCoverageCommon \Driver ;
10+
11+ use PHP_CodeCoverage_Driver as DriverInterface ;
12+
13+ /**
14+ * Driver factory
15+ *
16+ * @author Anthon Pang <apang@softwaredevelopment.ca>
17+ */
18+ class Factory
19+ {
20+ /**
21+ * @var array
22+ */
23+ private $ driverClasses ;
24+
25+ /**
26+ * Constructor
27+ *
28+ * @param array $driverClasses List of namespaced driver classes
29+ */
30+ public function __construct (array $ driverClasses )
31+ {
32+ $ this ->driverClasses = $ driverClasses ;
33+ }
34+
35+ /**
36+ * Create driver
37+ *
38+ * @return DriverInterface
39+ */
40+ public function create ()
41+ {
42+ foreach ($ this ->driverClasses as $ driverClass ) {
43+ try {
44+ $ driver = new $ driverClass ();
45+
46+ return $ driver ;
47+ } catch (\Exception $ e ) {
48+ }
49+ }
50+
51+ return null ;
52+ }
53+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * HHVM Code Coverage Driver
4+ *
5+ * @copyright 2013 Anthon Pang
6+ * @license BSD-3-Clause
7+ */
8+
9+ namespace VIPSoft \CodeCoverageCommon \Driver ;
10+
11+ use PHP_CodeCoverage_Driver as DriverInterface ;
12+
13+ /**
14+ * HHVM (Hip Hop VM) Driver
15+ *
16+ * {@internal Derived from PHP_CodeCoverage_Driver_Xdebug.}
17+ *
18+ * @author Anthon Pang <apang@softwaredevelopment.ca>
19+ */
20+ class HHVM implements DriverInterface
21+ {
22+ /**
23+ * Constructor
24+ *
25+ * @throws \PHP_CodeCoverage_Exception if PHP code coverage not enabled
26+ */
27+ public function __construct ()
28+ {
29+ if ( ! defined ('HPHP_VERSION ' )) {
30+ throw new \PHP_CodeCoverage_Exception ('This driver requires HHVM ' );
31+ }
32+ }
33+
34+ /**
35+ * {@inheritdoc}
36+ */
37+ public function start ()
38+ {
39+ fb_enable_code_coverage ();
40+ }
41+
42+ /**
43+ * {@inheritdoc}
44+ */
45+ public function stop ()
46+ {
47+ $ codeCoverage = fb_get_code_coverage (true );
48+
49+ fb_disable_code_coverage ();
50+
51+ return $ codeCoverage ;
52+ }
53+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Code Coverage Stub Driver
4+ *
5+ * @copyright 2013 Anthon Pang
6+ * @license BSD-3-Clause
7+ */
8+
9+ namespace VIPSoft \CodeCoverageCommon \Driver ;
10+
11+ use PHP_CodeCoverage_Driver as DriverInterface ;
12+
13+ /**
14+ * Stub driver
15+ *
16+ * @author Anthon Pang <apang@softwaredevelopment.ca>
17+ */
18+ class Stub implements DriverInterface
19+ {
20+ private $ driver ;
21+
22+ /**
23+ * Register driver
24+ *
25+ * @param DriverInterface $driver
26+ */
27+ public function setDriver (DriverInterface $ driver )
28+ {
29+ $ this ->driver = $ driver ;
30+ }
31+
32+ /**
33+ * Get driver
34+ *
35+ * @return DriverInterface $driver
36+ */
37+ public function getDriver ()
38+ {
39+ return $ this ->driver ;
40+ }
41+
42+ /**
43+ * {@inheritdoc}
44+ */
45+ public function start ()
46+ {
47+ if ($ this ->driver ) {
48+ $ this ->driver ->start ();
49+ }
50+ }
51+
52+ /**
53+ * {@inheritdoc}
54+ */
55+ public function stop ()
56+ {
57+ return $ this ->driver ? $ this ->driver ->stop () : false ;
58+ }
59+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * XCache Code Coverage Driver
4+ *
5+ * @copyright 2013 Anthon Pang
6+ * @license BSD-3-Clause
7+ */
8+
9+ namespace VIPSoft \CodeCoverageCommon \Driver ;
10+
11+ use PHP_CodeCoverage_Driver as DriverInterface ;
12+
13+ /**
14+ * XCache Driver
15+ *
16+ * {@internal Derived from PHP_CodeCoverage_Driver_Xdebug.}
17+ *
18+ * @author Anthon Pang <apang@softwaredevelopment.ca>
19+ */
20+ class XCache implements DriverInterface
21+ {
22+ /**
23+ * Constructor
24+ *
25+ * @throws \PHP_CodeCoverage_Exception if PHP code coverage not enabled
26+ */
27+ public function __construct ()
28+ {
29+ if ( ! extension_loaded ('xcache ' )) {
30+ throw new \PHP_CodeCoverage_Exception ('This driver requires XCache ' );
31+ }
32+
33+ if (version_compare (phpversion ('xcache ' ), '1.2.0 ' , '< ' ) ||
34+ ! ini_get ('xcache.coverager ' )
35+ ) {
36+ throw new \PHP_CodeCoverage_Exception ('xcache.coverager=On has to be set in php.ini ' );
37+ }
38+ }
39+
40+ /**
41+ * {@inheritdoc}
42+ */
43+ public function start ()
44+ {
45+ xcache_coverager_start ();
46+ }
47+
48+ /**
49+ * {@inheritdoc}
50+ */
51+ public function stop ()
52+ {
53+ $ codeCoverage = xcache_coverager_get ();
54+
55+ xcache_coverager_stop (true );
56+
57+ return $ codeCoverage ;
58+ }
59+ }
You can’t perform that action at this time.
0 commit comments