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

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

DEFINITIONS

This source file includes following definitions.
  1. main

   1 /* Test of strverscmp() function.
   2    Copyright (C) 2008-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, or (at your option)
   7    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 Eric Blake <ebb9@byu.net>, 2008.  */
  18 
  19 #include <config.h>
  20 
  21 #include <string.h>
  22 
  23 #include "signature.h"
  24 SIGNATURE_CHECK (strverscmp, int, (const char *, const char *));
  25 
  26 #include "macros.h"
  27 
  28 int
  29 main (void)
     /* [previous][next][first][last][top][bottom][index][help] */
  30 {
  31   ASSERT (strverscmp ("", "") == 0);
  32   ASSERT (strverscmp ("a", "a") == 0);
  33   ASSERT (strverscmp ("a", "b") < 0);
  34   ASSERT (strverscmp ("b", "a") > 0);
  35   ASSERT (strverscmp ("000", "00") < 0);
  36   ASSERT (strverscmp ("00", "000") > 0);
  37   ASSERT (strverscmp ("a0", "a") > 0);
  38   ASSERT (strverscmp ("00", "01") < 0);
  39   ASSERT (strverscmp ("01", "010") < 0);
  40   ASSERT (strverscmp ("010", "09") < 0);
  41   ASSERT (strverscmp ("09", "0") < 0);
  42   ASSERT (strverscmp ("9", "10") < 0);
  43   ASSERT (strverscmp ("0a", "0") > 0);
  44 
  45   /* From glibc bug 9913.  */
  46   {
  47     static char const a[] = "B0075022800016.gbp.corp.com";
  48     static char const b[] = "B007502280067.gbp.corp.com";
  49     static char const c[] = "B007502357019.GBP.CORP.COM";
  50     ASSERT (strverscmp (a, b) < 0);
  51     ASSERT (strverscmp (b, c) < 0);
  52     ASSERT (strverscmp (a, c) < 0);
  53     ASSERT (strverscmp (b, a) > 0);
  54     ASSERT (strverscmp (c, b) > 0);
  55     ASSERT (strverscmp (c, a) > 0);
  56   }
  57 
  58   return 0;
  59 }

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