diff options
Diffstat (limited to 'tests/libtest')
-rw-r--r-- | tests/libtest/Makefile.am | 8 | ||||
-rw-r--r-- | tests/libtest/lib544.c | 57 |
2 files changed, 64 insertions, 1 deletions
diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am index f0fb24ed0..3137e9e06 100644 --- a/tests/libtest/Makefile.am +++ b/tests/libtest/Makefile.am @@ -47,7 +47,8 @@ SUPPORTFILES = first.c test.h noinst_PROGRAMS = lib500 lib501 lib502 lib503 lib504 lib505 lib506 \ lib507 lib508 lib509 lib510 lib511 lib512 lib513 lib514 lib515 lib516 \ lib517 lib518 lib519 lib520 lib521 lib523 lib524 lib525 lib526 lib527 \ - lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 lib543 + lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 lib543 \ + lib544 lib545 # Dependencies (may need to be overriden) LDADD = $(LIBDIR)/libcurl.la @@ -132,3 +133,8 @@ lib541_SOURCES = lib541.c $(SUPPORTFILES) lib542_SOURCES = lib542.c $(SUPPORTFILES) lib543_SOURCES = lib543.c $(SUPPORTFILES) + +lib544_SOURCES = lib544.c $(SUPPORTFILES) + +lib545_SOURCES = lib544.c $(SUPPORTFILES) +lib545_CFLAGS = -DLIB545 diff --git a/tests/libtest/lib544.c b/tests/libtest/lib544.c new file mode 100644 index 000000000..bde630d6b --- /dev/null +++ b/tests/libtest/lib544.c @@ -0,0 +1,57 @@ +/***************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * $Id$ + */ + +#include "test.h" + + +static char teststring[] = + "This\0 is test binary data with an embedded NUL byte\n"; + + +int test(char *URL) +{ + CURL *curl; + CURLcode res=CURLE_OK; + + if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { + fprintf(stderr, "curl_global_init() failed\n"); + return TEST_ERR_MAJOR_BAD; + } + + if ((curl = curl_easy_init()) == NULL) { + fprintf(stderr, "curl_easy_init() failed\n"); + curl_global_cleanup(); + return TEST_ERR_MAJOR_BAD; + } + + /* First set the URL that is about to receive our POST. */ + curl_easy_setopt(curl, CURLOPT_URL, URL); + +#ifdef LIB545 + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, sizeof teststring - 1); +#endif + + curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, teststring); + + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); /* show verbose for debug */ + curl_easy_setopt(curl, CURLOPT_HEADER, 1); /* include header */ + + /* Update the original data to detect non-copy. */ + strcpy(teststring, "FAIL"); + + /* Now, this is a POST request with binary 0 embedded in POST data. */ + res = curl_easy_perform(curl); + + /* always cleanup */ + curl_easy_cleanup(curl); + curl_global_cleanup(); + + return (int)res; +} |