Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(367)

Unified Diff: components/cronet/android/test/test_upload_data_stream_handler.cc

Issue 2406273002: [Cronet] Test the libcronet that's shipped, not libcronet_test (Closed)
Patch Set: address two remaining comments Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/test/test_upload_data_stream_handler.cc
diff --git a/components/cronet/android/test/test_upload_data_stream_handler.cc b/components/cronet/android/test/test_upload_data_stream_handler.cc
index 8ddf76eb2868b1ed646206e80fd170aa8ad6ff56..6214638ea080bab673a9e9713af1e9cf02200904 100644
--- a/components/cronet/android/test/test_upload_data_stream_handler.cc
+++ b/components/cronet/android/test/test_upload_data_stream_handler.cc
@@ -11,6 +11,7 @@
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "base/bind.h"
+#include "components/cronet/android/test/cronet_test_util.h"
#include "jni/TestUploadDataStreamHandler_jni.h"
#include "net/base/net_errors.h"
#include "net/log/net_log_with_source.h"
@@ -24,15 +25,13 @@ static const size_t kReadBufferSize = 32768;
TestUploadDataStreamHandler::TestUploadDataStreamHandler(
std::unique_ptr<net::UploadDataStream> upload_data_stream,
JNIEnv* env,
- jobject jtest_upload_data_stream_handler)
+ jobject jtest_upload_data_stream_handler,
+ jlong jcontext_adapter)
: init_callback_invoked_(false),
read_callback_invoked_(false),
bytes_read_(0),
- network_thread_(new base::Thread("network")) {
+ network_thread_(TestUtil::GetTaskRunner(jcontext_adapter)) {
upload_data_stream_ = std::move(upload_data_stream);
- base::Thread::Options options;
- options.message_loop_type = base::MessageLoop::TYPE_IO;
- network_thread_->StartWithOptions(options);
jtest_upload_data_stream_handler_.Reset(env,
jtest_upload_data_stream_handler);
}
@@ -43,17 +42,13 @@ TestUploadDataStreamHandler::~TestUploadDataStreamHandler() {
void TestUploadDataStreamHandler::Destroy(
JNIEnv* env,
const JavaParamRef<jobject>& jcaller) {
- DCHECK(!network_thread_->task_runner()->BelongsToCurrentThread());
- // Stick network_thread_ in a local, so |this| may be destroyed from the
- // network thread before the network thread is destroyed.
- std::unique_ptr<base::Thread> network_thread = std::move(network_thread_);
- network_thread->task_runner()->DeleteSoon(FROM_HERE, this);
- // Deleting thread stops it after all tasks are completed.
- network_thread.reset();
+ DCHECK(!network_thread_->BelongsToCurrentThread());
+ network_thread_->DeleteSoon(FROM_HERE, this);
+ network_thread_ = nullptr;
mef 2016/11/16 18:45:44 I think there is a bug here. If |this| gets destro
pauljensen 2016/11/18 18:12:10 Done.
}
void TestUploadDataStreamHandler::OnInitCompleted(int res) {
- DCHECK(network_thread_->task_runner()->BelongsToCurrentThread());
+ DCHECK(network_thread_->BelongsToCurrentThread());
init_callback_invoked_ = true;
JNIEnv* env = base::android::AttachCurrentThread();
cronet::Java_TestUploadDataStreamHandler_onInitCompleted(
@@ -61,7 +56,7 @@ void TestUploadDataStreamHandler::OnInitCompleted(int res) {
}
void TestUploadDataStreamHandler::OnReadCompleted(int res) {
- DCHECK(network_thread_->task_runner()->BelongsToCurrentThread());
+ DCHECK(network_thread_->BelongsToCurrentThread());
read_callback_invoked_ = true;
bytes_read_ = res;
NotifyJavaReadCompleted();
@@ -69,24 +64,24 @@ void TestUploadDataStreamHandler::OnReadCompleted(int res) {
void TestUploadDataStreamHandler::Init(JNIEnv* env,
const JavaParamRef<jobject>& jcaller) {
- DCHECK(!network_thread_->task_runner()->BelongsToCurrentThread());
- network_thread_->task_runner()->PostTask(
+ DCHECK(!network_thread_->BelongsToCurrentThread());
+ network_thread_->PostTask(
FROM_HERE, base::Bind(&TestUploadDataStreamHandler::InitOnNetworkThread,
base::Unretained(this)));
}
void TestUploadDataStreamHandler::Read(JNIEnv* env,
const JavaParamRef<jobject>& jcaller) {
- DCHECK(!network_thread_->task_runner()->BelongsToCurrentThread());
- network_thread_->task_runner()->PostTask(
+ DCHECK(!network_thread_->BelongsToCurrentThread());
+ network_thread_->PostTask(
FROM_HERE, base::Bind(&TestUploadDataStreamHandler::ReadOnNetworkThread,
base::Unretained(this)));
}
void TestUploadDataStreamHandler::Reset(JNIEnv* env,
const JavaParamRef<jobject>& jcaller) {
- DCHECK(!network_thread_->task_runner()->BelongsToCurrentThread());
- network_thread_->task_runner()->PostTask(
+ DCHECK(!network_thread_->BelongsToCurrentThread());
+ network_thread_->PostTask(
FROM_HERE, base::Bind(&TestUploadDataStreamHandler::ResetOnNetworkThread,
base::Unretained(this)));
}
@@ -94,8 +89,8 @@ void TestUploadDataStreamHandler::Reset(JNIEnv* env,
void TestUploadDataStreamHandler::CheckInitCallbackNotInvoked(
JNIEnv* env,
const JavaParamRef<jobject>& jcaller) {
- DCHECK(!network_thread_->task_runner()->BelongsToCurrentThread());
- network_thread_->task_runner()->PostTask(
+ DCHECK(!network_thread_->BelongsToCurrentThread());
+ network_thread_->PostTask(
FROM_HERE, base::Bind(&TestUploadDataStreamHandler::
CheckInitCallbackNotInvokedOnNetworkThread,
base::Unretained(this)));
@@ -104,15 +99,15 @@ void TestUploadDataStreamHandler::CheckInitCallbackNotInvoked(
void TestUploadDataStreamHandler::CheckReadCallbackNotInvoked(
JNIEnv* env,
const JavaParamRef<jobject>& jcaller) {
- DCHECK(!network_thread_->task_runner()->BelongsToCurrentThread());
- network_thread_->task_runner()->PostTask(
+ DCHECK(!network_thread_->BelongsToCurrentThread());
+ network_thread_->PostTask(
FROM_HERE, base::Bind(&TestUploadDataStreamHandler::
CheckReadCallbackNotInvokedOnNetworkThread,
base::Unretained(this)));
}
void TestUploadDataStreamHandler::InitOnNetworkThread() {
- DCHECK(network_thread_->task_runner()->BelongsToCurrentThread());
+ DCHECK(network_thread_->BelongsToCurrentThread());
init_callback_invoked_ = false;
read_buffer_ = nullptr;
bytes_read_ = 0;
@@ -131,7 +126,7 @@ void TestUploadDataStreamHandler::InitOnNetworkThread() {
}
void TestUploadDataStreamHandler::ReadOnNetworkThread() {
- DCHECK(network_thread_->task_runner()->BelongsToCurrentThread());
+ DCHECK(network_thread_->BelongsToCurrentThread());
read_callback_invoked_ = false;
if (!read_buffer_.get())
read_buffer_ = new net::IOBufferWithSize(kReadBufferSize);
@@ -147,7 +142,7 @@ void TestUploadDataStreamHandler::ReadOnNetworkThread() {
}
void TestUploadDataStreamHandler::ResetOnNetworkThread() {
- DCHECK(network_thread_->task_runner()->BelongsToCurrentThread());
+ DCHECK(network_thread_->BelongsToCurrentThread());
read_buffer_ = nullptr;
bytes_read_ = 0;
upload_data_stream_->Reset();
@@ -157,21 +152,21 @@ void TestUploadDataStreamHandler::ResetOnNetworkThread() {
}
void TestUploadDataStreamHandler::CheckInitCallbackNotInvokedOnNetworkThread() {
- DCHECK(network_thread_->task_runner()->BelongsToCurrentThread());
+ DCHECK(network_thread_->BelongsToCurrentThread());
JNIEnv* env = base::android::AttachCurrentThread();
cronet::Java_TestUploadDataStreamHandler_onCheckInitCallbackNotInvoked(
env, jtest_upload_data_stream_handler_, !init_callback_invoked_);
}
void TestUploadDataStreamHandler::CheckReadCallbackNotInvokedOnNetworkThread() {
- DCHECK(network_thread_->task_runner()->BelongsToCurrentThread());
+ DCHECK(network_thread_->BelongsToCurrentThread());
JNIEnv* env = base::android::AttachCurrentThread();
cronet::Java_TestUploadDataStreamHandler_onCheckReadCallbackNotInvoked(
env, jtest_upload_data_stream_handler_, !read_callback_invoked_);
}
void TestUploadDataStreamHandler::NotifyJavaReadCompleted() {
- DCHECK(network_thread_->task_runner()->BelongsToCurrentThread());
+ DCHECK(network_thread_->BelongsToCurrentThread());
JNIEnv* env = base::android::AttachCurrentThread();
std::string data_read = "";
if (read_buffer_.get() && bytes_read_ > 0)
@@ -184,11 +179,13 @@ void TestUploadDataStreamHandler::NotifyJavaReadCompleted() {
static jlong CreateTestUploadDataStreamHandler(
JNIEnv* env,
const JavaParamRef<jobject>& jtest_upload_data_stream_handler,
- jlong jupload_data_stream) {
+ jlong jupload_data_stream,
+ jlong jcontext_adapter) {
std::unique_ptr<net::UploadDataStream> upload_data_stream(
reinterpret_cast<net::UploadDataStream*>(jupload_data_stream));
TestUploadDataStreamHandler* handler = new TestUploadDataStreamHandler(
- std::move(upload_data_stream), env, jtest_upload_data_stream_handler);
+ std::move(upload_data_stream), env, jtest_upload_data_stream_handler,
+ jcontext_adapter);
return reinterpret_cast<jlong>(handler);
}

Powered by Google App Engine
This is Rietveld 408576698