1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-25 01:28:51 -05:00
curl/tests/data/test1238
Marc Hoersken cffbcc3110
test1238: avoid tftpd being busy for tests shortly following
The tftpd server may still be busy if the total timeout of
25 seconds has not been reached or no sread error was received
during or after the execution of the timeout test 1238.

Once the next TFTP test comes around (eg. 1242 or 1243),
those will fail because the tftpd server is still waiting
on data from curl due to the UDP protocol being stateless
and having no connection close. On Linux this error may not
happen, because ICMP errors generated due to a swrite error
can also be returned async on the next sread call instead.

Therefore we will now just kill the tftpd server after test
1238 to make sure that the following tests are not affected.

This enables us to no longer ignore tests 1242, 1243, 2002
and 2003 on the CI platforms CirrusCI and AppVeyor.

Assisted-by: Peter Wu
Closes #5364
2020-05-11 19:59:19 +02:00

61 lines
2.2 KiB
Plaintext

<testcase>
<info>
<keywords>
TFTP
TFTP RRQ
</keywords>
</info>
#
# Server-side
<reply>
<servercmd>
writedelay: 2
</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 plattforms 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//1238 -Y1000 -y2
</command>
</client>
#
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
opcode: 1
mode: octet
tsize: 0
blksize: 512
timeout: 6
filename: /1238
</protocol>
# 28 = CURLE_OPERATION_TIMEDOUT
<errorcode>
28
</errorcode>
</verify>
</testcase>