root/maint/gnulib/tests/test-mbspcasecmp.c

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. main

   1 /* Test of case-insensitive string comparison function.
   2    Copyright (C) 2007-2021 Free Software Foundation, Inc.
   3 
   4    This program is free software: you can redistribute it and/or modify
   5    it under the terms of the GNU General Public License as published by
   6    the Free Software Foundation; either version 3 of the License, or
   7    (at your option) any later version.
   8 
   9    This program is distributed in the hope that it will be useful,
  10    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12    GNU General Public License for more details.
  13 
  14    You should have received a copy of the GNU General Public License
  15    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  16 
  17 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
  18 
  19 #include <config.h>
  20 
  21 #include <string.h>
  22 
  23 #include <locale.h>
  24 
  25 #include "macros.h"
  26 
  27 int
  28 main ()
     /* [previous][next][first][last][top][bottom][index][help] */
  29 {
  30   /* configure should already have checked that the locale is supported.  */
  31   if (setlocale (LC_ALL, "") == NULL)
  32     return 1;
  33 
  34   {
  35     const char string[] = "paragraph";
  36     ASSERT (mbspcasecmp (string, "Paragraph") == string + 9);
  37   }
  38 
  39   {
  40     const char string[] = "paragrapH";
  41     ASSERT (mbspcasecmp (string, "parAgRaph") == string + 9);
  42   }
  43 
  44   {
  45     const char string[] = "paragraph";
  46     ASSERT (mbspcasecmp (string, "paraLyzed") == NULL);
  47   }
  48 
  49   {
  50     const char string[] = "paraLyzed";
  51     ASSERT (mbspcasecmp (string, "paragraph") == NULL);
  52   }
  53 
  54   {
  55     const char string[] = "para";
  56     ASSERT (mbspcasecmp (string, "paragraph") == NULL);
  57   }
  58 
  59   {
  60     const char string[] = "paragraph";
  61     ASSERT (mbspcasecmp (string, "para") == string + 4);
  62   }
  63 
  64   /* The following tests shows how mbspcasecmp() is different from
  65      strncasecmp().  */
  66 
  67   {
  68     const char string[] = "\303\266zg\303\274rt\303\274k"; /* özgürtük */
  69     ASSERT (mbspcasecmp (string, "\303\226ZG\303\234R") == string + 7); /* özgür */
  70   }
  71 
  72   {
  73     const char string[] = "\303\226ZG\303\234Rt\303\274k"; /* özgürtük */
  74     ASSERT (mbspcasecmp (string, "\303\266zg\303\274r") == string + 7); /* özgür */
  75   }
  76 
  77   /* This test shows how strings of different size can compare equal.  */
  78 
  79   {
  80     const char string[] = "turkishtime";
  81     ASSERT (mbspcasecmp (string, "TURK\304\260SH") == string + 7);
  82   }
  83 
  84   {
  85     const char string[] = "TURK\304\260SHK\303\234LT\303\234R";
  86     ASSERT (mbspcasecmp (string, "turkish") == string + 8);
  87   }
  88 
  89   return 0;
  90 }

/* [previous][next][first][last][top][bottom][index][help] */