(root)/
sed-4.9/
gnulib-tests/
test-strverscmp.c
       1  /* Test of strverscmp() function.
       2     Copyright (C) 2008-2022 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)
      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  }