Annotation of embedaddon/curl/tests/libtest/lib1510.c, revision 1.1
1.1 ! misho 1: /***************************************************************************
! 2: * _ _ ____ _
! 3: * Project ___| | | | _ \| |
! 4: * / __| | | | |_) | |
! 5: * | (__| |_| | _ <| |___
! 6: * \___|\___/|_| \_\_____|
! 7: *
! 8: * Copyright (C) 2013 - 2018, Linus Nielsen Feltzing <linus@haxx.se>
! 9: *
! 10: * This software is licensed as described in the file COPYING, which
! 11: * you should have received as part of this distribution. The terms
! 12: * are also available at https://curl.haxx.se/docs/copyright.html.
! 13: *
! 14: * You may opt to use, copy, modify, merge, publish, distribute and/or sell
! 15: * copies of the Software, and permit persons to whom the Software is
! 16: * furnished to do so, under the terms of the COPYING file.
! 17: *
! 18: * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
! 19: * KIND, either express or implied.
! 20: *
! 21: ***************************************************************************/
! 22: #include "test.h"
! 23:
! 24: #include "testutil.h"
! 25: #include "warnless.h"
! 26: #include "memdebug.h"
! 27:
! 28: #define TEST_HANG_TIMEOUT 60 * 1000
! 29:
! 30: #define NUM_URLS 4
! 31:
! 32: int test(char *URL)
! 33: {
! 34: int res = 0;
! 35: CURL *curl = NULL;
! 36: int i;
! 37: char target_url[256];
! 38: char dnsentry[256];
! 39: struct curl_slist *slist = NULL, *slist2;
! 40: char *port = libtest_arg3;
! 41: char *address = libtest_arg2;
! 42:
! 43: (void)URL;
! 44:
! 45: /* Create fake DNS entries for serverX.example.com for all handles */
! 46: for(i = 0; i < NUM_URLS; i++) {
! 47: msnprintf(dnsentry, sizeof(dnsentry), "server%d.example.com:%s:%s", i + 1,
! 48: port, address);
! 49: printf("%s\n", dnsentry);
! 50: slist2 = curl_slist_append(slist, dnsentry);
! 51: if(!slist2) {
! 52: fprintf(stderr, "curl_slist_append() failed\n");
! 53: goto test_cleanup;
! 54: }
! 55: slist = slist2;
! 56: }
! 57:
! 58: start_test_timing();
! 59:
! 60: global_init(CURL_GLOBAL_ALL);
! 61:
! 62: /* get an easy handle */
! 63: easy_init(curl);
! 64:
! 65: /* go verbose */
! 66: easy_setopt(curl, CURLOPT_VERBOSE, 1L);
! 67: /* include headers */
! 68: easy_setopt(curl, CURLOPT_HEADER, 1L);
! 69:
! 70: easy_setopt(curl, CURLOPT_RESOLVE, slist);
! 71:
! 72: easy_setopt(curl, CURLOPT_MAXCONNECTS, 3L);
! 73:
! 74: /* get NUM_HANDLES easy handles */
! 75: for(i = 0; i < NUM_URLS; i++) {
! 76: /* specify target */
! 77: msnprintf(target_url, sizeof(target_url),
! 78: "http://server%d.example.com:%s/path/1510%04i",
! 79: i + 1, port, i + 1);
! 80: target_url[sizeof(target_url) - 1] = '\0';
! 81: easy_setopt(curl, CURLOPT_URL, target_url);
! 82:
! 83: res = curl_easy_perform(curl);
! 84:
! 85: abort_on_test_timeout();
! 86: }
! 87:
! 88: test_cleanup:
! 89:
! 90: /* proper cleanup sequence - type PB */
! 91:
! 92: curl_easy_cleanup(curl);
! 93:
! 94: curl_slist_free_all(slist);
! 95:
! 96: curl_global_cleanup();
! 97:
! 98: return res;
! 99: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>