File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / output / ob_start_basic_004.phpt
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:34 2012 UTC (12 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, HEAD
php 5.4.3+patches

    1: --TEST--
    2: ob_start() chunk_size: confirm buffer is flushed after any output call that causes its length to equal or exceed chunk_size. 
    3: --FILE--
    4: <?php
    5: /* 
    6:  * proto bool ob_start([ string|array user_function [, int chunk_size [, bool erase]]])
    7:  * Function is implemented in main/output.c
    8: */ 
    9: // In HEAD, $chunk_size value of 1 should not have any special behaviour (http://marc.info/?l=php-internals&m=123476465621346&w=2).
   10: function callback($string) {
   11: 	global $callback_invocations;
   12: 	$callback_invocations++;
   13: 	$len = strlen($string);
   14: 	return "f[call:$callback_invocations; len:$len]$string\n";
   15: }
   16: 
   17: for ($cs=-1; $cs<10; $cs++) {
   18:   echo "\n----( chunk_size: $cs, output append size: 1 )----\n";
   19:   $callback_invocations=0;
   20:   ob_start('callback', $cs);
   21:   echo '1'; echo '2'; echo '3'; echo '4'; echo '5'; echo '6'; echo '7'; echo '8';
   22:   ob_end_flush();
   23: }
   24: 
   25: for ($cs=-1; $cs<10; $cs++) {
   26:   echo "\n----( chunk_size: $cs, output append size: 4 )----\n";
   27:   $callback_invocations=0;
   28:   ob_start('callback', $cs);
   29:   echo '1234'; echo '5678';
   30:   ob_end_flush();
   31: }
   32: 
   33: ?>
   34: --EXPECTF--
   35: 
   36: ----( chunk_size: -1, output append size: 1 )----
   37: f[call:1; len:8]12345678
   38: 
   39: ----( chunk_size: 0, output append size: 1 )----
   40: f[call:1; len:8]12345678
   41: 
   42: ----( chunk_size: 1, output append size: 1 )----
   43: f[call:1; len:1]1
   44: f[call:2; len:1]2
   45: f[call:3; len:1]3
   46: f[call:4; len:1]4
   47: f[call:5; len:1]5
   48: f[call:6; len:1]6
   49: f[call:7; len:1]7
   50: f[call:8; len:1]8
   51: f[call:9; len:0]
   52: 
   53: ----( chunk_size: 2, output append size: 1 )----
   54: f[call:1; len:2]12
   55: f[call:2; len:2]34
   56: f[call:3; len:2]56
   57: f[call:4; len:2]78
   58: f[call:5; len:0]
   59: 
   60: ----( chunk_size: 3, output append size: 1 )----
   61: f[call:1; len:3]123
   62: f[call:2; len:3]456
   63: f[call:3; len:2]78
   64: 
   65: ----( chunk_size: 4, output append size: 1 )----
   66: f[call:1; len:4]1234
   67: f[call:2; len:4]5678
   68: f[call:3; len:0]
   69: 
   70: ----( chunk_size: 5, output append size: 1 )----
   71: f[call:1; len:5]12345
   72: f[call:2; len:3]678
   73: 
   74: ----( chunk_size: 6, output append size: 1 )----
   75: f[call:1; len:6]123456
   76: f[call:2; len:2]78
   77: 
   78: ----( chunk_size: 7, output append size: 1 )----
   79: f[call:1; len:7]1234567
   80: f[call:2; len:1]8
   81: 
   82: ----( chunk_size: 8, output append size: 1 )----
   83: f[call:1; len:8]12345678
   84: f[call:2; len:0]
   85: 
   86: ----( chunk_size: 9, output append size: 1 )----
   87: f[call:1; len:8]12345678
   88: 
   89: ----( chunk_size: -1, output append size: 4 )----
   90: f[call:1; len:8]12345678
   91: 
   92: ----( chunk_size: 0, output append size: 4 )----
   93: f[call:1; len:8]12345678
   94: 
   95: ----( chunk_size: 1, output append size: 4 )----
   96: f[call:1; len:4]1234
   97: f[call:2; len:4]5678
   98: f[call:3; len:0]
   99: 
  100: ----( chunk_size: 2, output append size: 4 )----
  101: f[call:1; len:4]1234
  102: f[call:2; len:4]5678
  103: f[call:3; len:0]
  104: 
  105: ----( chunk_size: 3, output append size: 4 )----
  106: f[call:1; len:4]1234
  107: f[call:2; len:4]5678
  108: f[call:3; len:0]
  109: 
  110: ----( chunk_size: 4, output append size: 4 )----
  111: f[call:1; len:4]1234
  112: f[call:2; len:4]5678
  113: f[call:3; len:0]
  114: 
  115: ----( chunk_size: 5, output append size: 4 )----
  116: f[call:1; len:8]12345678
  117: f[call:2; len:0]
  118: 
  119: ----( chunk_size: 6, output append size: 4 )----
  120: f[call:1; len:8]12345678
  121: f[call:2; len:0]
  122: 
  123: ----( chunk_size: 7, output append size: 4 )----
  124: f[call:1; len:8]12345678
  125: f[call:2; len:0]
  126: 
  127: ----( chunk_size: 8, output append size: 4 )----
  128: f[call:1; len:8]12345678
  129: f[call:2; len:0]
  130: 
  131: ----( chunk_size: 9, output append size: 4 )----
  132: f[call:1; len:8]12345678

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>