1*431ea2d0SNick Desaulniers //===-- Unittests for strcasecmp ------------------------------------------===// 2*431ea2d0SNick Desaulniers // 3*431ea2d0SNick Desaulniers // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*431ea2d0SNick Desaulniers // See https://llvm.org/LICENSE.txt for license information. 5*431ea2d0SNick Desaulniers // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*431ea2d0SNick Desaulniers // 7*431ea2d0SNick Desaulniers //===----------------------------------------------------------------------===// 8*431ea2d0SNick Desaulniers 9*431ea2d0SNick Desaulniers #include "src/strings/strcasecmp.h" 10*431ea2d0SNick Desaulniers #include "test/UnitTest/Test.h" 11*431ea2d0SNick Desaulniers 12*431ea2d0SNick Desaulniers TEST(LlvmLibcStrCaseCmpTest, EmptyStringsShouldReturnZero) { 13*431ea2d0SNick Desaulniers const char *s1 = ""; 14*431ea2d0SNick Desaulniers const char *s2 = ""; 15*431ea2d0SNick Desaulniers int result = LIBC_NAMESPACE::strcasecmp(s1, s2); 16*431ea2d0SNick Desaulniers ASSERT_EQ(result, 0); 17*431ea2d0SNick Desaulniers 18*431ea2d0SNick Desaulniers // Verify operands reversed. 19*431ea2d0SNick Desaulniers result = LIBC_NAMESPACE::strcasecmp(s2, s1); 20*431ea2d0SNick Desaulniers ASSERT_EQ(result, 0); 21*431ea2d0SNick Desaulniers } 22*431ea2d0SNick Desaulniers 23*431ea2d0SNick Desaulniers TEST(LlvmLibcStrCaseCmpTest, EmptyStringShouldNotEqualNonEmptyString) { 24*431ea2d0SNick Desaulniers const char *empty = ""; 25*431ea2d0SNick Desaulniers const char *s2 = "abc"; 26*431ea2d0SNick Desaulniers int result = LIBC_NAMESPACE::strcasecmp(empty, s2); 27*431ea2d0SNick Desaulniers // This should be '\0' - 'a' = -97 28*431ea2d0SNick Desaulniers ASSERT_LT(result, 0); 29*431ea2d0SNick Desaulniers 30*431ea2d0SNick Desaulniers // Similar case if empty string is second argument. 31*431ea2d0SNick Desaulniers const char *s3 = "123"; 32*431ea2d0SNick Desaulniers result = LIBC_NAMESPACE::strcasecmp(s3, empty); 33*431ea2d0SNick Desaulniers // This should be '1' - '\0' = 49 34*431ea2d0SNick Desaulniers ASSERT_GT(result, 0); 35*431ea2d0SNick Desaulniers } 36*431ea2d0SNick Desaulniers 37*431ea2d0SNick Desaulniers TEST(LlvmLibcStrCaseCmpTest, Case) { 38*431ea2d0SNick Desaulniers const char *s1 = "aB"; 39*431ea2d0SNick Desaulniers const char *s2 = "ab"; 40*431ea2d0SNick Desaulniers int result = LIBC_NAMESPACE::strcasecmp(s1, s2); 41*431ea2d0SNick Desaulniers ASSERT_EQ(result, 0); 42*431ea2d0SNick Desaulniers 43*431ea2d0SNick Desaulniers // Verify operands reversed. 44*431ea2d0SNick Desaulniers result = LIBC_NAMESPACE::strcasecmp(s2, s1); 45*431ea2d0SNick Desaulniers ASSERT_EQ(result, 0); 46*431ea2d0SNick Desaulniers } 47