|
- #include "libcurl_mock.h"
-
- #pragma GCC diagnostic ignored "-Wvarargs"
-
- libcurl_mock * libcurl_mock::instance = nullptr;
-
- extern "C"
- {
-
- CURLcode curl_global_init ( long flags )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_global_init(flags)
- : CURLE_OK;
- }
-
- void curl_global_cleanup ( void )
- {
- if (libcurl_mock::instance)
- libcurl_mock::instance->curl_global_cleanup();
- }
-
- struct curl_slist * curl_slist_append ( struct curl_slist * list,
- const char * elem)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_slist_append(list, elem)
- : nullptr;
- }
-
- void curl_slist_free_all ( struct curl_slist * list )
- {
- if (libcurl_mock::instance)
- libcurl_mock::instance->curl_slist_free_all(list);
- }
-
- CURL * curl_easy_init(void)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_easy_init()
- : nullptr;
- }
-
- void curl_easy_cleanup(CURL * curl)
- {
- if (libcurl_mock::instance)
- libcurl_mock::instance->curl_easy_cleanup(curl);
- }
-
- CURLcode curl_easy_setopt(CURL * curl,
- CURLoption option,
- ...)
- {
- if (!libcurl_mock::instance)
- return CURLE_OK;
-
- va_list args;
- va_start(args, option);
-
- if (option >= CURLOPTTYPE_OFF_T)
- return libcurl_mock::instance->curl_easy_setopt_off(curl, option, va_arg(args, curl_off_t));
-
- else if (option >= CURLOPTTYPE_FUNCTIONPOINT)
- return libcurl_mock::instance->curl_easy_setopt_ptr(curl, option, va_arg(args, void *));
-
- else if (option >= CURLOPTTYPE_STRINGPOINT)
- return libcurl_mock::instance->curl_easy_setopt_ptr(curl, option, va_arg(args, void *));
-
- else if (option >= CURLOPTTYPE_OBJECTPOINT)
- return libcurl_mock::instance->curl_easy_setopt_ptr(curl, option, va_arg(args, void *));
-
- else if (option >= CURLOPTTYPE_LONG)
- return libcurl_mock::instance->curl_easy_setopt_long(curl, option, va_arg(args, long));
-
- return CURLE_OK;
- }
-
- CURLcode curl_easy_perform(CURL * curl)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_easy_perform(curl)
- : CURLE_OK;
- }
-
- CURLcode curl_easy_getinfo(CURL * curl,
- CURLINFO info,
- ...)
- {
- if (!libcurl_mock::instance)
- return CURLE_OK;
-
- va_list args;
- va_start(args, info);
-
- if (info >= CURLINFO_OFF_T)
- return libcurl_mock::instance->curl_easy_getinfo_off(curl, info, va_arg(args, curl_off_t *));
-
- else if (info >= CURLINFO_SOCKET)
- return libcurl_mock::instance->curl_easy_getinfo_socket(curl, info, va_arg(args, curl_socket_t *));
-
- else if (info >= CURLINFO_PTR)
- return libcurl_mock::instance->curl_easy_getinfo_ptr(curl, info, va_arg(args, void *));
-
- else if (info >= CURLINFO_SLIST)
- return libcurl_mock::instance->curl_easy_getinfo_ptr(curl, info, va_arg(args, void *));
-
- else if (info >= CURLINFO_DOUBLE)
- return libcurl_mock::instance->curl_easy_getinfo_double(curl, info, va_arg(args, double *));
-
- else if (info >= CURLINFO_LONG)
- return libcurl_mock::instance->curl_easy_getinfo_long(curl, info, va_arg(args, long *));
-
- else if (info >= CURLINFO_STRING)
- return libcurl_mock::instance->curl_easy_getinfo_str(curl, info, va_arg(args, char **));
-
- return CURLE_OK;
- }
-
- CURL * curl_easy_duphandle(CURL *curl)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_easy_duphandle(curl)
- : nullptr;
- }
-
- void curl_easy_reset(CURL *curl)
- {
- if (libcurl_mock::instance)
- libcurl_mock::instance->curl_easy_reset(curl);
- }
-
- CURLcode curl_easy_recv(CURL * curl,
- void * buffer,
- size_t buflen,
- size_t * n)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_easy_recv(curl, buffer, buflen, n)
- : CURLE_OK;
- }
-
- CURLcode curl_easy_send(CURL * curl,
- const void * buffer,
- size_t buflen,
- size_t * n)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_easy_send(curl, buffer, buflen, n)
- : CURLE_OK;
- }
-
- const char * curl_easy_strerror ( CURLcode code )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_easy_strerror(code)
- : nullptr;
- }
-
- const char * curl_multi_strerror ( CURLMcode code )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_strerror(code)
- : nullptr;
- }
-
- CURLM * curl_multi_init ( void )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_init()
- : nullptr;
- }
-
- CURLMcode curl_multi_cleanup ( CURLM *multi_handle )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_cleanup(multi_handle)
- : CURLM_OK;
- }
-
- CURLMcode curl_multi_add_handle ( CURLM * multi_handle,
- CURL * curl_handle )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_add_handle(multi_handle, curl_handle)
- : CURLM_OK;
- }
-
- CURLMcode curl_multi_remove_handle ( CURLM * multi_handle,
- CURL * curl_handle )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_remove_handle(multi_handle, curl_handle)
- : CURLM_OK;
- }
-
- CURLMcode curl_multi_fdset ( CURLM * multi_handle,
- fd_set * read_fd_set,
- fd_set * write_fd_set,
- fd_set * exc_fd_set,
- int * max_fd)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_fdset(multi_handle, read_fd_set, write_fd_set, exc_fd_set, max_fd)
- : CURLM_OK;
- }
-
- CURLMcode curl_multi_wait ( CURLM * multi_handle,
- struct curl_waitfd extra_fds[],
- unsigned int extra_nfds,
- int timeout_ms,
- int * ret)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_wait(multi_handle, extra_fds, extra_nfds, timeout_ms, ret)
- : CURLM_OK;
- }
-
- CURLMcode curl_multi_perform ( CURLM * multi_handle,
- int * running_handles)
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_perform(multi_handle, running_handles)
- : CURLM_OK;
- }
-
- CURLMsg * curl_multi_info_read ( CURLM * multi_handle,
- int * msgs_in_queue )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_info_read(multi_handle, msgs_in_queue)
- : nullptr;
- }
-
- CURLMcode curl_multi_timeout ( CURLM * multi_handle,
- long * milliseconds )
- {
- return libcurl_mock::instance
- ? libcurl_mock::instance->curl_multi_timeout(multi_handle, milliseconds)
- : CURLM_OK;
- }
-
- }
|