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
string
valid_str(
"abcd 1234 - \342\200\224\342\200\223\342\210\222 - xyz789"
);
47
EXPECT_TRUE
(
IsStructurallyValidUTF8
(valid_str.data(),
48
valid_str.size()));
49
// Additional check for pointer alignment
50
for
(
int
i
= 1;
i
< 8; ++
i
) {
51
EXPECT_TRUE
(
IsStructurallyValidUTF8
(valid_str.data() +
i
,
52
valid_str.size() -
i
));
53
}
54
}
55
56
TEST
(StructurallyValidTest, InvalidUTF8String) {
57
const
string
invalid_str(
"abcd\xA0\xB0\xA0\xB0\xA0\xB0 - xyz789"
);
58
EXPECT_FALSE
(
IsStructurallyValidUTF8
(invalid_str.data(),
59
invalid_str.size()));
60
// Additional check for pointer alignment
61
for
(
int
i
= 1;
i
< 8; ++
i
) {
62
EXPECT_FALSE
(
IsStructurallyValidUTF8
(invalid_str.data() +
i
,
63
invalid_str.size() -
i
));
64
}
65
}
66
67
}
// namespace
68
}
// namespace internal
69
}
// namespace protobuf
70
}
// namespace google
gtest.h
EXPECT_TRUE
#define EXPECT_TRUE(cond)
Definition:
glog/src/googletest.h:137
i
int i
Definition:
gmock-matchers_test.cc:764
common.h
google::protobuf.internal::IsStructurallyValidUTF8
PROTOBUF_EXPORT bool IsStructurallyValidUTF8(const char *buf, int len)
Definition:
structurally_valid.cc:556
EXPECT_FALSE
#define EXPECT_FALSE(cond)
Definition:
glog/src/googletest.h:145
google::protobuf.internal::TEST
TEST(GeneratedMapFieldTest, Accessors)
Definition:
src/google/protobuf/map_test.cc:1837
internal
Definition:
any.pb.h:40
google
Definition:
data_proto2_to_proto3_util.h:11
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:59