From: Daniel Stenberg Date: Wed, 19 Oct 2022 09:40:11 +0000 (+0200) Subject: test644: verify --xattr (with redirect) X-Git-Tag: curl-7_86_0~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f5e5384ec3b8af5fd2cceaba036d8c0e1d0e948b;p=thirdparty%2Fcurl.git test644: verify --xattr (with redirect) --- diff --git a/src/tool_xattr.c b/src/tool_xattr.c index 684aa939f8..bd05749966 100644 --- a/src/tool_xattr.c +++ b/src/tool_xattr.c @@ -22,17 +22,6 @@ * ***************************************************************************/ #include "tool_setup.h" - -#ifdef HAVE_FSETXATTR -# include /* header from libc, not from libattr */ -# define USE_XATTR -#elif (defined(__FreeBSD_version) && (__FreeBSD_version > 500000)) || \ - defined(__MidnightBSD_version) -# include -# include -# define USE_XATTR -#endif - #include "tool_xattr.h" #include "memdebug.h" /* keep this as LAST include */ @@ -144,13 +133,4 @@ int fwrite_xattr(CURL *curl, const char *url, int fd) } return err; } -#else -int fwrite_xattr(CURL *curl, const char *url, int fd) -{ - (void)curl; - (void)url; - (void)fd; - - return 0; -} #endif diff --git a/src/tool_xattr.h b/src/tool_xattr.h index f107461a90..e85d4cded5 100644 --- a/src/tool_xattr.h +++ b/src/tool_xattr.h @@ -25,6 +25,21 @@ ***************************************************************************/ #include "tool_setup.h" +#ifdef HAVE_FSETXATTR +# include /* header from libc, not from libattr */ +# define USE_XATTR +#elif (defined(__FreeBSD_version) && (__FreeBSD_version > 500000)) || \ + defined(__MidnightBSD_version) +# include +# include +# define USE_XATTR +#endif + +#ifdef USE_XATTR int fwrite_xattr(CURL *curl, const char *url, int fd); +#else +#define fwrite_xattr(a,b,c) 0 +#endif + #endif /* HEADER_CURL_TOOL_XATTR_H */ diff --git a/tests/FILEFORMAT.md b/tests/FILEFORMAT.md index c420772116..464c2eb5e5 100644 --- a/tests/FILEFORMAT.md +++ b/tests/FILEFORMAT.md @@ -447,6 +447,7 @@ Features testable here are: - `win32` - `wolfssh` - `wolfssl` +- `xattr` as well as each protocol that curl supports. A protocol only needs to be specified if it is different from the server (useful when the server is diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index b3727a6c67..99dc92cb3b 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -91,7 +91,7 @@ test608 test609 test610 test611 test612 test613 test614 test615 test616 \ test617 test618 test619 test620 test621 test622 test623 test624 test625 \ test626 test627 test628 test629 test630 test631 test632 test633 test634 \ test635 test636 test637 test638 test639 test640 test641 test642 \ -test643 test645 test646 test647 test648 test649 test650 test651 \ +test643 test644 test645 test646 test647 test648 test649 test650 test651 \ test652 test653 test654 test655 test656 test658 test659 test660 test661 \ test662 test663 test664 test665 test666 test667 test668 test669 \ test670 test671 test672 test673 test674 test675 test676 test677 test678 \ diff --git a/tests/data/test644 b/tests/data/test644 new file mode 100644 index 0000000000..c067d034c5 --- /dev/null +++ b/tests/data/test644 @@ -0,0 +1,85 @@ + + + +HTTP +xattr + + + +# +# Server-side + + +HTTP/1.1 301 OK +Date: Tue, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT +ETag: "21025-dc7-39462498" +Accept-Ranges: bytes +Content-Length: 6 +Connection: close +Content-Type: fake/data +Funny-head: yesyes +Location: data/%TESTNUMBER0002.txt?coolsite=yes + +-foo- + + +HTTP/1.1 200 OK +Date: Tue, 09 Nov 2010 14:49:00 GMT +Server: test-server/real +Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT +ETag: "21025-dc7-39462498" +Accept-Ranges: bytes +Content-Length: 6 +Connection: close +Content-Type: text/html +Funny-head: yesyes + +-foo- + + + +# +# Client-side + + +http + + +debug +xattr + +# simulate the xattr operations + +CURL_FAKE_XATTR=1 + + +--xattr with redirect + + +http://%HOSTIP:%HTTPPORT/%TESTNUMBER --xattr -L -o log/out%TESTNUMBER + + + +# +# Verify data after the test has been "shot" + + +GET /%TESTNUMBER HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +User-Agent: curl/%VERSION +Accept: */* + +GET /data/%TESTNUMBER0002.txt?coolsite=yes HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +User-Agent: curl/%VERSION +Accept: */* + + + +user.mime_type => text/html +user.xdg.origin.url => http://%HOSTIP:%HTTPPORT/%TESTNUMBER + + + diff --git a/tests/runtests.pl b/tests/runtests.pl index 72cd2c353e..3f6197249a 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -2958,7 +2958,7 @@ sub setupfeatures { $feature{"verbose-strings"} = 1; $feature{"wakeup"} = 1; $feature{"headers-api"} = 1; - + $feature{"xattr"} = 1; } ####################################################################### diff --git a/tests/server/CMakeLists.txt b/tests/server/CMakeLists.txt index 1280423224..bad6edf4df 100644 --- a/tests/server/CMakeLists.txt +++ b/tests/server/CMakeLists.txt @@ -36,6 +36,7 @@ function(SETUP_EXECUTABLE TEST_NAME) # ARGN are the files in the test ${CURL_SOURCE_DIR}/lib # To be able to reach "curl_setup_once.h" ${CURL_BINARY_DIR}/lib # To be able to reach "curl_config.h" ${CURL_BINARY_DIR}/include # To be able to reach "curl/curl.h" + ${CURL_SOURCE_DIR}/src # To be able to reach "tool_xattr.h" ) if(USE_ARES) include_directories(${CARES_INCLUDE_DIR}) diff --git a/tests/server/Makefile.am b/tests/server/Makefile.am index 964fab2ac6..45ccf231d8 100644 --- a/tests/server/Makefile.am +++ b/tests/server/Makefile.am @@ -36,6 +36,9 @@ AM_CPPFLAGS = -I$(top_srcdir)/include \ -I$(top_builddir)/lib \ -I$(top_srcdir)/lib +disabled_CPPFLAGS = $(AM_CPPFLAGS) \ + -I$(top_srcdir)/src + # Prevent LIBS from being used for all link targets LIBS = $(BLANK_AT_MAKETIME) diff --git a/tests/server/disabled.c b/tests/server/disabled.c index b9bc9b75f5..8a4a17ce5e 100644 --- a/tests/server/disabled.c +++ b/tests/server/disabled.c @@ -33,6 +33,7 @@ #include "curl_setup.h" #include "multihandle.h" /* for ENABLE_WAKEUP */ +#include "tool_xattr.h" /* for USE_XATTR */ #include static const char *disabled[]={ @@ -74,6 +75,9 @@ static const char *disabled[]={ #endif #ifdef CURL_DISABLE_HEADERS_API "headers-api", +#endif +#ifndef USE_XATTR + "xattr", #endif NULL };