Adding an end to end test for QUIC, and fixing the bugs it turned up.

Review URL: https://chromiumcodereview.appspot.com/13004022

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191529 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/net.gyp b/net/net.gyp
index 46d8225..9b94caa 100644
--- a/net/net.gyp
+++ b/net/net.gyp
@@ -2454,13 +2454,35 @@
             'net',
           ],
           'sources': [
+            'tools/quic/quic_client.cc',
+            'tools/quic/quic_client.h',
+            'tools/quic/quic_client_session.cc',
+            'tools/quic/quic_client_session.h',
+            'tools/quic/quic_dispatcher.h',
+            'tools/quic/quic_dispatcher.cc',
             'tools/quic/quic_epoll_clock.cc',
             'tools/quic/quic_epoll_clock.h',
             'tools/quic/quic_epoll_connection_helper.cc',
             'tools/quic/quic_epoll_connection_helper.h',
+            'tools/quic/quic_in_memory_cache.cc',
+            'tools/quic/quic_in_memory_cache.h',
             'tools/quic/quic_packet_writer.h',
+            'tools/quic/quic_reliable_client_stream.cc',
+            'tools/quic/quic_reliable_client_stream.h',
+            'tools/quic/quic_reliable_server_stream.cc',
+            'tools/quic/quic_reliable_server_stream.h',
+            'tools/quic/quic_server.cc',
+            'tools/quic/quic_server.h',
+            'tools/quic/quic_server_session.cc',
+            'tools/quic/quic_server_session.h',
             'tools/quic/quic_socket_utils.cc',
             'tools/quic/quic_socket_utils.h',
+            'tools/quic/quic_spdy_client_stream.cc',
+            'tools/quic/quic_spdy_client_stream.h',
+            'tools/quic/quic_spdy_server_stream.cc',
+            'tools/quic/quic_spdy_server_stream.h',
+            'tools/quic/quic_time_wait_list_manager.h',
+            'tools/quic/quic_time_wait_list_manager.cc',
             'tools/quic/spdy_utils.cc',
             'tools/quic/spdy_utils.h',
           ],
@@ -2475,15 +2497,7 @@
             'quic_library',
           ],
           'sources': [
-            'tools/quic/quic_client.cc',
-            'tools/quic/quic_client.h',
             'tools/quic/quic_client_bin.cc',
-            'tools/quic/quic_client_session.cc',
-            'tools/quic/quic_client_session.h',
-            'tools/quic/quic_reliable_client_stream.cc',
-            'tools/quic/quic_reliable_client_stream.h',
-            'tools/quic/quic_spdy_client_stream.cc',
-            'tools/quic/quic_spdy_client_stream.h',
           ],
         },
         {
@@ -2496,23 +2510,31 @@
             'quic_library',
           ],
           'sources': [
-            'tools/quic/quic_dispatcher.h',
-            'tools/quic/quic_dispatcher.cc',
-            'tools/quic/quic_in_memory_cache.cc',
-            'tools/quic/quic_in_memory_cache.h',
-            'tools/quic/quic_reliable_server_stream.cc',
-            'tools/quic/quic_reliable_server_stream.h',
-            'tools/quic/quic_server.cc',
-            'tools/quic/quic_server.h',
             'tools/quic/quic_server_bin.cc',
-            'tools/quic/quic_server_session.cc',
-            'tools/quic/quic_server_session.h',
-            'tools/quic/quic_spdy_server_stream.cc',
-            'tools/quic/quic_spdy_server_stream.h',
-            'tools/quic/quic_time_wait_list_manager.h',
-            'tools/quic/quic_time_wait_list_manager.cc',
           ],
         },
+        {
+          'target_name': 'quic_unittests',                                            
+          'type': '<(gtest_target_type)',    
+          'dependencies': [
+            '../base/base.gyp:test_support_base',
+            '../testing/gtest.gyp:gtest',
+            'net',                                                     
+            'quic_library',                                                      
+          ],
+          'sources': [
+            'quic/test_tools/quic_session_peer.cc',
+            'quic/test_tools/quic_session_peer.h',
+            'quic/test_tools/reliable_quic_stream_peer.cc',
+            'quic/test_tools/reliable_quic_stream_peer.h',
+            'tools/quic/end_to_end_test.cc',
+            'tools/quic/test_tools/http_message_test_utils.cc',
+            'tools/quic/test_tools/http_message_test_utils.h',
+            'tools/quic/test_tools/quic_test_client.cc',
+            'tools/quic/test_tools/quic_test_client.h',
+            'tools/quic/test_tools/run_all_unittests.cc',
+          ],
+        }
       ]
     }],
     ['OS=="android"', {