curl/tests/data/test1238
Dan Fandrich 72c5bb14e7 tests: improve reliability of TFTP tests
Stop checking the timeout used by the client under test (for most
tests). The timeout will change if the TFTP test server is slow (such as
happens on an overprovisioned CI server) because the client will retry
and reduce its timeout, and the actual value is not important for most
tests.

test285 is changed a different way, by increasing the connect timeout.
This improves test coverage by allowing the changed timeout value to be
checked, but improves reliability with a carefully-chosen timeout that
not only allows twice the time to respond as before, but also allows
several retries before the client will change its timeout value.

Ref: #11328
2023-06-19 17:10:24 -07:00

66 lines
2.3 KiB
Plaintext

<testcase>
<info>
<keywords>
TFTP
TFTP RRQ
timeout
FAILURE
DELAY
</keywords>
</info>
#
# Server-side
<reply>
<servercmd>
writedelay: 2000
</servercmd>
# ~1200 bytes (so that they don't fit in two 512 byte chunks)
<data nocheck="yes">
012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
</data>
</reply>
#
# Client-side
<client>
<server>
tftp
</server>
# Always kill the TFTP server to not affect following tests, due
# to this test potentially keeping the TFTP server busy waiting
# for another 5 seconds after this test has already terminated.
# On some platforms and CI not enough time passes between this
# test and the next tests 1242 and 1243, causing them to fail.
<killserver>
tftp
</killserver>
<name>
slow TFTP retrieve cancel due to -Y and -y
</name>
# if less than 1000 bytes/sec within 2 seconds, abort!
<command>
tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER -Y1000 -y2
</command>
</client>
#
# Verify pseudo protocol after the test has been "shot"
<verify>
<strip>
^timeout = [5-6]$
</strip>
<protocol>
opcode = 1
mode = octet
tsize = 0
blksize = 512
filename = /%TESTNUMBER
</protocol>
# 28 = CURLE_OPERATION_TIMEDOUT
<errorcode>
28
</errorcode>
</verify>
</testcase>