function MigrateExecutableMemoryExceededTest::runMemoryExceededTest

Same name in other branches
  1. 8.9.x core/modules/migrate/tests/src/Unit/MigrateExecutableMemoryExceededTest.php \Drupal\Tests\migrate\Unit\MigrateExecutableMemoryExceededTest::runMemoryExceededTest()
  2. 10 core/modules/migrate/tests/src/Unit/MigrateExecutableMemoryExceededTest.php \Drupal\Tests\migrate\Unit\MigrateExecutableMemoryExceededTest::runMemoryExceededTest()
  3. 11.x core/modules/migrate/tests/src/Unit/MigrateExecutableMemoryExceededTest.php \Drupal\Tests\migrate\Unit\MigrateExecutableMemoryExceededTest::runMemoryExceededTest()

Runs the actual test.

Parameters

string $message: The second message to assert.

bool $memory_exceeded: Whether to test the memory exceeded case.

int|null $memory_usage_first: (optional) The first memory usage value. Defaults to NULL.

int|null $memory_usage_second: (optional) The fake amount of memory usage reported after memory reclaim. Defaults to NULL.

int|null $memory_limit: (optional) The memory limit. Defaults to NULL.

3 calls to MigrateExecutableMemoryExceededTest::runMemoryExceededTest()
MigrateExecutableMemoryExceededTest::testMemoryExceededClearedEnough in core/modules/migrate/tests/src/Unit/MigrateExecutableMemoryExceededTest.php
Tests memoryExceeded method when enough is cleared.
MigrateExecutableMemoryExceededTest::testMemoryExceededNewBatch in core/modules/migrate/tests/src/Unit/MigrateExecutableMemoryExceededTest.php
Tests memoryExceeded method when a new batch is needed.
MigrateExecutableMemoryExceededTest::testMemoryNotExceeded in core/modules/migrate/tests/src/Unit/MigrateExecutableMemoryExceededTest.php
Tests memoryExceeded when memory usage is not exceeded.

File

core/modules/migrate/tests/src/Unit/MigrateExecutableMemoryExceededTest.php, line 76

Class

MigrateExecutableMemoryExceededTest
Tests the \Drupal\migrate\MigrateExecutable::memoryExceeded() method.

Namespace

Drupal\Tests\migrate\Unit

Code

protected function runMemoryExceededTest($message, $memory_exceeded, $memory_usage_first = NULL, $memory_usage_second = NULL, $memory_limit = NULL) {
    $this->executable
        ->setMemoryLimit($memory_limit ?: $this->memoryLimit);
    $this->executable
        ->setMemoryUsage($memory_usage_first ?: $this->memoryLimit, $memory_usage_second ?: $this->memoryLimit);
    $this->executable
        ->setMemoryThreshold(0.85);
    if ($message) {
        $this->executable->message
            ->expects($this->exactly(2))
            ->method('display')
            ->withConsecutive([
            $this->callback(function ($subject) {
                return mb_stripos((string) $subject, 'reclaiming memory') !== FALSE;
            }),
        ], [
            $this->callback(function ($subject) use ($message) {
                return mb_stripos((string) $subject, $message) !== FALSE;
            }),
        ]);
    }
    else {
        $this->executable->message
            ->expects($this->never())
            ->method($this->anything());
    }
    $result = $this->executable
        ->memoryExceeded();
    $this->assertEquals($memory_exceeded, $result);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.