aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/transport
diff options
context:
space:
mode:
authorGravatar Yash Tibrewal <yashkt@google.com>2018-11-16 15:27:13 -0800
committerGravatar Yash Tibrewal <yashkt@google.com>2018-11-16 18:11:42 -0800
commitbab043e8650799b91a4e40853e56439c2ddb15a7 (patch)
tree0b312ab9355dcc206e136a929fd6b58035b8d1d4 /test/core/transport
parentfc332d2c9247832af90792a59ff6d391e84bc8ae (diff)
Cleanup
Diffstat (limited to 'test/core/transport')
-rw-r--r--test/core/transport/chttp2/context_list_test.cc39
1 files changed, 34 insertions, 5 deletions
diff --git a/test/core/transport/chttp2/context_list_test.cc b/test/core/transport/chttp2/context_list_test.cc
index 1f7a38a107..3814184e16 100644
--- a/test/core/transport/chttp2/context_list_test.cc
+++ b/test/core/transport/chttp2/context_list_test.cc
@@ -18,12 +18,17 @@
#include "src/core/lib/iomgr/port.h"
+#include <new>
+#include <vector>
+
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/ext/transport/chttp2/transport/context_list.h"
+#include "src/core/lib/transport/transport.h"
+#include "test/core/util/mock_endpoint.h"
+#include "test/core/util/test_config.h"
#include <grpc/grpc.h>
-#include "test/core/util/test_config.h"
-
static void TestExecuteFlushesListVerifier(void* arg,
grpc_core::Timestamps* ts) {
GPR_ASSERT(arg != nullptr);
@@ -31,6 +36,8 @@ static void TestExecuteFlushesListVerifier(void* arg,
gpr_atm_rel_store(done, static_cast<gpr_atm>(1));
}
+static void discard_write(grpc_slice slice) {}
+
/** Tests that all ContextList elements in the list are flushed out on
* execute.
* Also tests that arg is passed correctly.
@@ -39,19 +46,41 @@ static void TestExecuteFlushesList() {
grpc_core::ContextList* list = nullptr;
grpc_http2_set_write_timestamps_callback(TestExecuteFlushesListVerifier);
#define NUM_ELEM 5
- grpc_chttp2_stream s[NUM_ELEM];
+ grpc_core::ExecCtx exec_ctx;
+ grpc_stream_refcount ref;
+ grpc_resource_quota* resource_quota =
+ grpc_resource_quota_create("context_list_test");
+ grpc_endpoint* mock_endpoint =
+ grpc_mock_endpoint_create(discard_write, resource_quota);
+ grpc_transport* t =
+ grpc_create_chttp2_transport(nullptr, mock_endpoint, true);
+ std::vector<grpc_chttp2_stream*> s;
+ s.reserve(NUM_ELEM);
gpr_atm verifier_called[NUM_ELEM];
for (auto i = 0; i < NUM_ELEM; i++) {
- s[i].context = &verifier_called[i];
+ s.push_back(static_cast<grpc_chttp2_stream*>(
+ gpr_malloc(grpc_transport_stream_size(t))));
+ grpc_transport_init_stream(reinterpret_cast<grpc_transport*>(t),
+ reinterpret_cast<grpc_stream*>(s[i]), &ref,
+ nullptr, nullptr);
+ s[i]->context = &verifier_called[i];
gpr_atm_rel_store(&verifier_called[i], static_cast<gpr_atm>(0));
- grpc_core::ContextList::Append(&list, &s[i]);
+ grpc_core::ContextList::Append(&list, s[i]);
}
grpc_core::Timestamps ts;
grpc_core::ContextList::Execute(list, &ts, GRPC_ERROR_NONE);
for (auto i = 0; i < NUM_ELEM; i++) {
GPR_ASSERT(gpr_atm_acq_load(&verifier_called[i]) ==
static_cast<gpr_atm>(1));
+ grpc_transport_destroy_stream(reinterpret_cast<grpc_transport*>(t),
+ reinterpret_cast<grpc_stream*>(s[i]),
+ nullptr);
+ exec_ctx.Flush();
+ gpr_free(s[i]);
}
+ grpc_transport_destroy(t);
+ grpc_resource_quota_unref(resource_quota);
+ exec_ctx.Flush();
}
static void TestContextList() { TestExecuteFlushesList(); }