1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-15 22:15:13 -05:00

test1558: verify CURLINFO_PROTOCOL on file:// transfer

Attempt to reproduce issue #3444.

Closes #3447
This commit is contained in:
Daniel Stenberg 2019-01-08 09:58:50 +01:00
parent f5fb0c5217
commit f6bb05ccbd
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
4 changed files with 120 additions and 2 deletions

View File

@ -176,8 +176,7 @@ test1525 test1526 test1527 test1528 test1529 test1530 test1531 test1532 \
test1533 test1534 test1535 test1536 test1537 test1538 \ test1533 test1534 test1535 test1536 test1537 test1538 \
test1540 \ test1540 \
test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \ test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \
\ test1558 test1560 test1561 test1562 \
test1560 test1561 test1562 \
\ \
test1590 test1591 test1592 \ test1590 test1591 test1592 \
\ \

50
tests/data/test1558 Normal file
View File

@ -0,0 +1,50 @@
<testcase>
<info>
<keywords>
curl_easy_getinfo
CURLINFO_PROTOCOL
</keywords>
</info>
<reply>
</reply>
<client>
<server>
none
</server>
<features>
file
</features>
<tool>
lib1558
</tool>
<name>
CURLINFO_PROTOCOL for file:// transfer
</name>
<setenv>
# force MSYS2 to not convert the file: URL
MSYS2_ARG_CONV_EXCL=file:
</setenv>
<command>
file:%FILE_PWD/log/data1558
</command>
<file name="log/data1558">
hello
</file>
</client>
#
# Verify that the test runs to completion without crashing
<verify>
<errorcode>
0
</errorcode>
<stdout>
hello
Protocol: 400
</stdout>
</verify>
</testcase>

View File

@ -30,6 +30,7 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect \
lib1534 lib1535 lib1536 lib1537 lib1538 \ lib1534 lib1535 lib1536 lib1537 lib1538 \
lib1540 \ lib1540 \
lib1550 lib1551 lib1552 lib1553 lib1554 lib1555 lib1556 lib1557 \ lib1550 lib1551 lib1552 lib1553 lib1554 lib1555 lib1556 lib1557 \
lib1558 \
lib1560 \ lib1560 \
lib1591 lib1592 \ lib1591 lib1592 \
lib1900 \ lib1900 \
@ -516,6 +517,9 @@ lib1557_SOURCES = lib1557.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1557_LDADD = $(TESTUTIL_LIBS) lib1557_LDADD = $(TESTUTIL_LIBS)
lib1557_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1557 lib1557_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1557
lib1558_SOURCES = lib1558.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1558_LDADD = $(TESTUTIL_LIBS)
lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1560_LDADD = $(TESTUTIL_LIBS) lib1560_LDADD = $(TESTUTIL_LIBS)

65
tests/libtest/lib1558.c Normal file
View File

@ -0,0 +1,65 @@
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
#include "test.h"
#include "testutil.h"
#include "warnless.h"
#include "memdebug.h"
int test(char *URL)
{
CURLcode res = 0;
CURL *curl = NULL;
long protocol = 0;
global_init(CURL_GLOBAL_ALL);
easy_init(curl);
easy_setopt(curl, CURLOPT_URL, URL);
res = curl_easy_perform(curl);
if(res) {
fprintf(stderr, "curl_easy_perform() returned %d (%s)\n",
res, curl_easy_strerror(res));
goto test_cleanup;
}
res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol);
if(res) {
fprintf(stderr, "curl_easy_getinfo() returned %d (%s)\n",
res, curl_easy_strerror(res));
goto test_cleanup;
}
printf("Protocol: %x\n", protocol);
curl_easy_cleanup(curl);
curl_global_cleanup();
return 0;
test_cleanup:
curl_easy_cleanup(curl);
curl_global_cleanup();
return res; /* return the final return code */
}