--TEST--
Test readfile() function: usage variation - include path
--FILE--
<?php
/* Prototype: int readfile ( string $filename [, bool $use_include_path [, resource $context]] );
   Description: Outputs a file
*/
/* test readfile() by providing an include path, second argument */

// include file.inc 
require("file.inc");

$file_path dirname(__FILE__);
$dirname "$file_path/readfile_variation3";

echo 
"*** Testing readfile(): checking second argument, include path ***\n";
// temp dir created
mkdir($dirname);
// temp file name used here
$filename "$dirname/readfile_variation3.tmp";
// create file
$fp fopen($filename"w");
fill_file($fp"text_with_new_line"50);
fclose($fp);

// including $dirname in 'include_path'
ini_set('include_path',$dirname);
// 'include_path' set to true
$count readfile("readfile_variation3.tmp"true);
echo 
"\n";
var_dump($count);
// use the context argument with include path
echo "*** Testing readfile(): checking second argument, include path with context specified ***\n";
$context stream_context_create();
$count readfile("readfile_variation3.tmp"true$context);
echo 
"\n";
var_dump($count);

echo 
"Done\n";
?>
--CLEAN--
<?php
unlink
(dirname(__FILE__)."/readfile_variation3/readfile_variation3.tmp");
rmdir(dirname(__FILE__)."/readfile_variation3");
?>
--EXPECT--
*** Testing readfile(): checking second argument, include path ***
line
line of text
line
line of text
line
line of t
int(50)
*** Testing readfile(): checking second argument, include path with context specified ***
line
line of text
line
line of text
line
line of t
int(50)
Done
y' => array(),
      'int indexed array' => $index_array,
      'associative array' => $assoc_array,
      'nested arrays' => array('foo', $index_array, $assoc_array),

      // null data
      'uppercase NULL' => NULL,
      'lowercase null' => null,

      // boolean data
      'lowercase true' => true,
      'lowercase false' =>false,
      'uppercase TRUE' =>TRUE,
      'uppercase FALSE' =>FALSE,

      // empty data
      'empty string DQ' => "",
      'empty string SQ' => '',

      // string data
      'string DQ' => "string",
      'string SQ' => 'string',
      'mixed case string' => "sTrInG",
      'heredoc' => $heredoc,

      // object data
      'instance of classWithToString' => new classWithToString(),
      'instance of classWithoutToString' => new classWithoutToString(),

      // undefined data
      'undefined var' => @$undefined_var,

      // unset data
      'unset var' => @$unset_var,
);

// loop through each element of the array for use_include_path

foreach($inputs as $key =>$value) {
      echo "\n--$key--\n";
      $res = readfile($filename, $value);
      if ($res == false) {
         echo "File not read\n";
      }
      else {
         echo "\n";
      }
};

unlink($filename);

?>
===DONE===
--EXPECTF--
*** Testing readfile() : usage variation ***

--int 0--
testing readfile

--int 1--
testing readfile

--int 12345--
testing readfile

--int -12345--
testing readfile

--float 10.5--
testing readfile

--float -10.5--
testing readfile

--float 12.3456789000e10--
testing readfile

--float -12.3456789000e10--
testing readfile

--float .5--
testing readfile

--empty array--
Error: 2 - readfile() expects parameter 2 to be boolean, array given, %s(%d)
File not read

--int indexed array--
Error: 2 - readfile() expects parameter 2 to be boolean, array given, %s(%d)
File not read

--associative array--
Error: 2 - readfile() expects parameter 2 to be boolean, array given, %s(%d)
File not read

--nested arrays--
Error: 2 - readfile() expects parameter 2 to be boolean, array given, %s(%d)
File not read

--uppercase NULL--
testing readfile

--lowercase null--
testing readfile

--lowercase true--
testing readfile

--lowercase false--
testing readfile

--uppercase TRUE--
testing readfile

--uppercase FALSE--
testing readfile

--empty string DQ--
testing readfile

--empty string SQ--
testing readfile

--string DQ--
testing readfile

--string SQ--
testing readfile

--mixed case string--
testing readfile

--heredoc--
testing readfile

--instance of classWithToString--
Error: 2 - readfile() expects parameter 2 to be boolean, object given, %s(%d)
File not read

--instance of classWithoutToString--
Error: 2 - readfile() expects parameter 2 to be boolean, object given, %s(%d)
File not read

--undefined var--
testing readfile

--unset var--
testing readfile
===DONE===