Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
z
Classes
Class List
Class Hierarchy
Class Members
All
:
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Properties
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
z
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
grpc
test
core
channel
call_finalization_test.cc
Go to the documentation of this file.
1
// Copyright 2021 gRPC authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#include "
src/core/lib/channel/call_finalization.h
"
16
17
#include <gtest/gtest.h>
18
19
#include "
src/core/lib/resource_quota/resource_quota.h
"
20
#include "
test/core/promise/test_context.h
"
21
22
namespace
grpc_core
{
23
24
static
auto
*
g_memory_allocator
=
new
MemoryAllocator
(
25
ResourceQuota::Default
()->memory_quota()->CreateMemoryAllocator(
"test"
));
26
27
TEST
(CallFinalizationTest, Works) {
28
auto
arena
=
MakeScopedArena
(1024,
g_memory_allocator
);
29
std::string
evidence;
30
TestContext<Arena>
context
(
arena
.get());
31
CallFinalization
finalization;
32
auto
p = std::make_shared<int>(42);
33
finalization.
Add
([&evidence, p](
const
grpc_call_final_info
* final_info) {
34
evidence +=
absl::StrCat
(
"FIRST"
, final_info->
error_string
, *p,
"\n"
);
35
});
36
finalization.
Add
([&evidence, p](
const
grpc_call_final_info
* final_info) {
37
evidence +=
absl::StrCat
(
"SECOND"
, final_info->
error_string
, *p,
"\n"
);
38
});
39
grpc_call_final_info
final_info{};
40
final_info.
error_string
=
"123"
;
41
finalization.
Run
(&final_info);
42
EXPECT_EQ
(evidence,
"SECOND12342\nFIRST12342\n"
);
43
}
44
45
}
// namespace grpc_core
46
47
int
main
(
int
argc,
char
** argv) {
48
::testing::InitGoogleTest
(&argc, argv);
49
return
RUN_ALL_TESTS
();
50
}
grpc_core::MakeScopedArena
ScopedArenaPtr MakeScopedArena(size_t initial_size, MemoryAllocator *memory_allocator)
Definition:
src/core/lib/resource_quota/arena.h:130
absl::StrCat
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
Definition:
abseil-cpp/absl/strings/str_cat.cc:98
grpc_event_engine::experimental::MemoryAllocator
Definition:
memory_allocator.h:35
grpc_core
Definition:
call_metric_recorder.h:31
grpc_core::CallFinalization::Add
void Add(F &&t)
Definition:
call_finalization.h:44
testing::internal::string
::std::string string
Definition:
bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
grpc_core::TEST
TEST(AvlTest, NoOp)
Definition:
avl_test.cc:21
arena
grpc_core::ScopedArenaPtr arena
Definition:
binder_transport_test.cc:237
EXPECT_EQ
#define EXPECT_EQ(a, b)
Definition:
iomgr/time_averaged_stats_test.cc:27
main
int main(int argc, char **argv)
Definition:
call_finalization_test.cc:47
grpc_core::TestContext
Definition:
activity_test.cc:248
grpc_core::CallFinalization::Run
void Run(const grpc_call_final_info *final_info)
Definition:
call_finalization.h:49
test_context.h
grpc_core::g_memory_allocator
static auto * g_memory_allocator
Definition:
call_finalization_test.cc:24
grpc_core::ResourceQuota::Default
static ResourceQuotaRefPtr Default()
Definition:
resource_quota.cc:27
RUN_ALL_TESTS
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition:
bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2471
resource_quota.h
grpc_call_final_info::error_string
const char * error_string
Definition:
channel_stack.h:98
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition:
bloaty/third_party/googletest/googletest/src/gtest.cc:6106
grpc_core::CallFinalization
Definition:
call_finalization.h:37
context
grpc::ClientContext context
Definition:
istio_echo_server_lib.cc:61
call_finalization.h
grpc_call_final_info
Definition:
channel_stack.h:95
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:42