dbmsoutput.phpt   [plain text]


--TEST--
PL/SQL: dbms_output
--SKIPIF--
<?php
$target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
require(dirname(__FILE__).'/skipif.inc');
?>
--FILE--
<?php

require(dirname(__FILE__).'/connect.inc');

// Initialization

$stmtarray = array(
    "create or replace procedure dbmsoutput_proc as
      begin
        dbms_output.put_line('Hello World!');
      end;",

    "create or replace type dorow as table of varchar2(4000)",

    "create or replace function mydofetch return dorow pipelined is
    line    varchar2(4000);
    status  integer;
    begin
      loop
        dbms_output.get_line(line, status);
        exit when status = 1;
        pipe row (line);
      end loop;
      return;
    end;"
);

oci8_test_sql_execute($c, $stmtarray);

// Run Test

// Turn DBMS_OUTPUT on
function setserveroutputon($c)
{
    $s = oci_parse($c, "begin dbms_output.enable(null); end;");
    oci_execute($s);
}

// Create some output
function createoutput($c, $prefix)
{
    $s = oci_parse($c, "call dbms_output.put_line(:bv1 || ' ' || :bv2 || ' Hello, world! Lots and lots and ... of text')");
    oci_bind_by_name($s, ":bv1", $i, -1, SQLT_INT);
    oci_bind_by_name($s, ":bv2", $prefix);
    for ($i = 0; $i < 100; ++$i) {
        oci_execute($s);
    }
}

// Call dbms_output.get_line()
// Returns an array of DBMS_OUTPUT lines, or false.
function getdbmsoutput_do($c)
{
    $s = oci_parse($c, "begin dbms_output.get_line(:ln, :st); end;");
    oci_bind_by_name($s, ":ln", $ln, 100);
    oci_bind_by_name($s, ":st", $st, -1, SQLT_INT);
    $res = false;
    while (($succ = oci_execute($s)) && !$st) {
        $res[] = $ln;  // append each line to the array
    }
    return $res;
}

function getdbmsoutput_do2($c)
{
	$orignumlines = $numlines = 100;
	$s = oci_parse($c, "begin dbms_output.get_lines(:lines, :numlines); end;");
	$r = oci_bind_by_name($s, ":numlines", $numlines);
	$res = array();
	while ($numlines >= $orignumlines) {
		oci_bind_array_by_name($s, ":lines", $lines,  $numlines, 255, SQLT_CHR);
		oci_execute($s);
		if ($numlines == 0) {
			break;
		}
		$res = array_merge($res, array_slice($lines, 0, $numlines));
		unset($lines);
	}
	return $res;
}

function getdbmsoutput_pl($c)
{
    $s = oci_parse($c, "select * from table(mydofetch())");
    oci_execute($s);
    $res = false;
    while ($row = oci_fetch_array($s, OCI_NUM)) {
        $res[] = $row[0];
    }
    return $res;
}

echo "Test 1\n";

setserveroutputon($c);   // Turn output buffering on

$s = oci_parse($c, 'call dbmsoutput_proc()');
oci_execute($s);
var_dump(getdbmsoutput_do($c));

echo "Test 2\n";

createoutput($c, 'test 2');
var_dump(getdbmsoutput_do($c));

echo "Test 3\n";

createoutput($c, 'test 3');
var_dump(getdbmsoutput_do2($c));

echo "Test 4\n";

createoutput($c, 'test 4');
var_dump(getdbmsoutput_pl($c));

// Clean up

$stmtarray = array(
	"drop procedure dbmsoutput_proc"
);

oci8_test_sql_execute($c, $stmtarray);

