curl/tests/data/test1086
Dan Fandrich ad3c83599e tests: improve SLOWDOWN test reliability by reducing sent data
These tests are run in SLOWDOWN mode which adds a 10 msec delay after
each character output, which means it takes at least 1.6 seconds (and
320 kernel calls) just to get through the long welcome banner. On an
overloaded system, this can end up taking much more than 1.6 seconds,
and even more than the 7 or 16 second curl timeout that the tests rely
on, causing them to fail. Reducing the size of the welcome banner drops
the total number of characters sent before the transfer starts by more
than half, which reduces the opportunity for test-breaking slowdowns by
the same amount.

Ref: #11328
2023-09-13 11:26:07 -07:00

114 lines
4.4 KiB
Plaintext

<testcase>
<info>
<keywords>
FTP
EPSV
RETR
timeout
FAILURE
SLOWDOWN
flaky
timing-dependent
</keywords>
</info>
# Server-side
<reply>
# Overload some standard FTP responses to make them shorter and faster
# to avoid wasting time waiting for the data phase to start
<servercmd>
SLOWDOWN
REPLY welcome 220 Hey
REPLY USER 331 OK
REPLY PASS 230 OK
REPLY PWD 257 "/"
REPLY TYPE 200 OK
</servercmd>
<data nocheck="yes">
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
Long chunk of data that couldn't possibly be sent in the time allotted.
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<killserver>
ftp
</killserver>
<name>
FTP download with strict timeout and slow data transfer
</name>
<command timeout="1">
ftp://%HOSTIP:%FTPPORT/%TESTNUMBER -m 7
</command>
</client>
# Verify data after the test has been "shot"
<verify>
# 28 is CURLE_OPERATION_TIMEDOUT
<errorcode>
28
</errorcode>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
EPSV
TYPE I
SIZE %TESTNUMBER
RETR %TESTNUMBER
</protocol>
</verify>
</testcase>