}
}
- /**
- * Check whether we have the 'gzip' commandline utility, will skip
- * the test whenever "gzip -V" fails.
- *
- * Result is cached at the process level.
- *
- * @return bool
- *
- * @since 1.21
- */
- protected function checkHasGzip() {
- static $haveGzip;
-
- if ( $haveGzip === null ) {
- $retval = null;
- wfShellExec( 'gzip -V', $retval );
- $haveGzip = ( $retval === 0 );
- }
-
- if ( !$haveGzip ) {
- $this->markTestSkipped( "Skip test, requires the gzip utility in PATH" );
- }
-
- return $haveGzip;
- }
-
/**
* Check if $extName is a loaded PHP extension, will skip the
* test whenever it is not loaded.
*/
protected $xml = null;
+ /** @var bool|null Whether the 'gzip' utility is available */
+ protected static $hasGzip = null;
+
+ /**
+ * Skip the test if 'gzip' is not in $PATH.
+ *
+ * @return bool
+ */
+ protected function checkHasGzip() {
+ if ( self::$hasGzip === null ) {
+ self::$hasGzip = ( Installer::locateExecutableInDefaultPaths( 'gzip' ) !== false );
+ }
+
+ if ( !self::$hasGzip ) {
+ $this->markTestSkipped( "Skip test, requires the gzip utility in PATH" );
+ }
+
+ return self::$hasGzip;
+ }
+
/**
* Adds a revision to a page, while returning the resuting revision's id
*