PHP  
 PHP_HEAD
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

Test Failure Report for ext/curl/tests/bug48207.phpt ('Test curl_setopt() CURLOPT_FILE readonly file handle')

Script

1: <?php
2:
/*
3:  * Description       : Adds a file which stores the received data from curl_exec();
4:  * Source code       : ext/curl/multi.c
5:  * Test documentation: http://wiki.php.net/qa/temp/ext/curl
6:  */
7:
8: // Figure out what handler to use
9:
include 'server.inc';
10:
$host curl_cli_server_start();
11: if(!empty(
$host)) {
12:
13:     
// Use the set Environment variable
14:     
$url "$host/get.inc?test=1";
15:
16: } else {
17:
18:     
// Create a temporary file for the test
19:     
$tempname tempnam(sys_get_temp_dir(), 'CURL_HANDLE');
20:     
$url 'file://'$tempname;
21:
22:     
// add the test data to the file
23:     
file_put_contents($tempname"Hello World!\nHello World!");
24: }
25:
26:
27:
$tempfile    tempnam(sys_get_temp_dir(), 'CURL_FILE_HANDLE');
28:
29:
$ch curl_init($url);
30:
$fp fopen($tempfile"r"); // Opening 'fubar' with the incorrect readonly flag
31:
curl_setopt($chCURLOPT_FILE$fp);
32:
curl_exec($ch);
33:
curl_close($ch);
34:
is_file($tempfile) and @unlink($tempfile);
35: isset(
$tempname) and is_file($tempname) and @unlink($tempname);
36:
?>
37:

Expected

Warning: curl_setopt(): the provided file handle is not writable in %s on line %d
Hello World!
Hello World!

Output

Warning: curl_setopt(): the provided file handle is not writable in /var/php_gcov/PHP_HEAD/ext/curl/tests/bug48207.php on line 31
<?php
  $test = isset($_GET['test']) ? $_GET['test'] : null;
  switch($test) {
    case 'post':
      var_dump($_POST);
      break;
    case 'getpost':
      var_dump($_GET);
      var_dump($_POST);
      break;
    case 'referer':
      echo $_SERVER['HTTP_REFERER'];
      break;
    case 'useragent':
      echo $_SERVER['HTTP_USER_AGENT'];
      break;
    case 'httpversion':
      echo $_SERVER['SERVER_PROTOCOL'];
      break;
    case 'cookie':
      echo $_COOKIE['foo'];
      break;
    case 'encoding':
      echo $_SERVER['HTTP_ACCEPT_ENCODING'];
      break;
    case 'contenttype':
      header('Content-Type: text/plain;charset=utf-8');
      break;
    case 'file':
      if (isset($_FILES['file'])) {
          echo $_FILES['file']['name'] . '|' . $_FILES['file']['type'];
      }
      break;
    case 'method':
      echo $_SERVER['REQUEST_METHOD'];
      break;
    default:
      echo "Hello World!\n";
      echo "Hello World!";
      break;
  }
?>

Diff

002+ <?php
003+   $test = isset($_GET['test']) ? $_GET['test'] : null;
002- Hello World!
003- Hello World!
004+   switch($test) {
005+     case 'post':
006+       var_dump($_POST);
007+       break;
008+     case 'getpost':
009+       var_dump($_GET);
010+       var_dump($_POST);
011+       break;
012+     case 'referer':
013+       echo $_SERVER['HTTP_REFERER'];
014+       break;
015+     case 'useragent':
016+       echo $_SERVER['HTTP_USER_AGENT'];
017+       break;
018+     case 'httpversion':
019+       echo $_SERVER['SERVER_PROTOCOL'];
020+       break;
021+     case 'cookie':
022+       echo $_COOKIE['foo'];
023+       break;
024+     case 'encoding':
025+       echo $_SERVER['HTTP_ACCEPT_ENCODING'];
026+       break;
027+     case 'contenttype':
028+       header('Content-Type: text/plain;charset=utf-8');
029+       break;
030+     case 'file':
031+       if (isset($_FILES['file'])) {
032+           echo $_FILES['file']['name'] . '|' . $_FILES['file']['type'];
033+       }
034+       break;
035+     case 'method':
036+       echo $_SERVER['REQUEST_METHOD'];
037+       break;
038+     default:
039+       echo "Hello World!\n";
040+       echo "Hello World!";
041+       break;
042+   }
043+ ?>

 

Generated at Mon, 06 May 2019 17:58:35 +0000 (50 days ago)

Copyright © 2005-2019 The PHP Group
All rights reserved.