Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 60cbf0d

Browse filesBrowse files
minor #17650 [Process] Fix transient tests for incremental outputs (nicolas-grekas)
This PR was merged into the 2.3 branch. Discussion ---------- [Process] Fix transient tests for incremental outputs | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #15617 | License | MIT | Doc PR | - Commits ------- 90455df [Process] Fix transient tests for incremental outputs
2 parents de6e3c8 + 90455df commit 60cbf0d
Copy full SHA for 60cbf0d

File tree

Expand file treeCollapse file tree

3 files changed

+26
-94
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+26
-94
lines changed

‎phpunit

Copy file name to clipboardExpand all lines: phpunit
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if ('phpdbg' === PHP_SAPI) {
2727
$PHP .= ' -qrr';
2828
}
2929

30-
$COMPOSER = file_exists($COMPOSER = __DIR__.'/composer.phar') || ($COMPOSER = rtrim('\\' === DIRECTORY_SEPARATOR ? `where.exe composer.phar` : `which composer.phar`))
30+
$COMPOSER = file_exists($COMPOSER = __DIR__.'/composer.phar') || ($COMPOSER = rtrim('\\' === DIRECTORY_SEPARATOR ? preg_replace('/[\r\n].*/', '', `where.exe composer.phar`) : `which composer.phar`))
3131
? $PHP.' '.ProcessUtils::escapeArgument($COMPOSER)
3232
: 'composer';
3333

‎src/Symfony/Component/HttpFoundation/Tests/RequestTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1669,7 +1669,7 @@ public function testVeryLongHosts($host)
16691669
$request = Request::create('/');
16701670
$request->headers->set('host', $host);
16711671
$this->assertEquals($host, $request->getHost());
1672-
$this->assertLessThan(1, microtime(true) - $start);
1672+
$this->assertLessThan(3, microtime(true) - $start);
16731673
}
16741674

16751675
/**

‎src/Symfony/Component/Process/Tests/ProcessTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Process/Tests/ProcessTest.php
+24-92Lines changed: 24 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -290,56 +290,40 @@ public function testGetErrorOutput()
290290
$this->assertEquals(3, preg_match_all('/ERROR/', $p->getErrorOutput(), $matches));
291291
}
292292

293-
public function testGetIncrementalErrorOutput()
293+
/**
294+
* @dataProvider provideIncrementalOutput
295+
*/
296+
public function testIncrementalOutput($getOutput, $getIncrementalOutput, $uri)
294297
{
295-
// use a lock file to toggle between writing ("W") and reading ("R") the
296-
// error stream
297-
$lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
298-
file_put_contents($lock, 'W');
298+
$lock = tempnam(sys_get_temp_dir(), __FUNCTION__);
299299

300-
$p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
300+
$p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('file_put_contents($s = \''.$uri.'\', \'foo\'); flock(fopen('.var_export($lock, true).', \'r\'), LOCK_EX); file_put_contents($s, \'bar\');')));
301301

302-
$p->start();
303-
while ($p->isRunning()) {
304-
if ('R' === file_get_contents($lock)) {
305-
$this->assertLessThanOrEqual(1, preg_match_all('/ERROR/', $p->getIncrementalErrorOutput(), $matches));
306-
file_put_contents($lock, 'W');
307-
}
308-
usleep(100);
309-
}
310-
311-
unlink($lock);
312-
}
313-
314-
public function testGetEmptyIncrementalErrorOutput()
315-
{
316-
// use a lock file to toggle between writing ("W") and reading ("R") the
317-
// output stream
318-
$lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
319-
file_put_contents($lock, 'W');
320-
321-
$p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
302+
$h = fopen($lock, 'w');
303+
flock($h, LOCK_EX);
322304

323305
$p->start();
324306

325-
$shouldWrite = false;
307+
foreach (array('foo', 'bar') as $s) {
308+
while (false === strpos($p->$getOutput(), $s)) {
309+
usleep(1000);
310+
}
326311

327-
while ($p->isRunning()) {
328-
if ('R' === file_get_contents($lock)) {
329-
if (!$shouldWrite) {
330-
$this->assertLessThanOrEqual(1, preg_match_all('/ERROR/', $p->getIncrementalOutput(), $matches));
331-
$shouldWrite = true;
332-
} else {
333-
$this->assertSame('', $p->getIncrementalOutput());
312+
$this->assertSame($s, $p->$getIncrementalOutput());
313+
$this->assertSame('', $p->$getIncrementalOutput());
334314

335-
file_put_contents($lock, 'W');
336-
$shouldWrite = false;
337-
}
338-
}
339-
usleep(100);
315+
flock($h, LOCK_UN);
340316
}
341317

342-
unlink($lock);
318+
fclose($h);
319+
}
320+
321+
public function provideIncrementalOutput()
322+
{
323+
return array(
324+
array('getOutput', 'getIncrementalOutput', 'php://stdout'),
325+
array('getErrorOutput', 'getIncrementalErrorOutput', 'php://stderr'),
326+
);
343327
}
344328

345329
public function testGetOutput()
@@ -350,58 +334,6 @@ public function testGetOutput()
350334
$this->assertEquals(3, preg_match_all('/foo/', $p->getOutput(), $matches));
351335
}
352336

353-
public function testGetIncrementalOutput()
354-
{
355-
// use a lock file to toggle between writing ("W") and reading ("R") the
356-
// output stream
357-
$lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
358-
file_put_contents($lock, 'W');
359-
360-
$p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { echo \' foo \'; $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
361-
362-
$p->start();
363-
while ($p->isRunning()) {
364-
if ('R' === file_get_contents($lock)) {
365-
$this->assertLessThanOrEqual(1, preg_match_all('/foo/', $p->getIncrementalOutput(), $matches));
366-
file_put_contents($lock, 'W');
367-
}
368-
usleep(100);
369-
}
370-
371-
unlink($lock);
372-
}
373-
374-
public function testGetEmptyIncrementalOutput()
375-
{
376-
// use a lock file to toggle between writing ("W") and reading ("R") the
377-
// output stream
378-
$lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
379-
file_put_contents($lock, 'W');
380-
381-
$p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { echo \' foo \'; $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
382-
383-
$p->start();
384-
385-
$shouldWrite = false;
386-
387-
while ($p->isRunning()) {
388-
if ('R' === file_get_contents($lock)) {
389-
if (!$shouldWrite) {
390-
$this->assertLessThanOrEqual(1, preg_match_all('/foo/', $p->getIncrementalOutput(), $matches));
391-
$shouldWrite = true;
392-
} else {
393-
$this->assertSame('', $p->getIncrementalOutput());
394-
395-
file_put_contents($lock, 'W');
396-
$shouldWrite = false;
397-
}
398-
}
399-
usleep(100);
400-
}
401-
402-
unlink($lock);
403-
}
404-
405337
public function testZeroAsOutput()
406338
{
407339
if ('\\' === DIRECTORY_SEPARATOR) {

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.