public function testFreeMemory() { $getMemoryUsage = function () { $pid = CM_Process::getInstance()->getProcessId(); $memory = CM_Util::exec('ps', ['-o', 'rss', '--no-headers', '--pid', $pid]); return (int) $memory; }; $imageOriginal = new CM_File_Image(DIR_TEST_DATA . 'img/test.jpg'); $image = CM_File_Image::createTmp(null, $imageOriginal->read()); $memoryUsage = $getMemoryUsage(); $memoryUsageMaxExpected = $memoryUsage + 20 * 1000; $image->resizeSpecific(3000, 3000); $this->assertGreaterThan($memoryUsageMaxExpected, $getMemoryUsage()); $image->freeMemory(); $this->assertLessThan($memoryUsageMaxExpected, $getMemoryUsage()); $image->validateImage(); }