tests: add urlapi unittest

This adds a new unittest intended to cover the internal functions in
the urlapi code, starting with parse_port(). In order to avoid name
collisions in debug builds, parse_port() is renamed Curl_parse_port()
since it will be exported.

Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
This commit is contained in:
Daniel Gustafsson 2018-12-11 15:02:24 +01:00
parent 63533cbde2
commit e1be2ecba4
6 changed files with 170 additions and 4 deletions

View file

@ -30,4 +30,9 @@ bool Curl_is_absolute_url(const char *url, char *scheme, size_t buflen);
char *Curl_concat_url(const char *base, const char *relurl);
size_t Curl_strlen_url(const char *url, bool relative);
void Curl_strcpy_url(char *output, const char *url, bool relative);
#ifdef DEBUGBUILD
CURLUcode Curl_parse_port(struct Curl_URL *u, char *hostname);
#endif
#endif /* HEADER_CURL_URLAPI_INT_H */

View file

@ -67,6 +67,12 @@ struct Curl_URL {
#define DEFAULT_SCHEME "https"
#ifdef DEBUGBUILD
#define UNITTEST
#else
#define UNITTEST static
#endif
static void free_urlhandle(struct Curl_URL *u)
{
free(u->scheme);
@ -488,7 +494,7 @@ static CURLUcode parse_hostname_login(struct Curl_URL *u,
return result;
}
static CURLUcode parse_port(struct Curl_URL *u, char *hostname)
UNITTEST CURLUcode Curl_parse_port(struct Curl_URL *u, char *hostname)
{
char *portptr = NULL;
char endbracket;
@ -845,7 +851,7 @@ static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
if(result)
return result;
result = parse_port(u, hostname);
result = Curl_parse_port(u, hostname);
if(result)
return result;