cmp_unit_test.c 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. /*
  2. * GRUB -- GRand Unified Bootloader
  3. * Copyright (C) 2012 Free Software Foundation, Inc.
  4. *
  5. * GRUB is free software: you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation, either version 3 of the License, or
  8. * (at your option) any later version.
  9. *
  10. * GRUB is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. #include <stdio.h>
  19. #include <string.h>
  20. #include <grub/test.h>
  21. #include <grub/misc.h>
  22. GRUB_MOD_LICENSE ("GPLv3+");
  23. #define MSG "cmp test failed"
  24. /* Functional test main method. */
  25. static void
  26. cmp_test (void)
  27. {
  28. const char *s1 = "a";
  29. const char *s2 = "aa";
  30. const char *s3 = "â";
  31. grub_test_assert (grub_strlen (s1) == 1, MSG);
  32. grub_test_assert (grub_strlen (s2) == 2, MSG);
  33. grub_test_assert (grub_strlen (s3) == 2, MSG);
  34. grub_test_assert (grub_strcmp (s1, s1) == 0, MSG);
  35. grub_test_assert (grub_strcmp (s1, s2) < 0, MSG);
  36. grub_test_assert (grub_strcmp (s1, s3) < 0, MSG);
  37. grub_test_assert (grub_strcmp (s2, s1) > 0, MSG);
  38. grub_test_assert (grub_strcmp (s2, s2) == 0, MSG);
  39. grub_test_assert (grub_strcmp (s2, s3) < 0, MSG);
  40. grub_test_assert (grub_strcmp (s3, s1) > 0, MSG);
  41. grub_test_assert (grub_strcmp (s3, s2) > 0, MSG);
  42. grub_test_assert (grub_strcmp (s3, s3) == 0, MSG);
  43. grub_test_assert (grub_strcasecmp (s1, s1) == 0, MSG);
  44. grub_test_assert (grub_strcasecmp (s1, s2) < 0, MSG);
  45. grub_test_assert (grub_strcasecmp (s1, s3) < 0, MSG);
  46. grub_test_assert (grub_strcasecmp (s2, s1) > 0, MSG);
  47. grub_test_assert (grub_strcasecmp (s2, s2) == 0, MSG);
  48. grub_test_assert (grub_strcasecmp (s2, s3) < 0, MSG);
  49. grub_test_assert (grub_strcasecmp (s3, s1) > 0, MSG);
  50. grub_test_assert (grub_strcasecmp (s3, s2) > 0, MSG);
  51. grub_test_assert (grub_strcasecmp (s3, s3) == 0, MSG);
  52. grub_test_assert (grub_memcmp (s1, s1, 2) == 0, MSG);
  53. grub_test_assert (grub_memcmp (s1, s2, 2) < 0, MSG);
  54. grub_test_assert (grub_memcmp (s1, s3, 2) < 0, MSG);
  55. grub_test_assert (grub_memcmp (s2, s1, 2) > 0, MSG);
  56. grub_test_assert (grub_memcmp (s2, s2, 2) == 0, MSG);
  57. grub_test_assert (grub_memcmp (s2, s3, 2) < 0, MSG);
  58. grub_test_assert (grub_memcmp (s3, s1, 2) > 0, MSG);
  59. grub_test_assert (grub_memcmp (s3, s2, 2) > 0, MSG);
  60. grub_test_assert (grub_memcmp (s3, s3, 2) == 0, MSG);
  61. grub_test_assert (grub_memcmp (s1, s1, 1) == 0, MSG);
  62. grub_test_assert (grub_memcmp (s1, s2, 1) == 0, MSG);
  63. grub_test_assert (grub_memcmp (s1, s3, 1) < 0, MSG);
  64. grub_test_assert (grub_memcmp (s2, s1, 1) == 0, MSG);
  65. grub_test_assert (grub_memcmp (s2, s2, 1) == 0, MSG);
  66. grub_test_assert (grub_memcmp (s2, s3, 1) < 0, MSG);
  67. grub_test_assert (grub_memcmp (s3, s1, 1) > 0, MSG);
  68. grub_test_assert (grub_memcmp (s3, s2, 1) > 0, MSG);
  69. grub_test_assert (grub_memcmp (s3, s3, 1) == 0, MSG);
  70. grub_test_assert (grub_strncmp (s1, s1, 2) == 0, MSG);
  71. grub_test_assert (grub_strncmp (s1, s2, 2) < 0, MSG);
  72. grub_test_assert (grub_strncmp (s1, s3, 2) < 0, MSG);
  73. grub_test_assert (grub_strncmp (s2, s1, 2) > 0, MSG);
  74. grub_test_assert (grub_strncmp (s2, s2, 2) == 0, MSG);
  75. grub_test_assert (grub_strncmp (s2, s3, 2) < 0, MSG);
  76. grub_test_assert (grub_strncmp (s3, s1, 2) > 0, MSG);
  77. grub_test_assert (grub_strncmp (s3, s2, 2) > 0, MSG);
  78. grub_test_assert (grub_strncmp (s3, s3, 2) == 0, MSG);
  79. grub_test_assert (grub_strncmp (s1, s1, 1) == 0, MSG);
  80. grub_test_assert (grub_strncmp (s1, s2, 1) == 0, MSG);
  81. grub_test_assert (grub_strncmp (s1, s3, 1) < 0, MSG);
  82. grub_test_assert (grub_strncmp (s2, s1, 1) == 0, MSG);
  83. grub_test_assert (grub_strncmp (s2, s2, 1) == 0, MSG);
  84. grub_test_assert (grub_strncmp (s2, s3, 1) < 0, MSG);
  85. grub_test_assert (grub_strncmp (s3, s1, 1) > 0, MSG);
  86. grub_test_assert (grub_strncmp (s3, s2, 1) > 0, MSG);
  87. grub_test_assert (grub_strncmp (s3, s3, 1) == 0, MSG);
  88. grub_test_assert (grub_strncasecmp (s1, s1, 2) == 0, MSG);
  89. grub_test_assert (grub_strncasecmp (s1, s2, 2) < 0, MSG);
  90. grub_test_assert (grub_strncasecmp (s1, s3, 2) < 0, MSG);
  91. grub_test_assert (grub_strncasecmp (s2, s1, 2) > 0, MSG);
  92. grub_test_assert (grub_strncasecmp (s2, s2, 2) == 0, MSG);
  93. grub_test_assert (grub_strncasecmp (s2, s3, 2) < 0, MSG);
  94. grub_test_assert (grub_strncasecmp (s3, s1, 2) > 0, MSG);
  95. grub_test_assert (grub_strncasecmp (s3, s2, 2) > 0, MSG);
  96. grub_test_assert (grub_strncasecmp (s3, s3, 2) == 0, MSG);
  97. grub_test_assert (grub_strncasecmp (s1, s1, 1) == 0, MSG);
  98. grub_test_assert (grub_strncasecmp (s1, s2, 1) == 0, MSG);
  99. grub_test_assert (grub_strncasecmp (s1, s3, 1) < 0, MSG);
  100. grub_test_assert (grub_strncasecmp (s2, s1, 1) == 0, MSG);
  101. grub_test_assert (grub_strncasecmp (s2, s2, 1) == 0, MSG);
  102. grub_test_assert (grub_strncasecmp (s2, s3, 1) < 0, MSG);
  103. grub_test_assert (grub_strncasecmp (s3, s1, 1) > 0, MSG);
  104. grub_test_assert (grub_strncasecmp (s3, s2, 1) > 0, MSG);
  105. grub_test_assert (grub_strncasecmp (s3, s3, 1) == 0, MSG);
  106. grub_test_assert (strlen (s1) == 1, MSG);
  107. grub_test_assert (strlen (s2) == 2, MSG);
  108. grub_test_assert (strlen (s3) == 2, MSG);
  109. grub_test_assert (strcmp (s1, s1) == 0, MSG);
  110. grub_test_assert (strcmp (s1, s2) < 0, MSG);
  111. grub_test_assert (strcmp (s1, s3) < 0, MSG);
  112. grub_test_assert (strcmp (s2, s1) > 0, MSG);
  113. grub_test_assert (strcmp (s2, s2) == 0, MSG);
  114. grub_test_assert (strcmp (s2, s3) < 0, MSG);
  115. grub_test_assert (strcmp (s3, s1) > 0, MSG);
  116. grub_test_assert (strcmp (s3, s2) > 0, MSG);
  117. grub_test_assert (strcmp (s3, s3) == 0, MSG);
  118. grub_test_assert (memcmp (s1, s1, 2) == 0, MSG);
  119. grub_test_assert (memcmp (s1, s2, 2) < 0, MSG);
  120. grub_test_assert (memcmp (s1, s3, 2) < 0, MSG);
  121. grub_test_assert (memcmp (s2, s1, 2) > 0, MSG);
  122. grub_test_assert (memcmp (s2, s2, 2) == 0, MSG);
  123. grub_test_assert (memcmp (s2, s3, 2) < 0, MSG);
  124. grub_test_assert (memcmp (s3, s1, 2) > 0, MSG);
  125. grub_test_assert (memcmp (s3, s2, 2) > 0, MSG);
  126. grub_test_assert (memcmp (s3, s3, 2) == 0, MSG);
  127. grub_test_assert (memcmp (s1, s1, 1) == 0, MSG);
  128. grub_test_assert (memcmp (s1, s2, 1) == 0, MSG);
  129. grub_test_assert (memcmp (s1, s3, 1) < 0, MSG);
  130. grub_test_assert (memcmp (s2, s1, 1) == 0, MSG);
  131. grub_test_assert (memcmp (s2, s2, 1) == 0, MSG);
  132. grub_test_assert (memcmp (s2, s3, 1) < 0, MSG);
  133. grub_test_assert (memcmp (s3, s1, 1) > 0, MSG);
  134. grub_test_assert (memcmp (s3, s2, 1) > 0, MSG);
  135. grub_test_assert (memcmp (s3, s3, 1) == 0, MSG);
  136. grub_test_assert (strncmp (s1, s1, 2) == 0, MSG);
  137. grub_test_assert (strncmp (s1, s2, 2) < 0, MSG);
  138. grub_test_assert (strncmp (s1, s3, 2) < 0, MSG);
  139. grub_test_assert (strncmp (s2, s1, 2) > 0, MSG);
  140. grub_test_assert (strncmp (s2, s2, 2) == 0, MSG);
  141. grub_test_assert (strncmp (s2, s3, 2) < 0, MSG);
  142. grub_test_assert (strncmp (s3, s1, 2) > 0, MSG);
  143. grub_test_assert (strncmp (s3, s2, 2) > 0, MSG);
  144. grub_test_assert (strncmp (s3, s3, 2) == 0, MSG);
  145. grub_test_assert (strncmp (s1, s1, 1) == 0, MSG);
  146. grub_test_assert (strncmp (s1, s2, 1) == 0, MSG);
  147. grub_test_assert (strncmp (s1, s3, 1) < 0, MSG);
  148. grub_test_assert (strncmp (s2, s1, 1) == 0, MSG);
  149. grub_test_assert (strncmp (s2, s2, 1) == 0, MSG);
  150. grub_test_assert (strncmp (s2, s3, 1) < 0, MSG);
  151. grub_test_assert (strncmp (s3, s1, 1) > 0, MSG);
  152. grub_test_assert (strncmp (s3, s2, 1) > 0, MSG);
  153. grub_test_assert (strncmp (s3, s3, 1) == 0, MSG);
  154. grub_test_assert (strncasecmp (s1, s1, 2) == 0, MSG);
  155. grub_test_assert (strncasecmp (s1, s2, 2) < 0, MSG);
  156. grub_test_assert (strncasecmp (s1, s3, 2) < 0, MSG);
  157. grub_test_assert (strncasecmp (s2, s1, 2) > 0, MSG);
  158. grub_test_assert (strncasecmp (s2, s2, 2) == 0, MSG);
  159. grub_test_assert (strncasecmp (s2, s3, 2) < 0, MSG);
  160. grub_test_assert (strncasecmp (s3, s1, 2) > 0, MSG);
  161. grub_test_assert (strncasecmp (s3, s2, 2) > 0, MSG);
  162. grub_test_assert (strncasecmp (s3, s3, 2) == 0, MSG);
  163. grub_test_assert (strncasecmp (s1, s1, 1) == 0, MSG);
  164. grub_test_assert (strncasecmp (s1, s2, 1) == 0, MSG);
  165. grub_test_assert (strncasecmp (s1, s3, 1) < 0, MSG);
  166. grub_test_assert (strncasecmp (s2, s1, 1) == 0, MSG);
  167. grub_test_assert (strncasecmp (s2, s2, 1) == 0, MSG);
  168. grub_test_assert (strncasecmp (s2, s3, 1) < 0, MSG);
  169. grub_test_assert (strncasecmp (s3, s1, 1) > 0, MSG);
  170. grub_test_assert (strncasecmp (s3, s2, 1) > 0, MSG);
  171. grub_test_assert (strncasecmp (s3, s3, 1) == 0, MSG);
  172. }
  173. /* Register example_test method as a functional test. */
  174. GRUB_UNIT_TEST ("cmp_test", cmp_test);