From be8f62f3ccb954ba45fbf627ce418b5b0c2aaa19 Mon Sep 17 00:00:00 2001
From: robot-piglet <robot-piglet@yandex-team.com>
Date: Thu, 13 Jun 2024 16:36:24 +0300
Subject: Intermediate changes

---
 .../ut_gtest/case_insensitive_string_compare.cpp      | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

(limited to 'library/cpp/case_insensitive_string')

diff --git a/library/cpp/case_insensitive_string/ut_gtest/case_insensitive_string_compare.cpp b/library/cpp/case_insensitive_string/ut_gtest/case_insensitive_string_compare.cpp
index fa37e075b8..cecd6f5044 100644
--- a/library/cpp/case_insensitive_string/ut_gtest/case_insensitive_string_compare.cpp
+++ b/library/cpp/case_insensitive_string/ut_gtest/case_insensitive_string_compare.cpp
@@ -54,21 +54,24 @@ TEST(CaseInsensitiveAsciiString, CompareAsciiWithoutNullBytes) {
     }
 }
 
-TEST(CaseInsensitiveAsciiString, MaySupportLocales) {
+TEST(CaseInsensitiveAsciiString, UnspecifiedBehaviorForNonAsciiStrings) {
     TLocaleGuard loc("ru_RU.CP1251");
     if (loc.Error()) {
         GTEST_SKIP() << "ru_RU.CP1251 locale is not available: " << loc.Error();
     }
-    // strncasecmp is locale-dependent, not sure about strnicmp
+    // - strncasecmp in glibc is locale-dependent.
+    // - not sure about strnicmp (probably also locale-dependent).
+    // - strncasecmp in musl and bionic ignores locales.
+    // - ASan interceptor for strncasecmp ignores locales
     {
-        TCaseInsensitiveStringBuf s1 = "\xc0\xc1\xc2";  // "АБВ"
-        TCaseInsensitiveStringBuf s2 = "\xe0\xe1\xe2";  // "абв"
-        EXPECT_EQ(s1, s2);
+        TCaseInsensitiveAsciiStringBuf s1 = "\xc0\xc1\xc2";  // "АБВ"
+        TCaseInsensitiveAsciiStringBuf s2 = "\xe0\xe1\xe2";  // "абв"
+        EXPECT_TRUE(s1 == s2 || s1 < s2);
     }
     {
-        TCaseInsensitiveStringBuf s1 = "\xc0\xc1\xc3";  // "АБГ"
-        TCaseInsensitiveStringBuf s2 = "\xe0\xe1\xe2";  // "абв"
-        EXPECT_GT(s1, s2);
+        TCaseInsensitiveAsciiStringBuf s1 = "\xc0\xc1\xc3";  // "АБГ"
+        TCaseInsensitiveAsciiStringBuf s2 = "\xe0\xe1\xe2";  // "абв"
+        EXPECT_TRUE(s1 > s2 || s1 < s2);
     }
 }
 
-- 
cgit v1.2.3