You are here

function _batch_test_callback_2 in Drupal 7

Same name and namespace in other branches
  1. 8 core/modules/system/tests/modules/batch_test/batch_test.callbacks.inc \_batch_test_callback_2()
  2. 9 core/modules/system/tests/modules/batch_test/batch_test.callbacks.inc \_batch_test_callback_2()

Implements callback_batch_operation().

Multistep batch operation.

2 string references to '_batch_test_callback_2'
_batch_test_batch_2 in modules/simpletest/tests/batch_test.module
Batch 2: single multistep operation.
_batch_test_batch_3 in modules/simpletest/tests/batch_test.module
Batch 3: both single and multistep operations.

File

modules/simpletest/tests/batch_test.callbacks.inc, line 29
Batch callbacks for the Batch API tests.

Code

function _batch_test_callback_2($start, $total, $sleep, &$context) {

  // Initialize context with progress information.
  if (!isset($context['sandbox']['current'])) {
    $context['sandbox']['current'] = $start;
    $context['sandbox']['count'] = 0;
  }

  // Process by groups of 5 (arbitrary value).
  $limit = 5;
  for ($i = 0; $i < $limit && $context['sandbox']['count'] < $total; $i++) {

    // No-op, but ensure the batch take a couple iterations.
    // Batch needs time to run for the test, so sleep a bit.
    usleep($sleep);

    // Track execution, and store some result for post-processing in the
    // 'finished' callback.
    $id = $context['sandbox']['current'] + $i;
    batch_test_stack("op 2 id {$id}");
    $context['results'][2][] = $id;

    // Update progress information.
    $context['sandbox']['count']++;
  }
  $context['sandbox']['current'] += $i;

  // Inform batch engine about progress.
  if ($context['sandbox']['count'] != $total) {
    $context['finished'] = $context['sandbox']['count'] / $total;
  }
}