shell: Note that ::isDisabled() should be called before ::command()
authorKunal Mehta <legoktm@member.fsf.org>
Sun, 24 Jun 2018 21:09:32 +0000 (00:09 +0300)
committerKrinkle <krinklemail@gmail.com>
Mon, 2 Jul 2018 22:16:03 +0000 (22:16 +0000)
And check it in the FirejailCommandTest (integration) for completeness,
even though it will make no practical difference.

Change-Id: Ieb130a888ef8a8162cb0a049ab9c20eac3f58217

includes/shell/Shell.php
tests/integration/includes/shell/FirejailCommandTest.php

index ee9f1eb..0ddc443 100644 (file)
@@ -110,6 +110,7 @@ class Shell {
        /**
         * Returns a new instance of Command class
         *
+        * @note You should check Shell::isDisabled() before calling this
         * @param string|string[] ...$commands String or array of strings representing the command to
         * be executed, each value will be escaped.
         *   Example:   [ 'convert', '-font', 'font name' ] would produce "'convert' '-font' 'font name'"
@@ -223,6 +224,7 @@ class Shell {
         * Note that $parameters should be a flat array and an option with an argument
         * should consist of two consecutive items in the array (do not use "--option value").
         *
+        * @note You should check Shell::isDisabled() before calling this
         * @param string $script MediaWiki CLI script with full path
         * @param string[] $parameters Arguments and options to the script
         * @param array $options Associative array of options:
index 1e008ee..4730005 100644 (file)
@@ -16,7 +16,9 @@ class FirejailCommandIntegrationTest extends PHPUnit\Framework\TestCase {
 
        public function setUp() {
                parent::setUp();
-               if ( Shell::command( 'which', 'firejail' )->execute()->getExitCode() ) {
+               if ( Shell::isDisabled() ) {
+                       $this->markTestSkipped( 'shelling out is disabled' );
+               } elseif ( Shell::command( 'which', 'firejail' )->execute()->getExitCode() ) {
                        $this->markTestSkipped( 'firejail not installed' );
                } elseif ( wfIsWindows() ) {
                        $this->markTestSkipped( 'test supports POSIX environments only' );