ChromiumUrlRequestTest.java 文件源码

java
阅读 24 收藏 0 点赞 0 评论 0

项目:chromium-net-for-android 作者:
@LargeTest
@Feature({"Cronet"})
public void testNoWriteAfterCancelOnAnotherThread() throws Exception {
    // This test verifies that WritableByteChannel.write is not called after
    // WritableByteChannel.close if request is canceled from another
    // thread.
    for (int i = 0; i < 100; ++i) {
        HashMap<String, String> headers = new HashMap<String, String>();
        TestByteChannel channel = new TestByteChannel();
        TestHttpUrlRequestListener listener =
                new TestHttpUrlRequestListener();

        // Create request.
        final HttpUrlRequest request =
                mTestFramework.mRequestFactory.createRequest(NativeTestServer.getSuccessURL(),
                        HttpUrlRequest.REQUEST_PRIORITY_LOW, headers, channel, listener);
        request.start();
        listener.blockForStart();
        Runnable cancelTask = new Runnable() {
            public void run() {
                request.cancel();
            }
        };
        Executors.newCachedThreadPool().execute(cancelTask);
        listener.blockForComplete();
        assertFalse(channel.isOpen());
        // Since getAllHeaders and other methods in
        // checkAfterAdapterDestroyed() acquire mLock, so this will happen
        // after the adapter is destroyed.
        checkAfterAdapterDestroyed(request);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号