1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-24 17:18:48 -05:00
curl/tests/libtest
Patrick Monnerat 1e4cb333ef
mime: do not perform more than one read in a row
Input buffer filling may delay the data sending if data reads are slow.
To overcome this problem, file and callback data reads do not accumulate
in buffer anymore. All other data (memory data and mime framing) are
considered as fast and still concatenated in buffer.
As this may highly impact performance in terms of data overhead, an early
end of part data check is added to spare a read call.
When encoding a part's data, an encoder may require more bytes than made
available by a single read. In this case, the above rule does not apply
and reads are performed until the encoder is able to deliver some data.

Tests 643, 644, 645, 650 and 654 have been adapted to the output data
changes, with test data size reduced to avoid the boredom of long lists of
1-byte chunks in verification data.
New test 667 checks mimepost using single-byte read callback with encoder.
New test 668 checks the end of part data early detection.

Fixes #4826
Reported-by: MrdUkk on github
2020-03-07 23:26:00 +01:00
..
.gitignore libtest: Add chkdecimalpoint to .gitignore 2018-09-15 23:39:50 +02:00
chkdecimalpoint.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
chkhostname.c tests/libtest: follow our code style guidelines better 2016-04-03 11:57:34 +02:00
CMakeLists.txt build: Disable Visual Studio warning "conditional expression is constant" 2019-12-01 19:01:02 -05:00
first.c cleanup: s/curl_debug/curl_dbg_debug in comments and docs 2019-08-08 16:01:00 +02:00
lib500.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib501.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib502.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib503.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib504.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib505.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib506.c cookies: using a share with cookies shouldn't enable the cookie engine 2019-09-28 18:10:43 +02:00
lib507.c code style: use spaces around pluses 2017-09-11 09:29:50 +02:00
lib508.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib509.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
lib510.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib511.c checksrc: warn for assignments within if() expressions 2016-12-14 01:29:44 +01:00
lib512.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib513.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib514.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib515.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib516.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib517.c parsedate: support UT timezone 2018-03-19 19:22:42 +01:00
lib518.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib519.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib520.c checksrc: warn for assignments within if() expressions 2016-12-14 01:29:44 +01:00
lib521.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib523.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib524.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib525.c code style: use spaces around pluses 2017-09-11 09:29:50 +02:00
lib526.c code style: use spaces around pluses 2017-09-11 09:29:50 +02:00
lib530.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib533.c code style: use spaces around pluses 2017-09-11 09:29:50 +02:00
lib537.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib539.c checksrc: warn for assignments within if() expressions 2016-12-14 01:29:44 +01:00
lib540.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib541.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
lib542.c checksrc: warn for assignments within if() expressions 2016-12-14 01:29:44 +01:00
lib543.c tests: Make sure libtests call curl_global_cleanup() 2017-08-19 21:42:47 +02:00
lib544.c checksrc: make sure sizeof() is used *with* parentheses 2018-05-21 23:21:47 +02:00
lib547.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib549.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib552.c checksrc: make sure sizeof() is used *with* parentheses 2018-05-21 23:21:47 +02:00
lib553.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib554.c mime: keep "text/plain" content type if user-specified. 2017-10-12 19:36:16 +01:00
lib555.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib556.c tests: fix multiple may be used uninitialized warnings 2019-03-05 14:38:25 +01:00
lib557.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
lib558.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib559.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib560.c spelling fixes 2018-02-23 23:29:01 +00:00
lib562.c checksrc: warn for assignments within if() expressions 2016-12-14 01:29:44 +01:00
lib564.c code style: use spaces around pluses 2017-09-11 09:29:50 +02:00
lib566.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib567.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib568.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib569.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
lib570.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib571.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
lib572.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib573.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib574.c libtest/lib574.c: use correct callback proto 2017-05-31 11:56:53 +02:00
lib575.c code style: use spaces around pluses 2017-09-11 09:29:50 +02:00
lib576.c code: style updates 2016-04-03 22:38:36 +02:00
lib578.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib579.c cppcheck: fix warnings 2018-06-11 11:14:48 +02:00
lib582.c lib582: do not verify host for SFTP 2017-12-01 17:40:14 +01:00
lib583.c lib583: fix compiler warning 2017-05-31 19:05:50 +02:00
lib586.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib589.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib590.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib591.c build: remove HAVE_LIMITS_H check 2018-01-05 23:34:30 -05:00
lib597.c connection: never reuse CONNECT_ONLY conections 2019-02-19 22:50:02 +01:00
lib598.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib599.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib643.c mime: do not perform more than one read in a row 2020-03-07 23:26:00 +01:00
lib650.c curl-compilers: enable -Wbad-function-cast on GCC 2018-08-21 18:53:45 +02:00
lib651.c test651: curl_formadd with huge COPYCONTENTS 2017-10-13 07:55:47 +02:00
lib652.c Revert "mime: fix the binary encoder to handle large data properly" 2020-03-02 07:42:48 +01:00
lib653.c test653: check reuse of easy handle after mime data change 2017-10-20 14:01:14 +01:00
lib654.c mime: do not perform more than one read in a row 2020-03-07 23:26:00 +01:00
lib655.c build: get CFLAGS (including -werror) used for examples and tests 2018-03-04 19:46:26 +01:00
lib658.c setopt: add CURLOPT_CURLU 2018-11-09 15:47:28 +01:00
lib659.c CURLU: fix NULL dereference when used over proxy 2019-03-04 16:24:08 +01:00
lib661.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
lib667.c mime: do not perform more than one read in a row 2020-03-07 23:26:00 +01:00
lib668.c mime: do not perform more than one read in a row 2020-03-07 23:26:00 +01:00
lib670.c mime: latch last read callback status. 2020-03-07 23:26:00 +01:00
lib1156.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
lib1500.c checksrc: code style: use 'char *name' style 2016-11-24 23:58:22 +01:00
lib1501.c code style: use spaces around pluses 2017-09-11 09:29:50 +02:00
lib1502.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib1506.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib1507.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib1508.c URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
lib1509.c tests: Fix format specifiers 2018-05-14 09:42:27 +02:00
lib1510.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib1511.c checksrc: code style: use 'char *name' style 2016-11-24 23:58:22 +01:00
lib1512.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib1513.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib1514.c URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
lib1515.c tests: align some Windows sleep defines with each other 2020-03-04 16:11:03 +01:00
lib1517.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib1518.c Curl_follow: extract the Location: header field unvalidated 2018-12-12 07:58:47 +01:00
lib1520.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib1522.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
lib1523.c test1523: basic test of CURLOPT_LOW_SPEED_LIMIT 2019-06-18 22:34:05 +02:00
lib1525.c libtest: fix MinGW-w64 warnings 2017-05-08 19:59:46 +02:00
lib1526.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib1527.c libtest: fix MinGW-w64 warnings 2017-05-08 19:59:46 +02:00
lib1528.c checksrc: warn for assignments within if() expressions 2016-12-14 01:29:44 +01:00
lib1529.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
lib1530.c checksrc: warn for assignments within if() expressions 2016-12-14 01:29:44 +01:00
lib1531.c tests: align some Windows sleep defines with each other 2020-03-04 16:11:03 +01:00
lib1532.c easy: Reset all statistical session info in curl_easy_reset 2016-09-20 01:14:01 -04:00
lib1533.c whitespace fixes 2018-09-23 22:24:02 +00:00
lib1534.c easy: Initialize info variables on easy init and duphandle 2016-11-05 23:06:28 -04:00
lib1535.c tests: Fix format specifiers 2018-05-14 09:42:27 +02:00
lib1536.c tests: Fix format specifiers 2018-05-14 09:42:27 +02:00
lib1537.c tests: fix multiple may be used uninitialized warnings 2019-03-05 14:38:25 +01:00
lib1538.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
lib1540.c test1540: Remove unused macro TEST_HANG_TIMEOUT 2018-08-09 12:37:21 +02:00
lib1541.c build: fix Codacy warnings 2019-06-05 20:38:06 +02:00
lib1550.c tests: Make sure libtests call curl_global_cleanup() 2017-08-19 21:42:47 +02:00
lib1551.c tests: Make sure libtests call curl_global_cleanup() 2017-08-19 21:42:47 +02:00
lib1552.c multi_cleanup: call DONE on handles that never got that 2017-10-06 16:48:39 +02:00
lib1553.c pingpong: return error when trying to send without connection 2017-10-07 00:20:31 +02:00
lib1554.c cppcheck: fix warnings 2018-06-11 11:14:48 +02:00
lib1555.c tests: fix multiple may be used uninitialized warnings 2019-03-05 14:38:25 +01:00
lib1556.c test1556: verify >16KB headers to the header callback 2018-02-16 22:54:50 +01:00
lib1557.c lib1557: fix mem-leak in OOM 2019-12-13 08:16:06 +01:00
lib1558.c test1558: verify CURLINFO_PROTOCOL on file:// transfer 2019-01-10 11:22:48 +01:00
lib1559.c lib1559: fix mem-leak in OOM 2019-12-13 08:16:24 +01:00
lib1560.c urlapi: guess scheme correct even with credentials given 2020-01-28 08:40:16 +01:00
lib1564.c multi: add curl_multi_wakeup() 2019-11-25 15:45:56 +01:00
lib1565.c multi: add curl_multi_wakeup() 2019-11-25 15:45:56 +01:00
lib1591.c lib1591: free memory properly on OOM, in the trailers callback 2019-12-15 18:19:01 +01:00
lib1592.c curl_multi_remove_handle() don't block terminating c-ares requests 2019-01-07 10:05:20 +01:00
lib1593.c http: allow overriding timecond with custom header 2019-07-14 16:17:15 +02:00
lib1594.c CURLINFO_RETRY_AFTER: parse the Retry-After header value 2019-08-07 14:45:39 +02:00
lib1900.c tests: fix multiple may be used uninitialized warnings 2019-03-05 14:38:25 +01:00
lib1905.c build: fix Codacy warnings 2019-06-05 20:38:06 +02:00
lib1906.c tests: Run global cleanup at end of tests 2019-04-15 15:23:58 +02:00
lib1907.c url: normalize CURLINFO_EFFECTIVE_URL 2019-10-16 14:10:55 +02:00
lib1908.c altsvc: keep a copy of the file name to survive handle reset 2020-02-09 22:41:49 +01:00
libauthretry.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
libntlmconnect.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
Makefile.am tests: make sure checksrc runs on header files too 2019-12-16 22:46:48 +01:00
Makefile.inc mime: do not perform more than one read in a row 2020-03-07 23:26:00 +01:00
mk-lib1521.pl libtest/mk-lib1521: adapt to new public header layout 2020-01-09 22:57:33 +01:00
notexists.pl tests 1334 to 1363 revisited. 2012-06-05 20:20:40 +02:00
sethostname.c URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
sethostname.h whitespace fixes 2018-09-23 22:24:02 +00:00
stub_gssapi.c gssapi: fix deprecated header warnings 2019-02-14 08:38:43 +01:00
stub_gssapi.h whitespace fixes 2018-09-23 22:24:02 +00:00
test75.pl replaced tabs with spaces 2010-02-16 13:32:45 +00:00
test307.pl replaced tabs with spaces 2010-02-16 13:32:45 +00:00
test610.pl replaced tabs with spaces 2010-02-16 13:32:45 +00:00
test613.pl tests: added --remote-time tests for remaining protocols that support it 2017-04-29 10:16:06 +02:00
test1013.pl test1013.pl: GSS-Negotiate doesn't exist as a feature anymore 2014-07-24 23:46:11 +02:00
test1022.pl Fixed test 1023 when using daily snapshots 2011-04-21 14:47:35 -07:00
test.h tests: make sure checksrc runs on header files too 2019-12-16 22:46:48 +01:00
testtrace.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
testtrace.h whitespace fixes 2018-09-23 22:24:02 +00:00
testutil.c time: fix type conversions and compiler warnings 2017-05-24 22:56:22 +02:00
testutil.h whitespace fixes 2018-09-23 22:24:02 +00:00