getResourcePath($fileName); $reader = ReaderEntityFactory::createReader(Type::ODS); $reader->open($resourcePath); $numReadRows = 0; /** @var Sheet $sheet */ foreach ($reader->getSheetIterator() as $sheet) { foreach ($sheet->getRowIterator() as $row) { $numReadRows++; } } $reader->close(); $expectedNumRows = 1000000; $this->assertEquals($expectedNumRows, $numReadRows, "$expectedNumRows rows should have been read"); $executionTime = time() - $startTime; $this->assertTrue($executionTime < $expectedMaxExecutionTime, "Reading 1 million rows should take less than $expectedMaxExecutionTime seconds (took $executionTime seconds)"); $memoryPeakUsage = memory_get_peak_usage(true) - $beforeMemoryPeakUsage; $this->assertTrue($memoryPeakUsage < $expectedMaxMemoryPeakUsage, 'Reading 1 million rows should require less than ' . ($expectedMaxMemoryPeakUsage / 1024 / 1024) . ' MB of memory (required ' . round($memoryPeakUsage / 1024 / 1024, 2) . ' MB)'); } }