mirror of
https://github.com/php/php-src.git
synced 2026-03-25 00:32:23 +01:00
fix tests after Tony's commit and add a test for the bug he fixed
This commit is contained in:
@@ -53,34 +53,34 @@ bool(false)
|
||||
Warning: ftp_exec(): Command not implemented (5). in %s005.php on line 15
|
||||
bool(false)
|
||||
|
||||
Warning: ftp_fget(): Command not implemented (6). in %s005.php on line 16
|
||||
Warning: ftp_fget(): Mode must be FTP_ASCII or FTP_BINARY in %s005.php on line 16
|
||||
bool(false)
|
||||
|
||||
Warning: ftp_fput(): Command not implemented (7). in %s005.php on line 17
|
||||
Warning: ftp_fput(): Mode must be FTP_ASCII or FTP_BINARY in %s005.php on line 17
|
||||
bool(false)
|
||||
|
||||
Warning: ftp_get(): Command not implemented (8). in %s005.php on line 18
|
||||
Warning: ftp_get(): Mode must be FTP_ASCII or FTP_BINARY in %s005.php on line 18
|
||||
bool(false)
|
||||
int(-1)
|
||||
|
||||
Warning: ftp_mkdir(): Command not implemented (10). in %s005.php on line 20
|
||||
Warning: ftp_mkdir(): Command not implemented (7). in %s005.php on line 20
|
||||
bool(false)
|
||||
|
||||
Warning: ftp_nb_continue(): no nbronous transfer to continue. in %s005.php on line 21
|
||||
int(0)
|
||||
|
||||
Warning: ftp_nb_fget(): Command not implemented (11). in %s005.php on line 22
|
||||
int(0)
|
||||
|
||||
Warning: ftp_nb_fput(): Command not implemented (12). in %s005.php on line 23
|
||||
int(0)
|
||||
|
||||
Warning: ftp_systype(): Command not implemented (13). in %s005.php on line 24
|
||||
Warning: ftp_nb_fget(): Mode must be FTP_ASCII or FTP_BINARY in %s005.php on line 22
|
||||
bool(false)
|
||||
|
||||
Warning: ftp_pwd(): Command not implemented (14). in %s005.php on line 25
|
||||
Warning: ftp_nb_fput(): Mode must be FTP_ASCII or FTP_BINARY in %s005.php on line 23
|
||||
bool(false)
|
||||
|
||||
Warning: ftp_systype(): Command not implemented (8). in %s005.php on line 24
|
||||
bool(false)
|
||||
|
||||
Warning: ftp_pwd(): Command not implemented (9). in %s005.php on line 25
|
||||
bool(false)
|
||||
int(-1)
|
||||
|
||||
Warning: ftp_rmdir(): Command not implemented (16). in %s005.php on line 27
|
||||
Warning: ftp_rmdir(): Command not implemented (11). in %s005.php on line 27
|
||||
bool(false)
|
||||
|
||||
34
ext/ftp/tests/bug39583-2.phpt
Normal file
34
ext/ftp/tests/bug39583-2.phpt
Normal file
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Bug #39583: FTP always transfers in binary mode
|
||||
--SKIPIF--
|
||||
<?php
|
||||
require 'skipif.inc';
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
require 'server.inc';
|
||||
|
||||
$ftp = ftp_connect('127.0.0.1', $port);
|
||||
if (!$ftp) die("Couldn't connect to the server");
|
||||
|
||||
var_dump(ftp_login($ftp, 'user', 'pass'));
|
||||
|
||||
$source_file = __FILE__;
|
||||
$destination_file = basename(__FILE__);
|
||||
|
||||
// upload the file
|
||||
$upload = ftp_put($ftp, $destination_file, $source_file, FTP_BINARY);
|
||||
|
||||
// check upload status
|
||||
if (!$upload) {
|
||||
echo "FTP upload has failed!";
|
||||
} else {
|
||||
echo "Uploaded $source_file as $destination_file";
|
||||
}
|
||||
|
||||
// close the FTP stream
|
||||
ftp_close($ftp);
|
||||
?>
|
||||
--EXPECTF--
|
||||
bool(true)
|
||||
Uploaded %sbug39583-2.php as bug39583-2.php
|
||||
34
ext/ftp/tests/bug39583.phpt
Normal file
34
ext/ftp/tests/bug39583.phpt
Normal file
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Bug #39583: FTP always transfers in binary mode
|
||||
--SKIPIF--
|
||||
<?php
|
||||
require 'skipif.inc';
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
require 'server.inc';
|
||||
|
||||
$ftp = ftp_connect('127.0.0.1', $port);
|
||||
if (!$ftp) die("Couldn't connect to the server");
|
||||
|
||||
var_dump(ftp_login($ftp, 'user', 'pass'));
|
||||
|
||||
$source_file = __FILE__;
|
||||
$destination_file = basename(__FILE__);
|
||||
|
||||
// upload the file
|
||||
$upload = ftp_put($ftp, $destination_file, $source_file, FTP_ASCII);
|
||||
|
||||
// check upload status
|
||||
if (!$upload) {
|
||||
echo "FTP upload has failed!";
|
||||
} else {
|
||||
echo "Uploaded $source_file as $destination_file";
|
||||
}
|
||||
|
||||
// close the FTP stream
|
||||
ftp_close($ftp);
|
||||
?>
|
||||
--EXPECTF--
|
||||
bool(true)
|
||||
Uploaded %sbug39583.php as bug39583.php
|
||||
@@ -16,6 +16,6 @@ var_dump(ftp_login($ftp, 'anonymous', 'IEUser@'));
|
||||
var_dump(ftp_mkdir($ftp, 'CVS'));
|
||||
|
||||
?>
|
||||
--EXPECTREGEX--
|
||||
bool\(true\)
|
||||
string\(\d+\) ".+[\/\\]CVS"
|
||||
--EXPECT--
|
||||
bool(true)
|
||||
string(20) "/path/to/ftproot/CVS"
|
||||
|
||||
@@ -157,9 +157,46 @@ while($buf = fread($s, 4098)) {
|
||||
fputs($s, "215 UNIX Type: L8.\r\n");
|
||||
}
|
||||
|
||||
} elseif ($buf === "TYPE A\r\n") {
|
||||
$ascii = true;
|
||||
fputs($s, "200 OK\r\n");
|
||||
|
||||
} elseif ($buf === "TYPE I\r\n") {
|
||||
$ascii = false;
|
||||
fputs($s, "200 OK\r\n");
|
||||
|
||||
} elseif ($buf === "QUIT\r\n") {
|
||||
break;
|
||||
|
||||
} elseif (preg_match("~^PORT (\d+),(\d+),(\d+),(\d+),(\d+),(\d+)\r\n$~", $buf, $m)) {
|
||||
$host = "$m[1].$m[2].$m[3].$m[4]";
|
||||
$port = ((int)$m[5] << 8) + (int)$m[6];
|
||||
fputs($s, "200 OK.\r\n");
|
||||
|
||||
} elseif (preg_match("~^STOR ([\w/.-]+)\r\n$~", $buf, $m)) {
|
||||
fputs($s, "150 File status okay; about to open data connection\r\n");
|
||||
|
||||
if (!$fs = stream_socket_client("tcp://$host:$port")) {
|
||||
fputs($s, "425 Can't open data connection\r\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
$data = stream_get_contents($fs);
|
||||
$orig = file_get_contents(dirname(__FILE__).'/'.$m[1]);
|
||||
|
||||
if (isset($ascii) && !$ascii && $orig === $data) {
|
||||
fputs($s, "226 Closing data Connection.\r\n");
|
||||
|
||||
} elseif (!empty($ascii) && $data === strtr($orig, array("\r\n" => "\n", "\r" => "\n", "\n" => "\r\n"))) {
|
||||
fputs($s, "226 Closing data Connection.\r\n");
|
||||
|
||||
} else {
|
||||
var_dump($data);
|
||||
var_dump($orig);
|
||||
fputs($s, "552 Requested file action aborted.\r\n");
|
||||
}
|
||||
fclose($fs);
|
||||
|
||||
} elseif (preg_match("~^CWD ([A-Za-z./]+)\r\n$~", $buf, $m)) {
|
||||
change_dir($m[1]);
|
||||
fputs($s, "250 CWD command successful.\r\n");
|
||||
@@ -168,7 +205,7 @@ while($buf = fread($s, 4098)) {
|
||||
if (isset($bug7216)) {
|
||||
fputs($s, "257 OK.\r\n");
|
||||
} else {
|
||||
fputs($s, '257 "'.realpath($m[1])."\" created.\r\n");
|
||||
fputs($s, "257 \"/path/to/ftproot$cwd$m[1]\" created.\r\n");
|
||||
}
|
||||
|
||||
} elseif (preg_match('/^USER /', $buf)) {
|
||||
|
||||
Reference in New Issue
Block a user