5 use Drush\Commands\core\XhprofCommands;
8 * Unit tests for xhCommands
12 class XhUnitCase extends UnishTestCase
16 * Test various combinations of XHProf flag options.
18 * @dataProvider xhOptionProvider
20 public function testFlags($name, $options, $expected)
22 $this->assertEquals($expected, XhprofCommands::xhprofFlags($options), $name);
26 * Provides drush XHProf options and the results we expect from xh_flags().
28 public function xhOptionProvider()
31 if (!defined('XHPROF_FLAGS_NO_BUILTINS')) {
32 define('XHPROF_FLAGS_NO_BUILTINS', 1);
33 define('XHPROF_FLAGS_CPU', 2);
34 define('XHPROF_FLAGS_MEMORY', 3);
39 'name' => 'Default flag options explicitly provided',
41 'profile-builtins' => true,
42 'profile-cpu' => false,
43 'profile-memory' => false,
48 'name' => 'Disable profiling of built-ins',
50 'profile-builtins' => false,
51 'profile-cpu' => false,
52 'profile-memory' => false,
54 'expected' => XHPROF_FLAGS_NO_BUILTINS,
57 'name' => 'Enable profiling of CPU',
59 'profile-builtins' => true,
60 'profile-cpu' => true,
61 'profile-memory' => false,
63 'expected' => XHPROF_FLAGS_CPU,
66 'name' => 'Enable profiling of CPU, without builtins',
68 'profile-builtins' => false,
69 'profile-cpu' => true,
70 'profile-memory' => false,
72 'expected' => XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU,
75 'name' => 'Enable profiling of Memory',
77 'profile-builtins' => true,
78 'profile-cpu' => false,
79 'profile-memory' => true,
81 'expected' => XHPROF_FLAGS_MEMORY,
84 'name' => 'Enable profiling of Memory, without builtins',
86 'profile-builtins' => false,
87 'profile-cpu' => false,
88 'profile-memory' => true,
90 'expected' => XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_MEMORY,
93 'name' => 'Enable profiling of CPU & Memory',
95 'profile-builtins' => true,
96 'profile-cpu' => true,
97 'profile-memory' => true,
99 'expected' => XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY,