File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / tests / unit / unit1304.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 10:01:16 2020 UTC (5 years ago) by misho
Branches: curl, MAIN
CVS tags: v7_70_0p4, HEAD
curl

    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>