test766: verify CURLOPT_SOCKOPTFUNCTION error on accept

This test does active FTP with a socketopt callback that returns error
for the CURLSOCKTYPE_ACCEPT "purpose" to make sure we test and exercise
this error path - without leaks.
This commit is contained in:
Daniel Stenberg 2025-10-06 12:43:40 +02:00
parent e7a5184fa1
commit 1fc531f391
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
4 changed files with 183 additions and 1 deletions

View file

@ -109,7 +109,7 @@ test727 test728 test729 test730 test731 test732 test733 test734 test735 \
test736 test737 test738 test739 test740 test741 test742 test743 test744 \
test745 test746 test747 test748 test749 test750 test751 test752 test753 \
test754 test755 test756 test757 test758 test759 test760 test761 test762 \
test763 test764 test765 \
test763 test764 test765 test766 \
\
test780 test781 test782 test783 test784 test785 test786 test787 test788 \
test789 test790 test791 test792 test793 test794 test796 test797 \

54
tests/data/test766 Normal file
View file

@ -0,0 +1,54 @@
<testcase>
<info>
<keywords>
FTP
PORT
CURLOPT_SOCKOPTFUNCTION
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
hello
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<tool>
lib%TESTNUMBER
</tool>
<name>
FTP PORT with sockopt callback refusing the accept
</name>
<command>
ftp://%HOSTIP:%FTPPORT/path/%TESTNUMBER
</command>
</client>
# Verify data after the test has been "shot"
<verify>
# Strip off parts of the PORT and EPRT commands that might differ
<strippart>
s/^PORT (.*)/PORT/
s/^EPRT \|1\|(.*)/EPRT \|1\|/
</strippart>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD path
EPRT |1|
</protocol>
# 42 == CURLE_ABORTED_BY_CALLBACK
<errorcode>
42
</errorcode>
</verify>
</testcase>