Annotation of embedaddon/curl/tests/unit/unit1304.c, revision 1.1
1.1 ! misho 1: /***************************************************************************
! 2: * _ _ ____ _
! 3: * Project ___| | | | _ \| |
! 4: * / __| | | | |_) | |
! 5: * | (__| |_| | _ <| |___
! 6: * \___|\___/|_| \_\_____|
! 7: *
! 8: * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
! 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 "curlcheck.h"
! 23: #include "netrc.h"
! 24: #include "memdebug.h" /* LAST include file */
! 25:
! 26: static char *login;
! 27: static char *password;
! 28: static char filename[64];
! 29:
! 30: static CURLcode unit_setup(void)
! 31: {
! 32: password = strdup("");
! 33: login = strdup("");
! 34: if(!password || !login) {
! 35: Curl_safefree(password);
! 36: Curl_safefree(login);
! 37: return CURLE_OUT_OF_MEMORY;
! 38: }
! 39: return CURLE_OK;
! 40: }
! 41:
! 42: static void unit_stop(void)
! 43: {
! 44: Curl_safefree(password);
! 45: Curl_safefree(login);
! 46: }
! 47:
! 48: UNITTEST_START
! 49: int result;
! 50: bool login_changed;
! 51: bool password_changed;
! 52:
! 53: static const char * const filename1 = "log/netrc1304";
! 54: memcpy(filename, filename1, strlen(filename1));
! 55:
! 56: /*
! 57: * Test a non existent host in our netrc file.
! 58: */
! 59: result = Curl_parsenetrc("test.example.com", &login, &password,
! 60: &login_changed, &password_changed, filename);
! 61: fail_unless(result == 1, "Host not found should return 1");
! 62: abort_unless(password != NULL, "returned NULL!");
! 63: fail_unless(password[0] == 0, "password should not have been changed");
! 64: abort_unless(login != NULL, "returned NULL!");
! 65: fail_unless(login[0] == 0, "login should not have been changed");
! 66:
! 67: /*
! 68: * Test a non existent login in our netrc file.
! 69: */
! 70: free(login);
! 71: login = strdup("me");
! 72: abort_unless(login != NULL, "returned NULL!");
! 73: result = Curl_parsenetrc("example.com", &login, &password,
! 74: &login_changed, &password_changed, filename);
! 75: fail_unless(result == 0, "Host should have been found");
! 76: abort_unless(password != NULL, "returned NULL!");
! 77: fail_unless(password[0] == 0, "password should not have been changed");
! 78: fail_unless(!password_changed, "password should not have been changed");
! 79: abort_unless(login != NULL, "returned NULL!");
! 80: fail_unless(strncmp(login, "me", 2) == 0,
! 81: "login should not have been changed");
! 82: fail_unless(!login_changed, "login should not have been changed");
! 83:
! 84: /*
! 85: * Test a non existent login and host in our netrc file.
! 86: */
! 87: free(login);
! 88: login = strdup("me");
! 89: abort_unless(login != NULL, "returned NULL!");
! 90: result = Curl_parsenetrc("test.example.com", &login, &password,
! 91: &login_changed, &password_changed, filename);
! 92: fail_unless(result == 1, "Host not found should return 1");
! 93: abort_unless(password != NULL, "returned NULL!");
! 94: fail_unless(password[0] == 0, "password should not have been changed");
! 95: abort_unless(login != NULL, "returned NULL!");
! 96: fail_unless(strncmp(login, "me", 2) == 0,
! 97: "login should not have been changed");
! 98:
! 99: /*
! 100: * Test a non existent login (substring of an existing one) in our
! 101: * netrc file.
! 102: */
! 103: free(login);
! 104: login = strdup("admi");
! 105: abort_unless(login != NULL, "returned NULL!");
! 106: result = Curl_parsenetrc("example.com", &login, &password,
! 107: &login_changed, &password_changed, filename);
! 108: fail_unless(result == 0, "Host should have been found");
! 109: abort_unless(password != NULL, "returned NULL!");
! 110: fail_unless(password[0] == 0, "password should not have been changed");
! 111: fail_unless(!password_changed, "password should not have been changed");
! 112: abort_unless(login != NULL, "returned NULL!");
! 113: fail_unless(strncmp(login, "admi", 4) == 0,
! 114: "login should not have been changed");
! 115: fail_unless(!login_changed, "login should not have been changed");
! 116:
! 117: /*
! 118: * Test a non existent login (superstring of an existing one)
! 119: * in our netrc file.
! 120: */
! 121: free(login);
! 122: login = strdup("adminn");
! 123: abort_unless(login != NULL, "returned NULL!");
! 124: result = Curl_parsenetrc("example.com", &login, &password,
! 125: &login_changed, &password_changed, filename);
! 126: fail_unless(result == 0, "Host should have been found");
! 127: abort_unless(password != NULL, "returned NULL!");
! 128: fail_unless(password[0] == 0, "password should not have been changed");
! 129: fail_unless(!password_changed, "password should not have been changed");
! 130: abort_unless(login != NULL, "returned NULL!");
! 131: fail_unless(strncmp(login, "adminn", 6) == 0,
! 132: "login should not have been changed");
! 133: fail_unless(!login_changed, "login should not have been changed");
! 134:
! 135: /*
! 136: * Test for the first existing host in our netrc file
! 137: * with login[0] = 0.
! 138: */
! 139: free(login);
! 140: login = strdup("");
! 141: abort_unless(login != NULL, "returned NULL!");
! 142: result = Curl_parsenetrc("example.com", &login, &password,
! 143: &login_changed, &password_changed, filename);
! 144: fail_unless(result == 0, "Host should have been found");
! 145: abort_unless(password != NULL, "returned NULL!");
! 146: fail_unless(strncmp(password, "passwd", 6) == 0,
! 147: "password should be 'passwd'");
! 148: fail_unless(password_changed, "password should have been changed");
! 149: abort_unless(login != NULL, "returned NULL!");
! 150: fail_unless(strncmp(login, "admin", 5) == 0, "login should be 'admin'");
! 151: fail_unless(login_changed, "login should have been changed");
! 152:
! 153: /*
! 154: * Test for the first existing host in our netrc file
! 155: * with login[0] != 0.
! 156: */
! 157: free(password);
! 158: password = strdup("");
! 159: abort_unless(password != NULL, "returned NULL!");
! 160: result = Curl_parsenetrc("example.com", &login, &password,
! 161: &login_changed, &password_changed, filename);
! 162: fail_unless(result == 0, "Host should have been found");
! 163: abort_unless(password != NULL, "returned NULL!");
! 164: fail_unless(strncmp(password, "passwd", 6) == 0,
! 165: "password should be 'passwd'");
! 166: fail_unless(password_changed, "password should have been changed");
! 167: abort_unless(login != NULL, "returned NULL!");
! 168: fail_unless(strncmp(login, "admin", 5) == 0, "login should be 'admin'");
! 169: fail_unless(!login_changed, "login should not have been changed");
! 170:
! 171: /*
! 172: * Test for the second existing host in our netrc file
! 173: * with login[0] = 0.
! 174: */
! 175: free(password);
! 176: password = strdup("");
! 177: abort_unless(password != NULL, "returned NULL!");
! 178: free(login);
! 179: login = strdup("");
! 180: abort_unless(login != NULL, "returned NULL!");
! 181: result = Curl_parsenetrc("curl.example.com", &login, &password,
! 182: &login_changed, &password_changed, filename);
! 183: fail_unless(result == 0, "Host should have been found");
! 184: abort_unless(password != NULL, "returned NULL!");
! 185: fail_unless(strncmp(password, "none", 4) == 0,
! 186: "password should be 'none'");
! 187: fail_unless(password_changed, "password should have been changed");
! 188: abort_unless(login != NULL, "returned NULL!");
! 189: fail_unless(strncmp(login, "none", 4) == 0, "login should be 'none'");
! 190: fail_unless(login_changed, "login should have been changed");
! 191:
! 192: /*
! 193: * Test for the second existing host in our netrc file
! 194: * with login[0] != 0.
! 195: */
! 196: free(password);
! 197: password = strdup("");
! 198: abort_unless(password != NULL, "returned NULL!");
! 199: result = Curl_parsenetrc("curl.example.com", &login, &password,
! 200: &login_changed, &password_changed, filename);
! 201: fail_unless(result == 0, "Host should have been found");
! 202: abort_unless(password != NULL, "returned NULL!");
! 203: fail_unless(strncmp(password, "none", 4) == 0,
! 204: "password should be 'none'");
! 205: fail_unless(password_changed, "password should have been changed");
! 206: abort_unless(login != NULL, "returned NULL!");
! 207: fail_unless(strncmp(login, "none", 4) == 0, "login should be 'none'");
! 208: fail_unless(!login_changed, "login should not have been changed");
! 209:
! 210: UNITTEST_STOP
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>