Skip to content

Commit a93ea30

Browse files
Merge pull request #290 from magento-south/MAGETWO-57294
Story: - MAGETWO-57294: Porting L2 build optimizations to 2.0.x
2 parents d51ad91 + b47c7d5 commit a93ea30

File tree

7 files changed

+67
-47
lines changed

7 files changed

+67
-47
lines changed

.php_cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ return Symfony\CS\Config\Config::create()
3333
'extra_empty_lines',
3434
'include',
3535
'join_function',
36-
'multiline_array_trailing_comma',
3736
'namespace_no_leading_whitespace',
3837
'new_with_braces',
3938
'object_operator',

dev/tests/integration/framework/Magento/TestFramework/Event/Transaction.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ protected function _rollbackTransaction()
113113
$this->_getConnection()->rollbackTransparentTransaction();
114114
$this->_isTransactionActive = false;
115115
$this->_eventManager->fireEvent('rollbackTransaction');
116+
$this->_getConnection()->closeConnection();
116117
}
117118
}
118119

dev/tests/integration/framework/Magento/TestFramework/Listener/ExtededTestdox.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ protected function endClass($name)
296296
protected function doEndClass()
297297
{
298298
foreach ($this->tests as $name => $data) {
299-
$check = $data['failure'] == 0 ? ' [x] ' : ' [ ] ';
299+
$check = $data['failure'] == 0 ? ' - [x] ' : ' - [ ] ';
300300
$this->write(
301301
"\n" . $check . $name . ($data['failure'] + $data['success'] ==
302302
0 ? ' (skipped)' : '') . ($data['time'] > 1 ? ' - ' . number_format(

dev/tests/integration/framework/Magento/TestFramework/Workaround/Cleanup/StaticProperties.php

Lines changed: 64 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ class StaticProperties
3333
* @var array
3434
*/
3535
protected static $_classesToSkip = [
36-
'Mage',
3736
'Magento\Framework\App\ObjectManager',
3837
'Magento\TestFramework\Helper\Bootstrap',
3938
'Magento\TestFramework\Event\Magento',
@@ -43,6 +42,11 @@ class StaticProperties
4342
'Magento\Framework\Phrase',
4443
];
4544

45+
/**
46+
* @var \ReflectionClass[]
47+
*/
48+
static protected $classes = [];
49+
4650
/**
4751
* Constructor
4852
*/
@@ -73,10 +77,11 @@ protected static function _isClassCleanable(\ReflectionClass $reflectionClass)
7377
{
7478
// do not process blacklisted classes from integration framework
7579
foreach (self::$_classesToSkip as $notCleanableClass) {
76-
if ($reflectionClass->getName() == $notCleanableClass || is_subclass_of(
77-
$reflectionClass->getName(),
78-
$notCleanableClass
79-
)
80+
if ($reflectionClass->getName() == $notCleanableClass ||
81+
is_subclass_of(
82+
$reflectionClass->getName(),
83+
$notCleanableClass
84+
)
8085
) {
8186
return false;
8287
}
@@ -107,6 +112,18 @@ protected static function _isClassInCleanableFolders($classFile)
107112
return false; // File is not in an "include" directory
108113
}
109114

115+
/**
116+
* @param string $class
117+
* @return \ReflectionClass
118+
*/
119+
private static function getReflectionClass($class)
120+
{
121+
if (!isset(self::$classes[$class])) {
122+
self::$classes[$class] = new \ReflectionClass($class);
123+
}
124+
125+
return self::$classes[$class];
126+
}
110127

111128
/**
112129
* Restore static variables (after running controller test case)
@@ -115,7 +132,7 @@ protected static function _isClassInCleanableFolders($classFile)
115132
public static function restoreStaticVariables()
116133
{
117134
foreach (array_keys(self::$backupStaticVariables) as $class) {
118-
$reflectionClass = new \ReflectionClass($class);
135+
$reflectionClass = self::getReflectionClass($class);
119136
$staticProperties = $reflectionClass->getProperties(\ReflectionProperty::IS_STATIC);
120137
foreach ($staticProperties as $staticProperty) {
121138
$staticProperty->setAccessible(true);
@@ -130,43 +147,52 @@ public static function restoreStaticVariables()
130147
*/
131148
public static function backupStaticVariables()
132149
{
133-
$classFiles = Files::init()->getPhpFiles(
134-
Files::INCLUDE_APP_CODE
135-
| Files::INCLUDE_LIBS
136-
| Files::INCLUDE_TESTS
150+
if (count(self::$backupStaticVariables) > 0) {
151+
return;
152+
}
153+
154+
$classFiles = array_filter(
155+
Files::init()->getPhpFiles(
156+
Files::INCLUDE_APP_CODE
157+
| Files::INCLUDE_LIBS
158+
| Files::INCLUDE_TESTS
159+
),
160+
function ($classFile) {
161+
return StaticProperties::_isClassInCleanableFolders($classFile)
162+
&& strpos(file_get_contents($classFile), ' static ') > 0;
163+
}
137164
);
165+
138166
$namespacePattern = '/namespace [a-zA-Z0-9\\\\]+;/';
139167
$classPattern = '/\nclass [a-zA-Z0-9_]+/';
168+
140169
foreach ($classFiles as $classFile) {
141-
if (self::_isClassInCleanableFolders($classFile)) {
142-
$file = @fopen($classFile, 'r');
143-
$code = fread($file, 4096);
144-
preg_match($namespacePattern, $code, $namespace);
145-
preg_match($classPattern, $code, $class);
146-
if (!isset($namespace[0]) || !isset($class[0])) {
147-
fclose($file);
148-
continue;
149-
}
150-
// trim namespace and class name
151-
$namespace = substr($namespace[0], 10, strlen($namespace[0]) - 11);
152-
$class = substr($class[0], 7, strlen($class[0]) - 7);
153-
$className = $namespace . '\\' . $class;
154-
155-
try {
156-
$reflectionClass = new \ReflectionClass($className);
157-
} catch (\Exception $e) {
158-
fclose($file);
159-
continue;
160-
}
161-
if (self::_isClassCleanable($reflectionClass)) {
162-
$staticProperties = $reflectionClass->getProperties(\ReflectionProperty::IS_STATIC);
163-
foreach ($staticProperties as $staticProperty) {
164-
$staticProperty->setAccessible(true);
165-
$value = $staticProperty->getValue();
166-
self::$backupStaticVariables[$className][$staticProperty->getName()] = $value;
167-
}
170+
$code = file_get_contents($classFile);
171+
preg_match($namespacePattern, $code, $namespace);
172+
preg_match($classPattern, $code, $class);
173+
174+
if (!isset($namespace[0]) || !isset($class[0])) {
175+
continue;
176+
}
177+
178+
// trim namespace and class name
179+
$namespace = substr($namespace[0], 10, strlen($namespace[0]) - 11);
180+
$class = substr($class[0], 7, strlen($class[0]) - 7);
181+
$className = $namespace . '\\' . $class;
182+
183+
try {
184+
$reflectionClass = self::getReflectionClass($className);
185+
} catch (\Exception $e) {
186+
continue;
187+
}
188+
189+
if (self::_isClassCleanable($reflectionClass)) {
190+
$staticProperties = $reflectionClass->getProperties(\ReflectionProperty::IS_STATIC);
191+
foreach ($staticProperties as $staticProperty) {
192+
$staticProperty->setAccessible(true);
193+
$value = $staticProperty->getValue();
194+
self::$backupStaticVariables[$className][$staticProperty->getName()] = $value;
168195
}
169-
fclose($file);
170196
}
171197
}
172198
}

dev/tests/integration/testsuite/Magento/Framework/Session/SaveHandlerTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public function setUp()
3333
*/
3434
public function testSetSaveHandler($deploymentConfigHandler, $iniHandler)
3535
{
36+
$this->markTestSkipped('MAGETWO-56529');
3637
// Set expected session.save_handler config
3738
if ($deploymentConfigHandler) {
3839
if ($deploymentConfigHandler !== 'files') {

dev/tests/integration/testsuite/Magento/Newsletter/Controller/Adminhtml/NewsletterQueueTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ protected function tearDown()
3838

3939
/**
4040
* @magentoDataFixture Magento/Newsletter/_files/newsletter_sample.php
41-
* @magentoAppIsolation disabled
4241
*/
4342
public function testSaveActionQueueTemplateAndVerifySuccessMessage()
4443
{

dev/tests/integration/testsuite/Magento/Theme/Model/Theme/Domain/VirtualTest.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,4 @@ public function testGetPhysicalTheme()
8787
)->getPhysicalTheme()->getId()
8888
);
8989
}
90-
91-
protected function tearDown()
92-
{
93-
unset($this->_physicalThemeId);
94-
unset($this->_virtualThemeId);
95-
}
9690
}

0 commit comments

Comments
 (0)