diff --git a/lib/private/helper.php b/lib/private/helper.php index a054fc485a..3e2c1db79d 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -406,6 +406,8 @@ class OC_Helper { static function rmdirr($dir) { if (is_dir($dir)) { $files = scandir($dir); + // FIXME: use flat array instead of recursion to avoid + // too many levels foreach ($files as $file) { if ($file !== '' && $file !== "." && $file !== "..") { self::rmdirr("$dir/$file"); diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php index 8eca55d1fd..a0f4d97d5b 100644 --- a/tests/lib/files/view.php +++ b/tests/lib/files/view.php @@ -22,6 +22,8 @@ class View extends \PHPUnit_Framework_TestCase { private $storages = array(); private $user; + private $tempStorage; + public function setUp() { \OC_User::clearBackends(); \OC_User::useBackend(new \OC_User_Dummy()); @@ -32,6 +34,8 @@ class View extends \PHPUnit_Framework_TestCase { \OC_User::setUserId('test'); \OC\Files\Filesystem::clearMounts(); + + $this->tempStorage = null; } public function tearDown() { @@ -41,6 +45,10 @@ class View extends \PHPUnit_Framework_TestCase { $ids = $cache->getAll(); $cache->clear(); } + + if ($this->tempStorage && !\OC_Util::runningOnWindows()) { + system('rm -rf ' . escapeshellarg($this->tempStorage->getDataDir())); + } } /** @@ -665,6 +673,7 @@ class View extends \PHPUnit_Framework_TestCase { } $storage = new \OC\Files\Storage\Temporary(array()); + $this->tempStorage = $storage; // for later hard cleanup \OC\Files\Filesystem::mount($storage, array(), '/'); $rootView = new \OC\Files\View(''); @@ -679,10 +688,6 @@ class View extends \PHPUnit_Framework_TestCase { } call_user_func(array($rootView, $operation), $longPath, $param0); - - if (!\OC_Util::runningOnWindows()) { - system('rm -rf ' . escapeshellarg($storage->getDataDir())); - } } public function tooLongPathDataProvider() {