grpc
third_party
protobuf
src
google
protobuf
stubs
protobuf/src/google/protobuf/stubs/structurally_valid_unittest.cc
Go to the documentation of this file.
1
// Protocol Buffers - Google's data interchange format
2
// Copyright 2008 Google Inc. All rights reserved.
3
// https://developers.google.com/protocol-buffers/
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are
7
// met:
8
//
9
// * Redistributions of source code must retain the above copyright
10
// notice, this list of conditions and the following disclaimer.
11
// * Redistributions in binary form must reproduce the above
12
// copyright notice, this list of conditions and the following disclaimer
13
// in the documentation and/or other materials provided with the
14
// distribution.
15
// * Neither the name of Google Inc. nor the names of its
16
// contributors may be used to endorse or promote products derived from
17
// this software without specific prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31
// Copyright 2008 Google Inc. All Rights Reserved.
32
// Author: xpeng@google.com (Peter Peng)
33
34
#include <google/protobuf/stubs/common.h>
35
#include <gtest/gtest.h>
36
37
namespace
google
{
38
namespace
protobuf
{
39
namespace
internal
{
40
namespace
{
41
42
TEST
(StructurallyValidTest, ValidUTF8String) {
43
// On GCC, this string can be written as:
44
// "abcd 1234 - \u2014\u2013\u2212"
45
// MSVC seems to interpret \u differently.
46
std::string
valid_str(
47
"abcd 1234 - \342\200\224\342\200\223\342\210\222 - xyz789"
);
48
EXPECT_TRUE
(
IsStructurallyValidUTF8
(valid_str.data(),
49
valid_str.size()));
50
// Additional check for pointer alignment
51
for
(
int
i = 1;
i
< 8; ++
i
) {
52
EXPECT_TRUE
(
IsStructurallyValidUTF8
(valid_str.data() + i,
53
valid_str.size() - i));
54
}
55
}
56
57
TEST
(StructurallyValidTest, InvalidUTF8String) {
58
const
std::string
invalid_str(
"abcd\xA0\xB0\xA0\xB0\xA0\xB0 - xyz789"
);
59
EXPECT_FALSE
(
IsStructurallyValidUTF8
(invalid_str.data(),
60
invalid_str.size()));
61
// Additional check for pointer alignment
62
for
(
int
i = 1;
i
< 8; ++
i
) {
63
EXPECT_FALSE
(
IsStructurallyValidUTF8
(invalid_str.data() + i,
64
invalid_str.size() - i));
65
}
66
}
67
68
}
// namespace
69
}
// namespace internal
70
}
// namespace protobuf
71
}
// namespace google
EXPECT_FALSE
#define EXPECT_FALSE(condition)
Definition:
bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1970
testing::internal::string
::std::string string
Definition:
bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
google::protobuf
Definition:
bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:12
google::protobuf.internal::IsStructurallyValidUTF8
PROTOBUF_EXPORT bool IsStructurallyValidUTF8(const char *buf, int len)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc:556
google::protobuf.internal::TEST
TEST(GeneratedMapFieldTest, Accessors)
Definition:
third_party/bloaty/third_party/protobuf/src/google/protobuf/map_test.cc:1847
EXPECT_TRUE
#define EXPECT_TRUE(condition)
Definition:
bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1967
internal
Definition:
benchmark/test/output_test_helper.cc:20
google
Definition:
bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:11
i
uint64_t i
Definition:
abseil-cpp/absl/container/btree_benchmark.cc:230
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:23