From 6e2358c3a6b1417002b74275f1c34d738f35f1ba Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 6 Jun 2014 10:41:49 +0200 Subject: [PATCH] Added hacky fix for long path cleanup routine --- lib/private/helper.php | 2 ++ tests/lib/files/view.php | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) 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() {