?>
===DONE===
<?php exit(0); ?>
--EXPECT--
Test 1
array(1) {
  [0]=>
  string(12) "Hello World!"
}
Test 2
array(100) {
  [0]=>
  string(52) "0 test 2 Hello, world! Lots and lots and ... of text"
  [1]=>
  string(52) "1 test 2 Hello, world! Lots and lots and ... of text"
  [2]=>
  string(52) "2 test 2 Hello, world! Lots and lots and ... of text"
  [3]=>
  string(52) "3 test 2 Hello, world! Lots and lots and ... of text"
  [4]=>
  string(52) "4 test 2 Hello, world! Lots and lots and ... of text"
  [5]=>
  string(52) "5 test 2 Hello, world! Lots and lots and ... of text"
  [6]=>
  string(52) "6 test 2 Hello, world! Lots and lots and ... of text"
  [7]=>
  string(52) "7 test 2 Hello, world! Lots and lots and ... of text"
  [8]=>
  string(52) "8 test 2 Hello, world! Lots and lots and ... of text"
  [9]=>
  string(52) "9 test 2 Hello, world! Lots and lots and ... of text"
  [10]=>
  string(53) "10 test 2 Hello, world! Lots and lots and ... of text"
  [11]=>
  string(53) "11 test 2 Hello, world! Lots and lots and ... of text"
  [12]=>
  string(53) "12 test 2 Hello, world! Lots and lots and ... of text"
  [13]=>
  string(53) "13 test 2 Hello, world! Lots and lots and ... of text"
  [14]=>
  string(53) "14 test 2 Hello, world! Lots and lots and ... of text"
  [15]=>
  string(53) "15 test 2 Hello, world! Lots and lots and ... of text"
  [16]=>
  string(53) "16 test 2 Hello, world! Lots and lots and ... of text"
  [17]=>
  string(53) "17 test 2 Hello, world! Lots and lots and ... of text"
  [18]=>
  string(53) "18 test 2 Hello, world! Lots and lots and ... of text"
  [19]=>
  string(53) "19 test 2 Hello, world! Lots and lots and ... of text"
  [20]=>
  string(53) "20 test 2 Hello, world! Lots and lots and ... of text"
  [21]=>
  string(53) "21 test 2 Hello, world! Lots and lots and ... of text"
  [22]=>
  string(53) "22 test 2 Hello, world! Lots and lots and ... of text"
  [23]=>
  string(53) "23 test 2 Hello, world! Lots and lots and ... of text"
  [24]=>
  string(53) "24 test 2 Hello, world! Lots and lots and ... of text"
  [25]=>
  string(53) "25 test 2 Hello, world! Lots and lots and ... of text"
  [26]=>
  string(53) "26 test 2 Hello, world! Lots and lots and ... of text"
  [27]=>
  string(53) "27 test 2 Hello, world! Lots and lots and ... of text"
  [28]=>
  string(53) "28 test 2 Hello, world! Lots and lots and ... of text"
  [29]=>
  string(53) "29 test 2 Hello, world! Lots and lots and ... of text"
  [30]=>
  string(53) "30 test 2 Hello, world! Lots and lots and ... of text"
  [31]=>
  string(53) "31 test 2 Hello, world! Lots and lots and ... of text"
  [32]=>
  string(53) "32 test 2 Hello, world! Lots and lots and ... of text"
  [33]=>
  string(53) "33 test 2 Hello, world! Lots and lots and ... of text"
  [34]=>
  string(53) "34 test 2 Hello, world! Lots and lots and ... of text"
  [35]=>
  string(53) "35 test 2 Hello, world! Lots and lots and ... of text"
  [36]=>
  string(53) "36 test 2 Hello, world! Lots and lots and ... of text"
  [37]=>
  string(53) "37 test 2 Hello, world! Lots and lots and ... of text"
  [38]=>
  string(53) "38 test 2 Hello, world! Lots and lots and ... of text"
  [39]=>
  string(53) "39 test 2 Hello, world! Lots and lots and ... of text"
  [40]=>
  string(53) "40 test 2 Hello, world! Lots and lots and ... of text"
  [41]=>
  string(53) "41 test 2 Hello, world! Lots and lots and ... of text"
  [42]=>
  string(53) "42 test 2 Hello, world! Lots and lots and ... of text"
  [43]=>
  string(53) "43 test 2 Hello, world! Lots and lots and ... of text"
  [44]=>
  string(53) "44 test 2 Hello, world! Lots and lots and ... of text"
  [45]=>
  string(53) "45 test 2 Hello, world! Lots and lots and ... of text"
  [46]=>
  string(53) "46 test 2 Hello, world! Lots and lots and ... of text"
  [47]=>
  string(53) "47 test 2 Hello, world! Lots and lots and ... of text"
  [48]=>
  string(53) "48 test 2 Hello, world! Lots and lots and ... of text"
  [49]=>
  string(53) "49 test 2 Hello, world! Lots and lots and ... of text"
  [50]=>
  string(53) "50 test 2 Hello, world! Lots and lots and ... of text"
  [51]=>
  string(53) "51 test 2 Hello, world! Lots and lots and ... of text"
  [52]=>
  string(53) "52 test 2 Hello, world! Lots and lots and ... of text"
  [53]=>
  string(53) "53 test 2 Hello, world! Lots and lots and ... of text"
  [54]=>
  string(53) "54 test 2 Hello, world! Lots and lots and ... of text"
  [55]=>
  string(53) "55 test 2 Hello, world! Lots and lots and ... of text"
  [56]=>
  string(53) "56 test 2 Hello, world! Lots and lots and ... of text"
  [57]=>
  string(53) "57 test 2 Hello, world! Lots and lots and ... of text"
  [58]=>
  string(53) "58 test 2 Hello, world! Lots and lots and ... of text"
  [59]=>
  string(53) "59 test 2 Hello, world! Lots and lots and ... of text"
  [60]=>
  string(53) "60 test 2 Hello, world! Lots and lots and ... of text"
  [61]=>
  string(53) "61 test 2 Hello, world! Lots and lots and ... of text"
  [62]=>
  string(53) "62 test 2 Hello, world! Lots and lots and ... of text"
  [63]=>
  string(53) "63 test 2 Hello, world! Lots and lots and ... of text"
  [64]=>
  string(53) "64 test 2 Hello, world! Lots and lots and ... of text"
  [65]=>
  string(53) "65 test 2 Hello, world! Lots and lots and ... of text"
  [66]=>
  string(53) "66 test 2 Hello, world! Lots and lots and ... of text"
  [67]=>
  string(53) "67 test 2 Hello, world! Lots and lots and ... of text"
  [68]=>
  string(53) "68 test 2 Hello, world! Lots and lots and ... of text"
  [69]=>
  string(53) "69 test 2 Hello, world! Lots and lots and ... of text"
  [70]=>
  string(53) "70 test 2 Hello, world! Lots and lots and ... of text"
  [71]=>
  string(53) "71 test 2 Hello, world! Lots and lots and ... of text"
  [72]=>
  string(53) "72 test 2 Hello, world! Lots and lots and ... of text"
  [73]=>
  string(53) "73 test 2 Hello, world! Lots and lots and ... of text"
  [74]=>
  string(53) "74 test 2 Hello, world! Lots and lots and ... of text"
  [75]=>
  string(53) "75 test 2 Hello, world! Lots and lots and ... of text"
  [76]=>
  string(53) "76 test 2 Hello, world! Lots and lots and ... of text"
  [77]=>
  string(53) "77 test 2 Hello, world! Lots and lots and ... of text"
  [78]=>
  string(53) "78 test 2 Hello, world! Lots and lots and ... of text"
  [79]=>
  string(53) "79 test 2 Hello, world! Lots and lots and ... of text"
  [80]=>
  string(53) "80 test 2 Hello, world! Lots and lots and ... of text"
  [81]=>
  string(53) "81 test 2 Hello, world! Lots and lots and ... of text"
  [82]=>
  string(53) "82 test 2 Hello, world! Lots and lots and ... of text"
  [83]=>
  string(53) "83 test 2 Hello, world! Lots and lots and ... of text"
  [84]=>
  string(53) "84 test 2 Hello, world! Lots and lots and ... of text"
  [85]=>
  string(53) "85 test 2 Hello, world! Lots and lots and ... of text"
  [86]=>
  string(53) "86 test 2 Hello, world! Lots and lots and ... of text"
  [87]=>
  string(53) "87 test 2 Hello, world! Lots and lots and ... of text"
  [88]=>
  string(53) "88 test 2 Hello, world! Lots and lots and ... of text"
  [89]=>
  string(53) "89 test 2 Hello, world! Lots and lots and ... of text"
  [90]=>
  string(53) "90 test 2 Hello, world! Lots and lots and ... of text"
  [91]=>
  string(53) "91 test 2 Hello, world! Lots and lots and ... of text"
  [92]=>
  string(53) "92 test 2 Hello, world! Lots and lots and ... of text"
  [93]=>
  string(53) "93 test 2 Hello, world! Lots and lots and ... of text"
  [94]=>
  string(53) "94 test 2 Hello, world! Lots and lots and ... of text"
  [95]=>
  string(53) "95 test 2 Hello, world! Lots and lots and ... of text"
  [96]=>
  string(53) "96 test 2 Hello, world! Lots and lots and ... of text"
  [97]=>
  string(53) "97 test 2 Hello, world! Lots and lots and ... of text"
  [98]=>
  string(53) "98 test 2 Hello, world! Lots and lots and ... of text"
  [99]=>
  string(53) "99 test 2 Hello, world! Lots and lots and ... of text"
}
Test 3
array(100) {
  [0]=>
  string(52) "0 test 3 Hello, world! Lots and lots and ... of text"
  [1]=>
  string(52) "1 test 3 Hello, world! Lots and lots and ... of text"
  [2]=>
  string(52) "2 test 3 Hello, world! Lots and lots and ... of text"
  [3]=>
  string(52) "3 test 3 Hello, world! Lots and lots and ... of text"
  [4]=>
  string(52) "4 test 3 Hello, world! Lots and lots and ... of text"
  [5]=>
  string(52) "5 test 3 Hello, world! Lots and lots and ... of text"
  [6]=>
  string(52) "6 test 3 Hello, world! Lots and lots and ... of text"
  [7]=>
  string(52) "7 test 3 Hello, world! Lots and lots and ... of text"
  [8]=>
  string(52) "8 test 3 Hello, world! Lots and lots and ... of text"
  [9]=>
  string(52) "9 test 3 Hello, world! Lots and lots and ... of text"
  [10]=>
  string(53) "10 test 3 Hello, world! Lots and lots and ... of text"
  [11]=>
  string(53) "11 test 3 Hello, world! Lots and lots and ... of text"
  [12]=>
  string(53) "12 test 3 Hello, world! Lots and lots and ... of text"
  [13]=>
  string(53) "13 test 3 Hello, world! Lots and lots and ... of text"
  [14]=>
  string(53) "14 test 3 Hello, world! Lots and lots and ... of text"
  [15]=>
  string(53) "15 test 3 Hello, world! Lots and lots and ... of text"
  [16]=>
  string(53) "16 test 3 Hello, world! Lots and lots and ... of text"
  [17]=>
  string(53) "17 test 3 Hello, world! Lots and lots and ... of text"
  [18]=>
  string(53) "18 test 3 Hello, world! Lots and lots and ... of text"
  [19]=>
  string(53) "19 test 3 Hello, world! Lots and lots and ... of text"
  [20]=>
  string(53) "20 test 3 Hello, world! Lots and lots and ... of text"
  [21]=>
  string(53) "21 test 3 Hello, world! Lots and lots and ... of text"
  [22]=>
  string(53) "22 test 3 Hello, world! Lots and lots and ... of text"
  [23]=>
  string(53) "23 test 3 Hello, world! Lots and lots and ... of text"
  [24]=>
  string(53) "24 test 3 Hello, world! Lots and lots and ... of text"
  [25]=>
  string(53) "25 test 3 Hello, world! Lots and lots and ... of text"
  [26]=>
  string(53) "26 test 3 Hello, world! Lots and lots and ... of text"
  [27]=>
  string(53) "27 test 3 Hello, world! Lots and lots and ... of text"
  [28]=>
  string(53) "28 test 3 Hello, world! Lots and lots and ... of text"
  [29]=>
  string(53) "29 test 3 Hello, world! Lots and lots and ... of text"
  [30]=>
  string(53) "30 test 3 Hello, world! Lots and lots and ... of text"
  [31]=>
  string(53) "31 test 3 Hello, world! Lots and lots and ... of text"
  [32]=>
  string(53) "32 test 3 Hello, world! Lots and lots and ... of text"
  [33]=>
  string(53) "33 test 3 Hello, world! Lots and lots and ... of text"
  [34]=>
  string(53) "34 test 3 Hello, world! Lots and lots and ... of text"
  [35]=>
  string(53) "35 test 3 Hello, world! Lots and lots and ... of text"
  [36]=>
  string(53) "36 test 3 Hello, world! Lots and lots and ... of text"
  [37]=>
  string(53) "37 test 3 Hello, world! Lots and lots and ... of text"
  [38]=>
  string(53) "38 test 3 Hello, world! Lots and lots and ... of text"
  [39]=>
  string(53) "39 test 3 Hello, world! Lots and lots and ... of text"
  [40]=>
  string(53) "40 test 3 Hello, world! Lots and lots and ... of text"
  [41]=>
  string(53) "41 test 3 Hello, world! Lots and lots and ... of text"
  [42]=>
  string(53) "42 test 3 Hello, world! Lots and lots and ... of text"
  [43]=>
  string(53) "43 test 3 Hello, world! Lots and lots and ... of text"
  [44]=>
  string(53) "44 test 3 Hello, world! Lots and lots and ... of text"
  [45]=>
  string(53) "45 test 3 Hello, world! Lots and lots and ... of text"
  [46]=>
  string(53) "46 test 3 Hello, world! Lots and lots and ... of text"
  [47]=>
  string(53) "47 test 3 Hello, world! Lots and lots and ... of text"
  [48]=>
  string(53) "48 test 3 Hello, world! Lots and lots and ... of text"
  [49]=>
  string(53) "49 test 3 Hello, world! Lots and lots and ... of text"
  [50]=>
  string(53) "50 test 3 Hello, world! Lots and lots and ... of text"
  [51]=>
  string(53) "51 test 3 Hello, world! Lots and lots and ... of text"
  [52]=>
  string(53) "52 test 3 Hello, world! Lots and lots and ... of text"
  [53]=>
  string(53) "53 test 3 Hello, world! Lots and lots and ... of text"
  [54]=>
  string(53) "54 test 3 Hello, world! Lots and lots and ... of text"
  [55]=>
  string(53) "55 test 3 Hello, world! Lots and lots and ... of text"
  [56]=>
  string(53) "56 test 3 Hello, world! Lots and lots and ... of text"
  [57]=>
  string(53) "57 test 3 Hello, world! Lots and lots and ... of text"
  [58]=>
  string(53) "58 test 3 Hello, world! Lots and lots and ... of text"
  [59]=>
  string(53) "59 test 3 Hello, world! Lots and lots and ... of text"
  [60]=>
  string(53) "60 test 3 Hello, world! Lots and lots and ... of text"
  [61]=>
  string(53) "61 test 3 Hello, world! Lots and lots and ... of text"
  [62]=>
  string(53) "62 test 3 Hello, world! Lots and lots and ... of text"
  [63]=>
  string(53) "63 test 3 Hello, world! Lots and lots and ... of text"
  [64]=>
  string(53) "64 test 3 Hello, world! Lots and lots and ... of text"
  [65]=>
  string(53) "65 test 3 Hello, world! Lots and lots and ... of text"
  [66]=>
  string(53) "66 test 3 Hello, world! Lots and lots and ... of text"
  [67]=>
  string(53) "67 test 3 Hello, world! Lots and lots and ... of text"
  [68]=>
  string(53) "68 test 3 Hello, world! Lots and lots and ... of text"
  [69]=>
  string(53) "69 test 3 Hello, world! Lots and lots and ... of text"
  [70]=>
  string(53) "70 test 3 Hello, world! Lots and lots and ... of text"
  [71]=>
  string(53) "71 test 3 Hello, world! Lots and lots and ... of text"
  [72]=>
  string(53) "72 test 3 Hello, world! Lots and lots and ... of text"
  [73]=>
  string(53) "73 test 3 Hello, world! Lots and lots and ... of text"
  [74]=>
  string(53) "74 test 3 Hello, world! Lots and lots and ... of text"
  [75]=>
  string(53) "75 test 3 Hello, world! Lots and lots and ... of text"
  [76]=>
  string(53) "76 test 3 Hello, world! Lots and lots and ... of text"
  [77]=>
  string(53) "77 test 3 Hello, world! Lots and lots and ... of text"
  [78]=>
  string(53) "78 test 3 Hello, world! Lots and lots and ... of text"
  [79]=>
  string(53) "79 test 3 Hello, world! Lots and lots and ... of text"
  [80]=>
  string(53) "80 test 3 Hello, world! Lots and lots and ... of text"
  [81]=>
  string(53) "81 test 3 Hello, world! Lots and lots and ... of text"
  [82]=>
  string(53) "82 test 3 Hello, world! Lots and lots and ... of text"
  [83]=>
  string(53) "83 test 3 Hello, world! Lots and lots and ... of text"
  [84]=>
  string(53) "84 test 3 Hello, world! Lots and lots and ... of text"
  [85]=>
  string(53) "85 test 3 Hello, world! Lots and lots and ... of text"
  [86]=>
  string(53) "86 test 3 Hello, world! Lots and lots and ... of text"
  [87]=>
  string(53) "87 test 3 Hello, world! Lots and lots and ... of text"
  [88]=>
  string(53) "88 test 3 Hello, world! Lots and lots and ... of text"
  [89]=>
  string(53) "89 test 3 Hello, world! Lots and lots and ... of text"
  [90]=>
  string(53) "90 test 3 Hello, world! Lots and lots and ... of text"
  [91]=>
  string(53) "91 test 3 Hello, world! Lots and lots and ... of text"
  [92]=>
  string(53) "92 test 3 Hello, world! Lots and lots and ... of text"
  [93]=>
  string(53) "93 test 3 Hello, world! Lots and lots and ... of text"
  [94]=>
  string(53) "94 test 3 Hello, world! Lots and lots and ... of text"
  [95]=>
  string(53) "95 test 3 Hello, world! Lots and lots and ... of text"
  [96]=>
  string(53) "96 test 3 Hello, world! Lots and lots and ... of text"
  [97]=>
  string(53) "97 test 3 Hello, world! Lots and lots and ... of text"
  [98]=>
  string(53) "98 test 3 Hello, world! Lots and lots and ... of text"
  [99]=>
  string(53) "99 test 3 Hello, world! Lots and lots and ... of text"
}
Test 4
array(100) {
  [0]=>
  string(52) "0 test 4 Hello, world! Lots and lots and ... of text"
  [1]=>
  string(52) "1 test 4 Hello, world! Lots and lots and ... of text"
  [2]=>
  string(52) "2 test 4 Hello, world! Lots and lots and ... of text"
  [3]=>
  string(52) "3 test 4 Hello, world! Lots and lots and ... of text"
  [4]=>
  string(52) "4 test 4 Hello, world! Lots and lots and ... of text"
  [5]=>
  string(52) "5 test 4 Hello, world! Lots and lots and ... of text"
  [6]=>
  string(52) "6 test 4 Hello, world! Lots and lots and ... of text"
  [7]=>
  string(52) "7 test 4 Hello, world! Lots and lots and ... of text"
  [8]=>
  string(52) "8 test 4 Hello, world! Lots and lots and ... of text"
  [9]=>
  string(52) "9 test 4 Hello, world! Lots and lots and ... of text"
  [10]=>
  string(53) "10 test 4 Hello, world! Lots and lots and ... of text"
  [11]=>
  string(53) "11 test 4 Hello, world! Lots and lots and ... of text"
  [12]=>
  string(53) "12 test 4 Hello, world! Lots and lots and ... of text"
  [13]=>
  string(53) "13 test 4 Hello, world! Lots and lots and ... of text"
  [14]=>
  string(53) "14 test 4 Hello, world! Lots and lots and ... of text"
  [15]=>
  string(53) "15 test 4 Hello, world! Lots and lots and ... of text"
  [16]=>
  string(53) "16 test 4 Hello, world! Lots and lots and ... of text"
  [17]=>
  string(53) "17 test 4 Hello, world! Lots and lots and ... of text"
  [18]=>
  string(53) "18 test 4 Hello, world! Lots and lots and ... of text"
  [19]=>
  string(53) "19 test 4 Hello, world! Lots and lots and ... of text"
  [20]=>
  string(53) "20 test 4 Hello, world! Lots and lots and ... of text"
  [21]=>
  string(53) "21 test 4 Hello, world! Lots and lots and ... of text"
  [22]=>
  string(53) "22 test 4 Hello, world! Lots and lots and ... of text"
  [23]=>
  string(53) "23 test 4 Hello, world! Lots and lots and ... of text"
  [24]=>
  string(53) "24 test 4 Hello, world! Lots and lots and ... of text"
  [25]=>
  string(53) "25 test 4 Hello, world! Lots and lots and ... of text"
  [26]=>
  string(53) "26 test 4 Hello, world! Lots and lots and ... of text"
  [27]=>
  string(53) "27 test 4 Hello, world! Lots and lots and ... of text"
  [28]=>
  string(53) "28 test 4 Hello, world! Lots and lots and ... of text"
  [29]=>
  string(53) "29 test 4 Hello, world! Lots and lots and ... of text"
  [30]=>
  string(53) "30 test 4 Hello, world! Lots and lots and ... of text"
  [31]=>
  string(53) "31 test 4 Hello, world! Lots and lots and ... of text"
  [32]=>
  string(53) "32 test 4 Hello, world! Lots and lots and ... of text"
  [33]=>
  string(53) "33 test 4 Hello, world! Lots and lots and ... of text"
  [34]=>
  string(53) "34 test 4 Hello, world! Lots and lots and ... of text"
  [35]=>
  string(53) "35 test 4 Hello, world! Lots and lots and ... of text"
  [36]=>
  string(53) "36 test 4 Hello, world! Lots and lots and ... of text"
  [37]=>
  string(53) "37 test 4 Hello, world! Lots and lots and ... of text"
  [38]=>
  string(53) "38 test 4 Hello, world! Lots and lots and ... of text"
  [39]=>
  string(53) "39 test 4 Hello, world! Lots and lots and ... of text"
  [40]=>
  string(53) "40 test 4 Hello, world! Lots and lots and ... of text"
  [41]=>
  string(53) "41 test 4 Hello, world! Lots and lots and ... of text"
  [42]=>
  string(53) "42 test 4 Hello, world! Lots and lots and ... of text"
  [43]=>
  string(53) "43 test 4 Hello, world! Lots and lots and ... of text"
  [44]=>
  string(53) "44 test 4 Hello, world! Lots and lots and ... of text"
  [45]=>
  string(53) "45 test 4 Hello, world! Lots and lots and ... of text"
  [46]=>
  string(53) "46 test 4 Hello, world! Lots and lots and ... of text"
  [47]=>
  string(53) "47 test 4 Hello, world! Lots and lots and ... of text"
  [48]=>
  string(53) "48 test 4 Hello, world! Lots and lots and ... of text"
  [49]=>
  string(53) "49 test 4 Hello, world! Lots and lots and ... of text"
  [50]=>
  string(53) "50 test 4 Hello, world! Lots and lots and ... of text"
  [51]=>
  string(53) "51 test 4 Hello, world! Lots and lots and ... of text"
  [52]=>
  string(53) "52 test 4 Hello, world! Lots and lots and ... of text"
  [53]=>
  string(53) "53 test 4 Hello, world! Lots and lots and ... of text"
  [54]=>
  string(53) "54 test 4 Hello, world! Lots and lots and ... of text"
  [55]=>
  string(53) "55 test 4 Hello, world! Lots and lots and ... of text"
  [56]=>
  string(53) "56 test 4 Hello, world! Lots and lots and ... of text"
  [57]=>
  string(53) "57 test 4 Hello, world! Lots and lots and ... of text"
  [58]=>
  string(53) "58 test 4 Hello, world! Lots and lots and ... of text"
  [59]=>
  string(53) "59 test 4 Hello, world! Lots and lots and ... of text"
  [60]=>
  string(53) "60 test 4 Hello, world! Lots and lots and ... of text"
  [61]=>
  string(53) "61 test 4 Hello, world! Lots and lots and ... of text"
  [62]=>
  string(53) "62 test 4 Hello, world! Lots and lots and ... of text"
  [63]=>
  string(53) "63 test 4 Hello, world! Lots and lots and ... of text"
  [64]=>
  string(53) "64 test 4 Hello, world! Lots and lots and ... of text"
  [65]=>
  string(53) "65 test 4 Hello, world! Lots and lots and ... of text"
  [66]=>
  string(53) "66 test 4 Hello, world! Lots and lots and ... of text"
  [67]=>
  string(53) "67 test 4 Hello, world! Lots and lots and ... of text"
  [68]=>
  string(53) "68 test 4 Hello, world! Lots and lots and ... of text"
  [69]=>
  string(53) "69 test 4 Hello, world! Lots and lots and ... of text"
  [70]=>
  string(53) "70 test 4 Hello, world! Lots and lots and ... of text"
  [71]=>
  string(53) "71 test 4 Hello, world! Lots and lots and ... of text"
  [72]=>
  string(53) "72 test 4 Hello, world! Lots and lots and ... of text"
  [73]=>
  string(53) "73 test 4 Hello, world! Lots and lots and ... of text"
  [74]=>
  string(53) "74 test 4 Hello, world! Lots and lots and ... of text"
  [75]=>
  string(53) "75 test 4 Hello, world! Lots and lots and ... of text"
  [76]=>
  string(53) "76 test 4 Hello, world! Lots and lots and ... of text"
  [77]=>
  string(53) "77 test 4 Hello, world! Lots and lots and ... of text"
  [78]=>
  string(53) "78 test 4 Hello, world! Lots and lots and ... of text"
  [79]=>
  string(53) "79 test 4 Hello, world! Lots and lots and ... of text"
  [80]=>
  string(53) "80 test 4 Hello, world! Lots and lots and ... of text"
  [81]=>
  string(53) "81 test 4 Hello, world! Lots and lots and ... of text"
  [82]=>
  string(53) "82 test 4 Hello, world! Lots and lots and ... of text"
  [83]=>
  string(53) "83 test 4 Hello, world! Lots and lots and ... of text"
  [84]=>
  string(53) "84 test 4 Hello, world! Lots and lots and ... of text"
  [85]=>
  string(53) "85 test 4 Hello, world! Lots and lots and ... of text"
  [86]=>
  string(53) "86 test 4 Hello, world! Lots and lots and ... of text"
  [87]=>
  string(53) "87 test 4 Hello, world! Lots and lots and ... of text"
  [88]=>
  string(53) "88 test 4 Hello, world! Lots and lots and ... of text"
  [89]=>
  string(53) "89 test 4 Hello, world! Lots and lots and ... of text"
  [90]=>
  string(53) "90 test 4 Hello, world! Lots and lots and ... of text"
  [91]=>
  string(53) "91 test 4 Hello, world! Lots and lots and ... of text"
  [92]=>
  string(53) "92 test 4 Hello, world! Lots and lots and ... of text"
  [93]=>
  string(53) "93 test 4 Hello, world! Lots and lots and ... of text"
  [94]=>
  string(53) "94 test 4 Hello, world! Lots and lots and ... of text"
  [95]=>
  string(53) "95 test 4 Hello, world! Lots and lots and ... of text"
  [96]=>
  string(53) "96 test 4 Hello, world! Lots and lots and ... of text"
  [97]=>
  string(53) "97 test 4 Hello, world! Lots and lots and ... of text"
  [98]=>
  string(53) "98 test 4 Hello, world! Lots and lots and ... of text"
  [99]=>
  string(53) "99 test 4 Hello, world! Lots and lots and ... of text"
}
===DONE===