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
114 lines
4.4 KiB
Plaintext
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>
|