mirror of
https://github.com/abseil/abseil-cpp.git
synced 2026-06-04 12:07:05 +08:00
Added test cases for invalid surrogates sequences.
While these are disabled now because the current implementation does not correctly handle them, this is a starting point for a future fix. PiperOrigin-RevId: 756431459 Change-Id: I9c498ce1a2e12baa32a46bcdc56e9354feee305a
This commit is contained in:
committed by
Copybara-Service
parent
a4950fba03
commit
0710718aca
@@ -1009,7 +1009,7 @@ TEST(WideStringLogFormatTest, Literal) {
|
||||
#undef ABSL_LOG_INTERNAL_WIDE_LITERAL
|
||||
#undef ABSL_LOG_INTERNAL_UTF8_LITERAL
|
||||
|
||||
TYPED_TEST(WideStringLogFormatTest, InvalidCharactersAreReplaced) {
|
||||
TYPED_TEST(WideStringLogFormatTest, IsolatedLowSurrogatesAreReplaced) {
|
||||
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
||||
|
||||
TypeParam value = L"AAA \xDC00 BBB";
|
||||
@@ -1024,6 +1024,74 @@ TYPED_TEST(WideStringLogFormatTest, InvalidCharactersAreReplaced) {
|
||||
LOG(INFO) << value;
|
||||
}
|
||||
|
||||
TYPED_TEST(WideStringLogFormatTest,
|
||||
DISABLED_IsolatedHighSurrogatesAreReplaced) {
|
||||
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
||||
|
||||
TypeParam value = L"AAA \xD800 BBB";
|
||||
// NOLINTNEXTLINE(readability/utf8)
|
||||
absl::string_view utf8_value = "AAA <20> BBB";
|
||||
// Currently, this is "AAA \xF0\x90 BBB".
|
||||
|
||||
EXPECT_CALL(test_sink, Send(AllOf(TextMessage(Eq(utf8_value)),
|
||||
ENCODED_MESSAGE(HasValues(ElementsAre(
|
||||
ValueWithStr(Eq(utf8_value))))))));
|
||||
|
||||
test_sink.StartCapturingLogs();
|
||||
LOG(INFO) << value;
|
||||
}
|
||||
|
||||
TYPED_TEST(WideStringLogFormatTest,
|
||||
DISABLED_ConsecutiveHighSurrogatesAreReplaced) {
|
||||
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
||||
|
||||
TypeParam value = L"AAA \xD800\xD800 BBB";
|
||||
// NOLINTNEXTLINE(readability/utf8)
|
||||
absl::string_view utf8_value = "AAA <20><> BBB";
|
||||
// Currently, this is "AAA \xF0\x90\xF0\x90 BBB".
|
||||
|
||||
EXPECT_CALL(test_sink, Send(AllOf(TextMessage(Eq(utf8_value)),
|
||||
ENCODED_MESSAGE(HasValues(ElementsAre(
|
||||
ValueWithStr(Eq(utf8_value))))))));
|
||||
|
||||
test_sink.StartCapturingLogs();
|
||||
LOG(INFO) << value;
|
||||
}
|
||||
|
||||
TYPED_TEST(WideStringLogFormatTest,
|
||||
DISABLED_HighHighLowSurrogateSequencesAreReplaced) {
|
||||
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
||||
|
||||
TypeParam value = L"AAA \xD800\xD800\xDC00 BBB";
|
||||
// NOLINTNEXTLINE(readability/utf8)
|
||||
absl::string_view utf8_value = "AAA <20>𐀀 BBB";
|
||||
// Currently, this is "AAA \xF0\x90𐀀 BBB".
|
||||
|
||||
EXPECT_CALL(test_sink, Send(AllOf(TextMessage(Eq(utf8_value)),
|
||||
ENCODED_MESSAGE(HasValues(ElementsAre(
|
||||
ValueWithStr(Eq(utf8_value))))))));
|
||||
|
||||
test_sink.StartCapturingLogs();
|
||||
LOG(INFO) << value;
|
||||
}
|
||||
|
||||
TYPED_TEST(WideStringLogFormatTest,
|
||||
DISABLED_TrailingHighSurrogatesAreReplaced) {
|
||||
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
||||
|
||||
TypeParam value = L"AAA \xD800";
|
||||
// NOLINTNEXTLINE(readability/utf8)
|
||||
absl::string_view utf8_value = "AAA <20>";
|
||||
// Currently, this is "AAA \xF0\x90".
|
||||
|
||||
EXPECT_CALL(test_sink, Send(AllOf(TextMessage(Eq(utf8_value)),
|
||||
ENCODED_MESSAGE(HasValues(ElementsAre(
|
||||
ValueWithStr(Eq(utf8_value))))))));
|
||||
|
||||
test_sink.StartCapturingLogs();
|
||||
LOG(INFO) << value;
|
||||
}
|
||||
|
||||
TYPED_TEST(WideStringLogFormatTest, EmptyWideString) {
|
||||
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user