Go to the documentation of this file.
28 #include <gtest/gtest.h>
30 #include "absl/memory/memory.h"
41 TEST(GrpcSliceTest, MallocReturnsSomethingSensible) {
68 TEST(GrpcSliceTest, SliceNewReturnsSomethingSensible) {
79 static void set_mark(
void*
p) { *(
static_cast<int*
>(
p)) = 1; }
81 TEST(GrpcSliceTest, SliceNewWithUserData) {
106 TEST(GrpcSliceTest, SliceNewWithLenReturnsSomethingSensible) {
121 for (
i = 0;
i < num_refs;
i++) {
124 for (
i = 0;
i < num_refs;
i++) {
137 const auto length = GetParam();
156 for (
k = 0;
k < j -
i;
k++) {
176 const auto length = GetParam();
205 const auto length = GetParam();
235 std::vector<size_t>
out;
236 for (
size_t i = 0;
i < 128;
i++) {
246 static const char*
text =
"HELLO WORLD!";
256 TEST(GrpcSliceTest, MovedStringSlice) {
258 constexpr
char kSmallStr[] =
"hello12345";
259 char* small_ptr =
strdup(kSmallStr);
267 constexpr
char kSLargeStr[] =
"hello123456789123456789123456789";
268 char* large_ptr =
strdup(kSLargeStr);
277 large_ptr =
strdup(kSLargeStr);
286 constexpr
char kStr[] =
"foo";
295 TEST(SliceTest, FromSmallCopiedString) {
312 std::random_device
r;
313 for (
size_t i = 0;
i <
length; ++
i) {
314 str.push_back(
char(
r()));
319 TEST_P(SliceSizedTest, FromCopiedString) {
327 for (
size_t i = 0;
i <
str.size(); ++
i) {
338 std::vector<size_t>
out;
341 while (i < 1024 * 1024) {
353 size_t SumSlice(
const Slice&
slice) {
355 for (
size_t i = 0;
i <
slice.size(); ++
i) {
361 TEST(SliceTest, ExternalAsOwned) {
362 auto external_string = absl::make_unique<std::string>(RandomString(1024));
364 const auto initial_sum = SumSlice(
slice);
367 external_string.reset();
371 ASSERT_DEATH({ SumSlice(
slice); },
"");
376 TEST(SliceTest, ExternalTakeOwned) {
377 std::unique_ptr<std::string> external_string(
382 TEST(SliceTest, StaticSlice) {
383 static const char*
hello =
"hello";
397 TEST(SliceTest, SliceEquality) {
399 "hello world 123456789123456789123456789123456789123456789");
401 "hello world 123456789123456789123456789123456789123456789");
403 "this is not the same as the other two strings!!!!!!!!!!!!");
409 EXPECT_EQ(a,
"hello world 123456789123456789123456789123456789123456789");
411 EXPECT_EQ(c,
"this is not the same as the other two strings!!!!!!!!!!!!");
412 EXPECT_EQ(
"hello world 123456789123456789123456789123456789123456789", a);
414 EXPECT_EQ(
"this is not the same as the other two strings!!!!!!!!!!!!", c);
417 TEST(SliceTest, LetsGetMutable) {
430 for (
auto& c :
slice)
c++;
437 int main(
int argc,
char** argv) {
#define EXPECT_FALSE(condition)
struct grpc_slice_refcount * refcount
const grpc_slice & grpc_slice_ref_internal(const grpc_slice &slice)
grpc_slice grpc_slice_from_moved_string(grpc_core::UniquePtr< char > p)
GPRAPI grpc_slice grpc_slice_from_copied_string(const char *source)
GPRAPI grpc_slice grpc_slice_new(void *p, size_t len, void(*destroy)(void *))
static StaticSlice FromStaticString(const char *s)
grpc_slice SliceFromCopiedString(const std::string &str)
absl::string_view StringViewFromSlice(const grpc_slice &slice)
INSTANTIATE_TEST_SUITE_P(GrpcSliceSizedTest, GrpcSliceSizedTest, ::testing::ValuesIn([] { std::vector< size_t > out;for(size_t i=0;i< 128;i++) { out.push_back(i);} return out;}()), [](const testing::TestParamInfo< size_t > &info) { return std::to_string(info.param);})
GPRAPI grpc_slice grpc_slice_sub(grpc_slice s, size_t begin, size_t end)
static void check_head_tail(grpc_slice slice, grpc_slice head, grpc_slice tail)
GPRAPI grpc_slice grpc_slice_malloc(size_t length)
static void set_mark(void *p)
static z_const char hello[]
TEST(GrpcSliceTest, MallocReturnsSomethingSensible)
static Slice FromCopiedString(const char *s)
#define EXPECT_NE(val1, val2)
TEST_P(GrpcSliceSizedTest, SliceSubWorks)
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
#define GRPC_SLICE_START_PTR(slice)
GPRAPI grpc_slice grpc_slice_from_static_string(const char *source)
int main(int argc, char **argv)
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
std::unique_ptr< T, DefaultDeleteChar > UniquePtr
#define GRPC_SLICE_LENGTH(slice)
GPRAPI grpc_slice grpc_slice_new_with_user_data(void *p, size_t len, void(*destroy)(void *), void *user_data)
static void do_nothing_with_len_1(void *, size_t len)
struct grpc_slice::grpc_slice_data::grpc_slice_refcounted refcounted
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
static void do_nothing(void *)
static Slice FromExternalString(absl::string_view str)
union grpc_slice::grpc_slice_data data
#define GRPC_SLICE_INLINED_SIZE
GPRAPI grpc_slice grpc_slice_split_head(grpc_slice *s, size_t split)
#define EXPECT_TRUE(condition)
internal::ParamGenerator< typename std::iterator_traits< ForwardIterator >::value_type > ValuesIn(ForwardIterator begin, ForwardIterator end)
static bool to_string(zval *from)
grpc_slice grpc_slice_from_moved_buffer(grpc_core::UniquePtr< char > p, size_t len)
static int do_nothing_with_len_1_calls
void grpc_slice_unref_internal(const grpc_slice &slice)
GPRAPI grpc_slice grpc_slice_new_with_len(void *p, size_t len, void(*destroy)(void *, size_t))
GPRAPI grpc_slice grpc_slice_split_tail(grpc_slice *s, size_t split)
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:13