wiki.techinc.nl/tests/phpunit/includes/GlobalFunctions/wfShellExecTest.php
RazeSoldier af5df424fc Skip ::testT69870() under Windows system
Anonymous pipe under Windows does not support asynchronous read and write[1],
and the default buffer is too small (~4K), the test will definitely block it.

Before T69870, anonymous pipe for Windows can no longer hold more than 4K of data.

[1] https://docs.microsoft.com/en-us/windows/desktop/ipc/anonymous-pipe-operations

Bug: T209159
Change-Id: Ie9de36b1e6b68db95c35a0044c5b0d86c0050d33
2019-06-22 19:59:27 +00:00

23 lines
710 B
PHP

<?php
/**
* @group GlobalFunctions
* @covers ::wfShellExec
*/
class WfShellExecTest extends MediaWikiTestCase {
public function testT69870() {
if ( wfIsWindows() ) {
// T209159: Anonymous pipe under Windows does not support asynchronous read and write,
// and the default buffer is too small (~4K), it is easy to be blocked.
$this->markTestSkipped(
'T209159: Anonymous pipe under Windows cannot withstand such a large amount of data'
);
}
// Test several times because it involves a race condition that may randomly succeed or fail
for ( $i = 0; $i < 10; $i++ ) {
$output = wfShellExec( 'printf "%-333333s" "*"' );
$this->assertEquals( 333333, strlen( $output ) );
}
}
}