public function testPatch()
{
if (PHP_OS !== "Darwin") {
return $this->markTestSkipped('openssl DSO patch test only runs on darwin platform');
}
$logger = new Logger();
$logger->setQuiet();
$fromVersion = '5.5.17';
$sourceFixtureDirectory = getenv('PHPBREW_FIXTURES_PHP_DIR') . DIRECTORY_SEPARATOR . $fromVersion;
$sourceDirectory = getenv('PHPBREW_BUILD_PHP_DIR');
$this->setupBuildDirectory($fromVersion);
$build = new Build($fromVersion);
$build->setSourceDirectory($sourceDirectory);
$build->enableVariant('openssl');
$this->assertTrue($build->hasVariant('openssl'), 'openssl enabled');
$patch = new OpenSSLDSOPatch();
$matched = $patch->match($build, $logger);
$this->assertTrue($matched, 'patch matched');
$patchedCount = $patch->apply($build, $logger);
$this->assertEquals(10, $patchedCount);
/*
We can't assume the file equals because the test may be run on different platform and openssl may be installed
into different locations.
$sourceExpectedDirectory = getenv('PHPBREW_EXPECTED_PHP_DIR') . DIRECTORY_SEPARATOR . '5.5.17-openssl-dso-patch';
$this->assertFileEquals($sourceExpectedDirectory. '/Makefile', $sourceDirectory . '/Makefile');
*/
}