bug22414.phpt 934 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. --TEST--
  2. Bug #22414 (passthru() does not read data correctly)
  3. --INI--
  4. output_handler=
  5. --FILE--
  6. <?php
  7. $php = getenv('TEST_PHP_EXECUTABLE');
  8. $tmpfile = tempnam(__DIR__, 'phpt');
  9. $args = ' -n ';
  10. /* Regular Data Test */
  11. passthru($php . $args . ' -r " echo \"HELLO\"; "');
  12. echo "\n";
  13. /* Binary Data Test */
  14. if (substr(PHP_OS, 0, 3) != 'WIN') {
  15. $cmd = $php . $args . ' -r \"readfile(@getenv(\'\\\'\'TEST_PHP_EXECUTABLE\'\\\'\')); \"';
  16. $cmd = $php . $args . ' -r \' passthru("'.$cmd.'"); \' > '.$tmpfile ;
  17. } else {
  18. $cmd = $php . $args . ' -r \"readfile(@getenv(\\\\\\"TEST_PHP_EXECUTABLE\\\\\\")); \"';
  19. $cmd = $php . $args . ' -r " passthru(\''.$cmd.'\');" > '.$tmpfile ;
  20. }
  21. exec($cmd);
  22. if (md5_file($php) == md5_file($tmpfile)) {
  23. echo "Works\n";
  24. } else {
  25. echo "Does not work\n";
  26. }
  27. @unlink($tmpfile);
  28. ?>
  29. --EXPECT--
  30. HELLO
  31. Works