diff options
author | yang-g <yangg@google.com> | 2015-11-18 11:41:30 -0800 |
---|---|---|
committer | yang-g <yangg@google.com> | 2015-11-18 11:41:30 -0800 |
commit | 71b962634eceacae336b1c706829e4ad9621b397 (patch) | |
tree | 35378c669bf04c24097a403af65a5adb8c82e812 /tools | |
parent | 42630b010f398ca072a0ba89648855c3052c6594 (diff) | |
parent | 75b53d6a5d891fa33a9173318b1446faeaf154e4 (diff) |
merge with head
Diffstat (limited to 'tools')
-rw-r--r-- | tools/buildgen/plugins/transitive_dependencies.py | 63 | ||||
-rw-r--r-- | tools/doxygen/Doxyfile.c++ | 2 | ||||
-rw-r--r-- | tools/doxygen/Doxyfile.c++.internal | 2 | ||||
-rw-r--r-- | tools/doxygen/Doxyfile.core | 2 | ||||
-rw-r--r-- | tools/doxygen/Doxyfile.core.internal | 16 | ||||
-rw-r--r-- | tools/http2_interop/http2interop.go | 137 | ||||
-rw-r--r-- | tools/http2_interop/http2interop_test.go | 95 | ||||
-rw-r--r-- | tools/jenkins/grpc_interop_http2/Dockerfile | 36 | ||||
-rwxr-xr-x | tools/jenkins/grpc_interop_http2/build_interop.sh | 42 | ||||
-rwxr-xr-x | tools/jenkins/run_interop.sh | 2 | ||||
-rwxr-xr-x | tools/run_tests/port_server.py | 2 | ||||
-rw-r--r-- | tools/run_tests/report_utils.py | 28 | ||||
-rwxr-xr-x | tools/run_tests/run_interop_tests.py | 62 | ||||
-rwxr-xr-x | tools/run_tests/run_tests.py | 71 | ||||
-rw-r--r-- | tools/run_tests/sources_and_headers.json | 832 | ||||
-rw-r--r-- | tools/run_tests/tests.json | 836 |
16 files changed, 2073 insertions, 155 deletions
diff --git a/tools/buildgen/plugins/transitive_dependencies.py b/tools/buildgen/plugins/transitive_dependencies.py new file mode 100644 index 0000000000..c2d3da3a3b --- /dev/null +++ b/tools/buildgen/plugins/transitive_dependencies.py @@ -0,0 +1,63 @@ +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +"""Buildgen transitive dependencies + +This takes the list of libs, node_modules, and targets from our +yaml dictionary, and adds to each the transitive closure +of the list of dependencies. + +""" + +def get_lib(libs, name): + return next(lib for lib in libs if lib['name']==name) + +def transitive_deps(lib, libs): + if 'deps' in lib: + # Recursively call transitive_deps on each dependency, and take the union + return set.union(set(lib['deps']), + *[set(transitive_deps(get_lib(libs, dep), libs)) + for dep in lib['deps']]) + else: + return set() + +def mako_plugin(dictionary): + """The exported plugin code for transitive_dependencies. + + Each item in libs, node_modules, and targets can have a deps list. + We add a transitive_deps property to each with the transitive closure + of those dependency lists. + """ + libs = dictionary.get('libs') + node_modules = dictionary.get('node_modules') + targets = dictionary.get('targets') + + for target_list in (libs, node_modules, targets): + for target in target_list: + target['transitive_deps'] = transitive_deps(target, libs) diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++ index 5d592c8e0a..f07718515a 100644 --- a/tools/doxygen/Doxyfile.c++ +++ b/tools/doxygen/Doxyfile.c++ @@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC C++" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.11.0.0 +PROJECT_NUMBER = 0.12.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index bbd1706fb0..11aaa379ce 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC C++" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.11.0.0 +PROJECT_NUMBER = 0.12.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/tools/doxygen/Doxyfile.core b/tools/doxygen/Doxyfile.core index beb0128e41..e411abf300 100644 --- a/tools/doxygen/Doxyfile.core +++ b/tools/doxygen/Doxyfile.core @@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC Core" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.11.0.0 +PROJECT_NUMBER = 0.12.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index fbaad97867..766fb2f0a6 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC Core" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.11.0.0 +PROJECT_NUMBER = 0.12.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -791,6 +791,7 @@ src/core/channel/context.h \ src/core/channel/http_client_filter.h \ src/core/channel/http_server_filter.h \ src/core/channel/noop_filter.h \ +src/core/channel/subchannel_call_holder.h \ src/core/client_config/client_config.h \ src/core/client_config/connector.h \ src/core/client_config/initial_connect_string.h \ @@ -858,7 +859,6 @@ src/core/json/json_writer.h \ src/core/statistics/census_interface.h \ src/core/statistics/census_rpc_stats.h \ src/core/surface/api_trace.h \ -src/core/surface/byte_buffer_queue.h \ src/core/surface/call.h \ src/core/surface/call_test_only.h \ src/core/surface/channel.h \ @@ -867,6 +867,7 @@ src/core/surface/event_string.h \ src/core/surface/init.h \ src/core/surface/server.h \ src/core/surface/surface_trace.h \ +src/core/transport/byte_stream.h \ src/core/transport/chttp2/alpn.h \ src/core/transport/chttp2/bin_encoder.h \ src/core/transport/chttp2/frame.h \ @@ -876,6 +877,7 @@ src/core/transport/chttp2/frame_ping.h \ src/core/transport/chttp2/frame_rst_stream.h \ src/core/transport/chttp2/frame_settings.h \ src/core/transport/chttp2/frame_window_update.h \ +src/core/transport/chttp2/hpack_encoder.h \ src/core/transport/chttp2/hpack_parser.h \ src/core/transport/chttp2/hpack_table.h \ src/core/transport/chttp2/http2_errors.h \ @@ -883,14 +885,13 @@ src/core/transport/chttp2/huffsyms.h \ src/core/transport/chttp2/incoming_metadata.h \ src/core/transport/chttp2/internal.h \ src/core/transport/chttp2/status_conversion.h \ -src/core/transport/chttp2/stream_encoder.h \ src/core/transport/chttp2/stream_map.h \ src/core/transport/chttp2/timeout_encoding.h \ src/core/transport/chttp2/varint.h \ src/core/transport/chttp2_transport.h \ src/core/transport/connectivity_state.h \ src/core/transport/metadata.h \ -src/core/transport/stream_op.h \ +src/core/transport/metadata_batch.h \ src/core/transport/transport.h \ src/core/transport/transport_impl.h \ src/core/census/aggregation.h \ @@ -928,6 +929,7 @@ src/core/channel/connected_channel.c \ src/core/channel/http_client_filter.c \ src/core/channel/http_server_filter.c \ src/core/channel/noop_filter.c \ +src/core/channel/subchannel_call_holder.c \ src/core/client_config/client_config.c \ src/core/client_config/connector.c \ src/core/client_config/default_initial_connect_string.c \ @@ -999,7 +1001,6 @@ src/core/json/json_string.c \ src/core/json/json_writer.c \ src/core/surface/api_trace.c \ src/core/surface/byte_buffer.c \ -src/core/surface/byte_buffer_queue.c \ src/core/surface/byte_buffer_reader.c \ src/core/surface/call.c \ src/core/surface/call_details.c \ @@ -1016,6 +1017,7 @@ src/core/surface/server.c \ src/core/surface/server_chttp2.c \ src/core/surface/server_create.c \ src/core/surface/version.c \ +src/core/transport/byte_stream.c \ src/core/transport/chttp2/alpn.c \ src/core/transport/chttp2/bin_encoder.c \ src/core/transport/chttp2/frame_data.c \ @@ -1024,13 +1026,13 @@ src/core/transport/chttp2/frame_ping.c \ src/core/transport/chttp2/frame_rst_stream.c \ src/core/transport/chttp2/frame_settings.c \ src/core/transport/chttp2/frame_window_update.c \ +src/core/transport/chttp2/hpack_encoder.c \ src/core/transport/chttp2/hpack_parser.c \ src/core/transport/chttp2/hpack_table.c \ src/core/transport/chttp2/huffsyms.c \ src/core/transport/chttp2/incoming_metadata.c \ src/core/transport/chttp2/parsing.c \ src/core/transport/chttp2/status_conversion.c \ -src/core/transport/chttp2/stream_encoder.c \ src/core/transport/chttp2/stream_lists.c \ src/core/transport/chttp2/stream_map.c \ src/core/transport/chttp2/timeout_encoding.c \ @@ -1039,7 +1041,7 @@ src/core/transport/chttp2/writing.c \ src/core/transport/chttp2_transport.c \ src/core/transport/connectivity_state.c \ src/core/transport/metadata.c \ -src/core/transport/stream_op.c \ +src/core/transport/metadata_batch.c \ src/core/transport/transport.c \ src/core/transport/transport_op_string.c \ src/core/census/context.c \ diff --git a/tools/http2_interop/http2interop.go b/tools/http2_interop/http2interop.go index f1bca7fe13..8585a044e5 100644 --- a/tools/http2_interop/http2interop.go +++ b/tools/http2_interop/http2interop.go @@ -2,15 +2,38 @@ package http2interop import ( "crypto/tls" + "crypto/x509" "fmt" "io" - "log" + "net" + "testing" + "time" ) const ( Preface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" ) +var ( + defaultTimeout = 1 * time.Second +) + +type HTTP2InteropCtx struct { + // Inputs + ServerHost string + ServerPort int + UseTLS bool + UseTestCa bool + ServerHostnameOverride string + + T *testing.T + + // Derived + serverSpec string + authority string + rootCAs *x509.CertPool +} + func parseFrame(r io.Reader) (Frame, error) { fh := FrameHeader{} if err := fh.Parse(r); err != nil { @@ -49,22 +72,8 @@ func streamFrame(w io.Writer, f Frame) error { return nil } -func getHttp2Conn(addr string) (*tls.Conn, error) { - config := &tls.Config{ - InsecureSkipVerify: true, - NextProtos: []string{"h2"}, - } - - conn, err := tls.Dial("tcp", addr, config) - if err != nil { - return nil, err - } - - return conn, nil -} - -func testClientShortSettings(addr string, length int) error { - c, err := getHttp2Conn(addr) +func testClientShortSettings(ctx *HTTP2InteropCtx, length int) error { + c, err := connect(ctx) if err != nil { return err } @@ -82,22 +91,22 @@ func testClientShortSettings(addr string, length int) error { Data: make([]byte, length), } if err := streamFrame(c, sf); err != nil { + ctx.T.Log("Unable to stream frame", sf) return err } for { - frame, err := parseFrame(c) - if err != nil { + if _, err := parseFrame(c); err != nil { + ctx.T.Log("Unable to parse frame") return err } - log.Println(frame) } return nil } -func testClientPrefaceWithStreamId(addr string) error { - c, err := getHttp2Conn(addr) +func testClientPrefaceWithStreamId(ctx *HTTP2InteropCtx) error { + c, err := connect(ctx) if err != nil { return err } @@ -119,18 +128,16 @@ func testClientPrefaceWithStreamId(addr string) error { } for { - frame, err := parseFrame(c) - if err != nil { + if _, err := parseFrame(c); err != nil { return err } - log.Println(frame) } return nil } -func testUnknownFrameType(addr string) error { - c, err := getHttp2Conn(addr) +func testUnknownFrameType(ctx *HTTP2InteropCtx) error { + c, err := connect(ctx) if err != nil { return err } @@ -143,6 +150,7 @@ func testUnknownFrameType(addr string) error { // Send some settings, which are part of the client preface sf := &SettingsFrame{} if err := streamFrame(c, sf); err != nil { + ctx.T.Log("Unable to stream frame", sf) return err } @@ -154,6 +162,7 @@ func testUnknownFrameType(addr string) error { }, } if err := streamFrame(c, fh); err != nil { + ctx.T.Log("Unable to stream frame", fh) return err } } @@ -162,12 +171,14 @@ func testUnknownFrameType(addr string) error { Data: []byte("01234567"), } if err := streamFrame(c, pf); err != nil { + ctx.T.Log("Unable to stream frame", sf) return err } for { frame, err := parseFrame(c) if err != nil { + ctx.T.Log("Unable to parse frame") return err } if npf, ok := frame.(*PingFrame); !ok { @@ -183,8 +194,8 @@ func testUnknownFrameType(addr string) error { return nil } -func testShortPreface(addr string, prefacePrefix string) error { - c, err := getHttp2Conn(addr) +func testShortPreface(ctx *HTTP2InteropCtx, prefacePrefix string) error { + c, err := connect(ctx) if err != nil { return err } @@ -201,17 +212,15 @@ func testShortPreface(addr string, prefacePrefix string) error { return err } -func testTLSMaxVersion(addr string, version uint16) error { - config := &tls.Config{ - InsecureSkipVerify: true, - NextProtos: []string{"h2"}, - MaxVersion: version, - } - conn, err := tls.Dial("tcp", addr, config) +func testTLSMaxVersion(ctx *HTTP2InteropCtx, version uint16) error { + config := buildTlsConfig(ctx) + config.MaxVersion = version + conn, err := connectWithTls(ctx, config) if err != nil { return err } defer conn.Close() + conn.SetDeadline(time.Now().Add(defaultTimeout)) buf := make([]byte, 256) if n, err := conn.Read(buf); err != nil { @@ -223,16 +232,15 @@ func testTLSMaxVersion(addr string, version uint16) error { return nil } -func testTLSApplicationProtocol(addr string) error { - config := &tls.Config{ - InsecureSkipVerify: true, - NextProtos: []string{"h2c"}, - } - conn, err := tls.Dial("tcp", addr, config) +func testTLSApplicationProtocol(ctx *HTTP2InteropCtx) error { + config := buildTlsConfig(ctx) + config.NextProtos = []string{"h2c"} + conn, err := connectWithTls(ctx, config) if err != nil { return err } defer conn.Close() + conn.SetDeadline(time.Now().Add(defaultTimeout)) buf := make([]byte, 256) if n, err := conn.Read(buf); err != nil { @@ -243,3 +251,48 @@ func testTLSApplicationProtocol(addr string) error { } return nil } + +func connect(ctx *HTTP2InteropCtx) (net.Conn, error) { + var conn net.Conn + var err error + if !ctx.UseTLS { + conn, err = connectWithoutTls(ctx) + } else { + config := buildTlsConfig(ctx) + conn, err = connectWithTls(ctx, config) + } + if err != nil { + return nil, err + } + conn.SetDeadline(time.Now().Add(defaultTimeout)) + + return conn, nil +} + +func buildTlsConfig(ctx *HTTP2InteropCtx) *tls.Config { + return &tls.Config{ + RootCAs: ctx.rootCAs, + NextProtos: []string{"h2"}, + ServerName: ctx.authority, + MinVersion: tls.VersionTLS12, + // TODO(carl-mastrangelo): remove this once all test certificates have been updated. + InsecureSkipVerify: true, + } +} + +func connectWithoutTls(ctx *HTTP2InteropCtx) (net.Conn, error) { + conn, err := net.DialTimeout("tcp", ctx.serverSpec, defaultTimeout) + if err != nil { + return nil, err + } + return conn, nil +} + +func connectWithTls(ctx *HTTP2InteropCtx, config *tls.Config) (*tls.Conn, error) { + conn, err := connectWithoutTls(ctx) + if err != nil { + return nil, err + } + + return tls.Client(conn, config), nil +} diff --git a/tools/http2_interop/http2interop_test.go b/tools/http2_interop/http2interop_test.go index 3b687c035e..dc2960048f 100644 --- a/tools/http2_interop/http2interop_test.go +++ b/tools/http2_interop/http2interop_test.go @@ -2,46 +2,117 @@ package http2interop import ( "crypto/tls" + "crypto/x509" + "strings" "flag" + "fmt" "io" + "io/ioutil" "os" + "strconv" "testing" ) var ( - serverSpec = flag.String("spec", ":50051", "The server spec to test") + serverHost = flag.String("server_host", "", "The host to test") + serverPort = flag.Int("server_port", 443, "The port to test") + useTls = flag.Bool("use_tls", true, "Should TLS tests be run") + // TODO: implement + testCase = flag.String("test_case", "", "What test cases to run") + + // The rest of these are unused, but present to fulfill the client interface + serverHostOverride = flag.String("server_host_override", "", "Unused") + useTestCa = flag.Bool("use_test_ca", false, "Unused") + defaultServiceAccount = flag.String("default_service_account", "", "Unused") + oauthScope = flag.String("oauth_scope", "", "Unused") + serviceAccountKeyFile = flag.String("service_account_key_file", "", "Unused") ) +func InteropCtx(t *testing.T) *HTTP2InteropCtx { + ctx := &HTTP2InteropCtx{ + ServerHost: *serverHost, + ServerPort: *serverPort, + ServerHostnameOverride: *serverHostOverride, + UseTLS: *useTls, + UseTestCa: *useTestCa, + T: t, + } + + ctx.serverSpec = ctx.ServerHost + if ctx.ServerPort != -1 { + ctx.serverSpec += ":" + strconv.Itoa(ctx.ServerPort) + } + if ctx.ServerHostnameOverride == "" { + ctx.authority = ctx.ServerHost + } else { + ctx.authority = ctx.ServerHostnameOverride + } + + if ctx.UseTestCa { + // It would be odd if useTestCa was true, but not useTls. meh + certData, err := ioutil.ReadFile("src/core/tsi/test_creds/ca.pem") + if err != nil { + t.Fatal(err) + } + + ctx.rootCAs = x509.NewCertPool() + if !ctx.rootCAs.AppendCertsFromPEM(certData) { + t.Fatal(fmt.Errorf("Unable to parse pem data")) + } + } + + return ctx +} + +func (ctx *HTTP2InteropCtx) Close() error { + // currently a noop + return nil +} + func TestShortPreface(t *testing.T) { + ctx := InteropCtx(t) for i := 0; i < len(Preface)-1; i++ { - if err := testShortPreface(*serverSpec, Preface[:i]+"X"); err != io.EOF { + if err := testShortPreface(ctx, Preface[:i]+"X"); err != io.EOF { t.Error("Expected an EOF but was", err) } } } func TestUnknownFrameType(t *testing.T) { - if err := testUnknownFrameType(*serverSpec); err != nil { + ctx := InteropCtx(t) + if err := testUnknownFrameType(ctx); err != nil { t.Fatal(err) } } func TestTLSApplicationProtocol(t *testing.T) { - if err := testTLSApplicationProtocol(*serverSpec); err != io.EOF { - t.Fatal("Expected an EOF but was", err) - } + ctx := InteropCtx(t) + err := testTLSApplicationProtocol(ctx); + matchError(t, err, "EOF") } func TestTLSMaxVersion(t *testing.T) { - if err := testTLSMaxVersion(*serverSpec, tls.VersionTLS11); err != io.EOF { - t.Fatal("Expected an EOF but was", err) - } + ctx := InteropCtx(t) + err := testTLSMaxVersion(ctx, tls.VersionTLS11); + matchError(t, err, "EOF", "server selected unsupported protocol") } func TestClientPrefaceWithStreamId(t *testing.T) { - if err := testClientPrefaceWithStreamId(*serverSpec); err != io.EOF { - t.Fatal("Expected an EOF but was", err) - } + ctx := InteropCtx(t) + err := testClientPrefaceWithStreamId(ctx) + matchError(t, err, "EOF") +} + +func matchError(t *testing.T, err error, matches ... string) { + if err == nil { + t.Fatal("Expected an error") + } + for _, s := range matches { + if strings.Contains(err.Error(), s) { + return + } + } + t.Fatalf("Error %v not in %+v", err, matches) } func TestMain(m *testing.M) { diff --git a/tools/jenkins/grpc_interop_http2/Dockerfile b/tools/jenkins/grpc_interop_http2/Dockerfile new file mode 100644 index 0000000000..bb60f09f24 --- /dev/null +++ b/tools/jenkins/grpc_interop_http2/Dockerfile @@ -0,0 +1,36 @@ +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +FROM golang:1.4 + +# Using login shell removes Go from path, so we add it. +RUN ln -s /usr/src/go/bin/go /usr/local/bin + +# Define the default command. +CMD ["bash"] diff --git a/tools/jenkins/grpc_interop_http2/build_interop.sh b/tools/jenkins/grpc_interop_http2/build_interop.sh new file mode 100755 index 0000000000..46ddaf929a --- /dev/null +++ b/tools/jenkins/grpc_interop_http2/build_interop.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Builds http2 interop client in a base image. +set -e + +mkdir -p /var/local/git +git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc + +# copy service account keys if available +cp -r /var/local/jenkins/service_account $HOME || true + +# compile the tests +(cd /var/local/git/grpc/tools/http2_interop && go test -c) + diff --git a/tools/jenkins/run_interop.sh b/tools/jenkins/run_interop.sh index 5dd477ed77..a424aea7fc 100755 --- a/tools/jenkins/run_interop.sh +++ b/tools/jenkins/run_interop.sh @@ -34,4 +34,4 @@ set -ex # Enter the gRPC repo root cd $(dirname $0)/../.. -tools/run_tests/run_interop_tests.py -l all -s all --cloud_to_prod --cloud_to_prod_auth --use_docker -t -j 12 $@ || true +tools/run_tests/run_interop_tests.py -l all -s all --cloud_to_prod --cloud_to_prod_auth --use_docker --http2_interop -t -j 12 $@ || true diff --git a/tools/run_tests/port_server.py b/tools/run_tests/port_server.py index 3b85486ebf..14e82b601e 100755 --- a/tools/run_tests/port_server.py +++ b/tools/run_tests/port_server.py @@ -42,7 +42,7 @@ import time # increment this number whenever making a change to ensure that # the changes are picked up by running CI servers # note that all changes must be backwards compatible -_MY_VERSION = 5 +_MY_VERSION = 7 if len(sys.argv) == 2 and sys.argv[1] == 'dump_version': diff --git a/tools/run_tests/report_utils.py b/tools/run_tests/report_utils.py index 57a93d0da0..bb9eca4254 100644 --- a/tools/run_tests/report_utils.py +++ b/tools/run_tests/report_utils.py @@ -108,10 +108,12 @@ def fill_one_test_result(shortname, resultset, html_str): def render_html_report(client_langs, server_langs, test_cases, auth_test_cases, - resultset, num_failures, cloud_to_prod): + http2_cases, resultset, num_failures, cloud_to_prod, + http2_interop): """Generate html report.""" sorted_test_cases = sorted(test_cases) sorted_auth_test_cases = sorted(auth_test_cases) + sorted_http2_cases = sorted(http2_cases) sorted_client_langs = sorted(client_langs) sorted_server_langs = sorted(server_langs) html_str = ('<!DOCTYPE html>\n' @@ -149,6 +151,30 @@ def render_html_report(client_langs, server_langs, test_cases, auth_test_cases, html_str = fill_one_test_result(shortname, resultset, html_str) html_str = '%s</tr>\n' % html_str html_str = '%s</table>\n' % html_str + if http2_interop: + # Each column header is the server language. + html_str = ('%s<h2>HTTP/2 Interop</h2>\n' + '<table style=\"width:100%%\" border=\"1\">\n' + '<tr bgcolor=\"#00BFFF\">\n' + '<th>Servers ►<br/>' + 'Test Cases ▼</th>\n') % html_str + for server_lang in sorted_server_langs: + html_str = '%s<th>%s\n' % (html_str, server_lang) + if cloud_to_prod: + html_str = '%s<th>%s\n' % (html_str, "prod") + html_str = '%s</tr>\n' % html_str + for test_case in sorted_http2_cases: + html_str = '%s<tr><td><b>%s</b></td>\n' % (html_str, test_case) + # Fill up the cells with test result. + for server_lang in sorted_server_langs: + shortname = 'cloud_to_cloud:%s:%s_server:%s' % ( + "http2", server_lang, test_case) + html_str = fill_one_test_result(shortname, resultset, html_str) + if cloud_to_prod: + shortname = 'cloud_to_prod:%s:%s' % ("http2", test_case) + html_str = fill_one_test_result(shortname, resultset, html_str) + html_str = '%s</tr>\n' % html_str + html_str = '%s</table>\n' % html_str if server_langs: for test_case in sorted_test_cases: # Each column header is the client language. diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index cebe246886..2634164a21 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -159,6 +159,31 @@ class GoLanguage: return 'go' +class Http2Client: + """Represents the HTTP/2 Interop Test + + This pretends to be a language in order to be built and run, but really it + isn't. + """ + def __init__(self): + self.client_cwd = None + self.safename = str(self) + + def client_args(self): + return ['tools/http2_interop/http2_interop.test'] + + def cloud_to_prod_env(self): + return {} + + def global_env(self): + return {} + + def unimplemented_test_cases(self): + return _TEST_CASES + + def __str__(self): + return 'http2' + class NodeLanguage: def __init__(self): @@ -281,6 +306,7 @@ _TEST_CASES = ['large_unary', 'empty_unary', 'ping_pong', _AUTH_TEST_CASES = ['compute_engine_creds', 'jwt_token_creds', 'oauth2_auth_token', 'per_rpc_creds'] +_HTTP2_TEST_CASES = ["tls"] def docker_run_cmdline(cmdline, image, docker_args=[], cwd=None, environ=None): """Wraps given cmdline array to create 'docker run' cmdline from it.""" @@ -439,6 +465,7 @@ def server_jobspec(language, docker_image): environ=environ, docker_args=['-p', str(_DEFAULT_SERVER_PORT), '--name', container_name]) + server_job = jobset.JobSpec( cmdline=docker_cmdline, environ=environ, @@ -516,6 +543,12 @@ argp.add_argument('--allow_flakes', action='store_const', const=True, help='Allow flaky tests to show as passing (re-runs failed tests up to five times)') +argp.add_argument('--http2_interop', + default=False, + action='store_const', + const=True, + help='Enable HTTP/2 interop tests') + args = argp.parse_args() servers = set(s for s in itertools.chain.from_iterable(_SERVERS @@ -539,12 +572,16 @@ languages = set(_LANGUAGES[l] for l in itertools.chain.from_iterable( _LANGUAGES.iterkeys() if x == 'all' else [x] for x in args.language)) + +http2Interop = Http2Client() if args.http2_interop else None docker_images={} if args.use_docker: # languages for which to build docker images languages_to_build = set(_LANGUAGES[k] for k in set([str(l) for l in languages] + [s for s in servers])) + if args.http2_interop: + languages_to_build.add(http2Interop) build_jobs = [] for l in languages_to_build: @@ -586,6 +623,15 @@ try: test_job = cloud_to_prod_jobspec(language, test_case, docker_image=docker_images.get(str(language))) jobs.append(test_job) + + # TODO(carl-mastrangelo): Currently prod TLS terminators aren't spec compliant. Reenable + # this once a better solution is in place. + if args.http2_interop and False: + for test_case in _HTTP2_TEST_CASES: + test_job = cloud_to_prod_jobspec(http2Interop, test_case, + docker_image=docker_images.get(str(http2Interop))) + jobs.append(test_job) + if args.cloud_to_prod_auth: for language in languages: @@ -613,6 +659,19 @@ try: server_port, docker_image=docker_images.get(str(language))) jobs.append(test_job) + + if args.http2_interop: + for test_case in _HTTP2_TEST_CASES: + if server_name == "go": + # TODO(carl-mastrangelo): Reenable after https://github.com/grpc/grpc-go/issues/434 + continue + test_job = cloud_to_cloud_jobspec(http2Interop, + test_case, + server_name, + server_host, + server_port, + docker_image=docker_images.get(str(http2Interop))) + jobs.append(test_job) if not jobs: print 'No jobs to run.' @@ -631,7 +690,8 @@ try: report_utils.render_html_report( set([str(l) for l in languages]), servers, _TEST_CASES, _AUTH_TEST_CASES, - resultset, num_failures, args.cloud_to_prod_auth or args.cloud_to_prod) + _HTTP2_TEST_CASES, resultset, num_failures, + args.cloud_to_prod_auth or args.cloud_to_prod, args.http2_interop) finally: # Check if servers are still running. diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index c78a120fc6..ab2b71b80e 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -147,9 +147,9 @@ class CLanguage(object): self.platform = platform_string() self.test_lang = test_lang - def test_specs(self, config, travis): + def test_specs(self, config, args): out = [] - binaries = get_c_tests(travis, self.test_lang) + binaries = get_c_tests(args.travis, self.test_lang) for target in binaries: if config.build_config in target['exclude_configs']: continue @@ -160,11 +160,16 @@ class CLanguage(object): binary = 'bins/%s/%s' % (config.build_config, target['name']) if os.path.isfile(binary): out.append(config.job_spec([binary], [binary])) - else: + elif args.regex == '.*' or platform_string() == 'windows': print '\nWARNING: binary not found, skipping', binary return sorted(out) - def make_targets(self): + def make_targets(self, test_regex): + if platform_string() != 'windows' and test_regex != '.*': + # use the regex to minimize the number of things to build + return [target['name'] + for target in get_c_tests(False, self.test_lang) + if re.search(test_regex, target['name'])] if platform_string() == 'windows': # don't build tools on windows just yet return ['buildtests_%s' % self.make_target] @@ -196,7 +201,7 @@ class CLanguage(object): class NodeLanguage(object): - def test_specs(self, config, travis): + def test_specs(self, config, args): return [config.job_spec(['tools/run_tests/run_node.sh'], None, environ=_FORCE_ENVIRON_FOR_WRAPPERS)] @@ -204,7 +209,7 @@ class NodeLanguage(object): # Default to 1 week cache expiration return [['tools/run_tests/pre_build_node.sh']] - def make_targets(self): + def make_targets(self, test_regex): return [] def build_steps(self): @@ -225,14 +230,14 @@ class NodeLanguage(object): class PhpLanguage(object): - def test_specs(self, config, travis): + def test_specs(self, config, args): return [config.job_spec(['src/php/bin/run_tests.sh'], None, environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): return [] - def make_targets(self): + def make_targets(self, test_regex): return ['static_c', 'shared_c'] def build_steps(self): @@ -257,7 +262,7 @@ class PythonLanguage(object): self._build_python_versions = ['2.7'] self._has_python_versions = [] - def test_specs(self, config, travis): + def test_specs(self, config, args): environment = dict(_FORCE_ENVIRON_FOR_WRAPPERS) environment['PYVER'] = '2.7' return [config.job_spec( @@ -271,7 +276,7 @@ class PythonLanguage(object): def pre_build_steps(self): return [] - def make_targets(self): + def make_targets(self, test_regex): return ['static_c', 'grpc_python_plugin', 'shared_c'] def build_steps(self): @@ -303,14 +308,14 @@ class PythonLanguage(object): class RubyLanguage(object): - def test_specs(self, config, travis): + def test_specs(self, config, args): return [config.job_spec(['tools/run_tests/run_ruby.sh'], None, environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): return [['tools/run_tests/pre_build_ruby.sh']] - def make_targets(self): + def make_targets(self, test_regex): return ['static_c'] def build_steps(self): @@ -333,7 +338,7 @@ class CSharpLanguage(object): def __init__(self): self.platform = platform_string() - def test_specs(self, config, travis): + def test_specs(self, config, args): assemblies = ['Grpc.Core.Tests', 'Grpc.Examples.Tests', 'Grpc.HealthCheck.Tests', @@ -361,7 +366,7 @@ class CSharpLanguage(object): else: return [['tools/run_tests/pre_build_csharp.sh']] - def make_targets(self): + def make_targets(self, test_regex): # For Windows, this target doesn't really build anything, # everything is build by buildall script later. if self.platform == 'windows': @@ -390,14 +395,14 @@ class CSharpLanguage(object): class ObjCLanguage(object): - def test_specs(self, config, travis): + def test_specs(self, config, args): return [config.job_spec(['src/objective-c/tests/run_tests.sh'], None, environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): return [] - def make_targets(self): + def make_targets(self, test_regex): return ['grpc_objective_c_plugin', 'interop_server'] def build_steps(self): @@ -418,14 +423,14 @@ class ObjCLanguage(object): class Sanity(object): - def test_specs(self, config, travis): + def test_specs(self, config, args): return [config.job_spec(['tools/run_tests/run_sanity.sh'], None), config.job_spec(['tools/run_tests/check_sources_and_headers.py'], None)] def pre_build_steps(self): return [] - def make_targets(self): + def make_targets(self, test_regex): return ['run_dep_checks'] def build_steps(self): @@ -446,13 +451,13 @@ class Sanity(object): class Build(object): - def test_specs(self, config, travis): + def test_specs(self, config, args): return [] def pre_build_steps(self): return [] - def make_targets(self): + def make_targets(self, test_regex): return ['static'] def build_steps(self): @@ -662,7 +667,7 @@ make_targets = {} for l in languages: makefile = l.makefile_name() make_targets[makefile] = make_targets.get(makefile, set()).union( - set(l.make_targets())) + set(l.make_targets(args.regex))) build_steps = list(set( jobset.JobSpec(cmdline, environ={'CONFIG': cfg}, flake_retries=5) @@ -744,7 +749,8 @@ def _start_port_server(port_server_port): running = False if running: current_version = int(subprocess.check_output( - [sys.executable, 'tools/run_tests/port_server.py', 'dump_version'])) + [sys.executable, os.path.abspath('tools/run_tests/port_server.py'), + 'dump_version'])) print 'my port server is version %d' % current_version running = (version >= current_version) if not running: @@ -755,13 +761,18 @@ def _start_port_server(port_server_port): fd, logfile = tempfile.mkstemp() os.close(fd) print 'starting port_server, with log file %s' % logfile - args = [sys.executable, 'tools/run_tests/port_server.py', '-p', '%d' % port_server_port, '-l', logfile] + args = [sys.executable, os.path.abspath('tools/run_tests/port_server.py'), + '-p', '%d' % port_server_port, '-l', logfile] env = dict(os.environ) env['BUILD_ID'] = 'pleaseDontKillMeJenkins' if platform.system() == 'Windows': + # Working directory of port server needs to be outside of Jenkins + # workspace to prevent file lock issues. + tempdir = tempfile.mkdtemp() port_server = subprocess.Popen( args, env=env, + cwd=tempdir, creationflags = 0x00000008, # detached process close_fds=True) else: @@ -830,12 +841,12 @@ def _calculate_num_runs_failures(list_of_results): return num_runs, num_failures def _build_and_run( - check_cancelled, newline_on_success, travis, cache, xml_report=None): + check_cancelled, newline_on_success, cache, xml_report=None): """Do one pass of building & running tests.""" # build latest sequentially num_failures, _ = jobset.run( build_steps, maxjobs=1, stop_on_failure=True, - newline_on_success=newline_on_success, travis=travis) + newline_on_success=newline_on_success, travis=args.travis) if num_failures: return 1 @@ -851,11 +862,11 @@ def _build_and_run( spec for config in run_configs for language in languages - for spec in language.test_specs(config, args.travis) + for spec in language.test_specs(config, args) if re.search(args.regex, spec.shortname)) # When running on travis, we want out test runs to be as similar as possible # for reproducibility purposes. - if travis: + if args.travis: massaged_one_run = sorted(one_run, key=lambda x: x.shortname) else: # whereas otherwise, we want to shuffle things up to give all tests a @@ -870,7 +881,7 @@ def _build_and_run( number_failures, resultset = jobset.run( all_runs, check_cancelled, newline_on_success=newline_on_success, - travis=travis, infinite_runs=infinite_runs, maxjobs=args.jobs, + travis=args.travis, infinite_runs=infinite_runs, maxjobs=args.jobs, stop_on_failure=args.stop_on_failure, cache=cache if not xml_report else None, add_env={'GRPC_TEST_PORT_SERVER': 'localhost:%d' % port_server_port}) @@ -895,7 +906,7 @@ def _build_and_run( number_failures, _ = jobset.run( post_tests_steps, maxjobs=1, stop_on_failure=True, - newline_on_success=newline_on_success, travis=travis) + newline_on_success=newline_on_success, travis=args.travis) if number_failures: return 3 @@ -916,7 +927,6 @@ if forever: previous_success = success success = _build_and_run(check_cancelled=have_files_changed, newline_on_success=False, - travis=args.travis, cache=test_cache) == 0 if not previous_success and success: jobset.message('SUCCESS', @@ -928,7 +938,6 @@ if forever: else: result = _build_and_run(check_cancelled=lambda: False, newline_on_success=args.newline_on_success, - travis=args.travis, cache=test_cache, xml_report=args.xml_report) if result == 0: diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 667d0a7f8d..6ef3476b7f 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -38,9 +38,9 @@ ], "headers": [], "language": "c", - "name": "chttp2_status_conversion_test", + "name": "chttp2_hpack_encoder_test", "src": [ - "test/core/transport/chttp2/status_conversion_test.c" + "test/core/transport/chttp2/hpack_encoder_test.c" ] }, { @@ -52,9 +52,9 @@ ], "headers": [], "language": "c", - "name": "chttp2_stream_encoder_test", + "name": "chttp2_status_conversion_test", "src": [ - "test/core/transport/chttp2/stream_encoder_test.c" + "test/core/transport/chttp2/status_conversion_test.c" ] }, { @@ -601,20 +601,6 @@ ], "headers": [], "language": "c", - "name": "grpc_stream_op_test", - "src": [ - "test/core/transport/stream_op_test.c" - ] - }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" - ], - "headers": [], - "language": "c", "name": "grpc_verify_jwt", "src": [ "test/core/security/verify_jwt.c" @@ -1922,6 +1908,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_compress", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_compress_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_compress", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -2117,6 +2118,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_compress", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_compress_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_compress", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -2417,6 +2433,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_fakesec", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_fakesec_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_fakesec", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -2612,6 +2643,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_fakesec", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_fakesec_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_fakesec", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -2912,6 +2958,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_full", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_full_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_full", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -3107,6 +3168,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_full", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_full_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_full", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -3407,6 +3483,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_full+poll", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_full+poll_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_full+poll", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -3602,6 +3693,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_full+poll", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_full+poll_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_full+poll", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -3902,6 +4008,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_oauth2", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_oauth2_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_oauth2", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -4097,6 +4218,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_oauth2", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_oauth2_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_oauth2", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -4397,6 +4533,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_proxy", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_proxy_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_proxy", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -4547,6 +4698,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_proxy", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_proxy_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_proxy", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -4832,6 +4998,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_sockpair", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -4982,6 +5163,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_sockpair", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -5267,6 +5463,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_sockpair+trace", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair+trace_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair+trace", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -5417,6 +5628,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_sockpair+trace", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair+trace_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair+trace", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -5702,6 +5928,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_sockpair_1byte", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_1byte_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair_1byte", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -5852,6 +6093,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_sockpair_1byte", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_1byte_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair_1byte", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -6137,6 +6393,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_ssl", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -6332,6 +6603,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_ssl", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -6632,6 +6918,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_ssl+poll", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl+poll_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl+poll", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -6827,6 +7128,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_ssl+poll", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl+poll_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl+poll", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -7127,6 +7443,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_ssl_proxy", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl_proxy_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl_proxy", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -7277,6 +7608,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_ssl_proxy", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl_proxy_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl_proxy", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -7562,6 +7908,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_uchannel", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uchannel_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uchannel", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -7757,6 +8118,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_uchannel", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uchannel_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uchannel", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -8057,6 +8433,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_uds", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uds_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uds", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -8237,6 +8628,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_uds", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uds_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uds", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -8537,6 +8943,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_uds+poll", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uds+poll_cancel_with_status_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uds+poll", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -8717,6 +9138,21 @@ "deps": [ "end2end_certs", "end2end_fixture_h2_uds+poll", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uds+poll_negative_deadline_test", + "src": [] + }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uds+poll", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -8994,6 +9430,20 @@ { "deps": [ "end2end_fixture_h2_compress", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_compress_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_compress", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -9176,6 +9626,20 @@ { "deps": [ "end2end_fixture_h2_compress", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_compress_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_compress", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -9442,6 +9906,20 @@ { "deps": [ "end2end_fixture_h2_full", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_full_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_full", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -9624,6 +10102,20 @@ { "deps": [ "end2end_fixture_h2_full", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_full_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_full", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -9890,6 +10382,20 @@ { "deps": [ "end2end_fixture_h2_full+poll", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_full+poll_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_full+poll", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -10072,6 +10578,20 @@ { "deps": [ "end2end_fixture_h2_full+poll", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_full+poll_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_full+poll", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -10338,6 +10858,20 @@ { "deps": [ "end2end_fixture_h2_proxy", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_proxy_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_proxy", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -10478,6 +11012,20 @@ { "deps": [ "end2end_fixture_h2_proxy", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_proxy_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_proxy", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -10730,6 +11278,20 @@ { "deps": [ "end2end_fixture_h2_sockpair", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_sockpair", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -10870,6 +11432,20 @@ { "deps": [ "end2end_fixture_h2_sockpair", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_sockpair", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -11122,6 +11698,20 @@ { "deps": [ "end2end_fixture_h2_sockpair+trace", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair+trace_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_sockpair+trace", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -11262,6 +11852,20 @@ { "deps": [ "end2end_fixture_h2_sockpair+trace", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair+trace_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_sockpair+trace", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -11514,6 +12118,20 @@ { "deps": [ "end2end_fixture_h2_sockpair_1byte", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_1byte_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_sockpair_1byte", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -11654,6 +12272,20 @@ { "deps": [ "end2end_fixture_h2_sockpair_1byte", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_1byte_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_sockpair_1byte", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -11906,6 +12538,20 @@ { "deps": [ "end2end_fixture_h2_uchannel", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uchannel_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_uchannel", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -12088,6 +12734,20 @@ { "deps": [ "end2end_fixture_h2_uchannel", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uchannel_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_uchannel", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -12354,6 +13014,20 @@ { "deps": [ "end2end_fixture_h2_uds", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uds_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_uds", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -12522,6 +13196,20 @@ { "deps": [ "end2end_fixture_h2_uds", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uds_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_uds", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -12788,6 +13476,20 @@ { "deps": [ "end2end_fixture_h2_uds+poll", + "end2end_test_cancel_with_status", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uds+poll_cancel_with_status_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_uds+poll", "end2end_test_census_simple_request", "gpr", "gpr_test_util", @@ -12956,6 +13658,20 @@ { "deps": [ "end2end_fixture_h2_uds+poll", + "end2end_test_negative_deadline", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uds+poll_negative_deadline_nosec_test", + "src": [] + }, + { + "deps": [ + "end2end_fixture_h2_uds+poll", "end2end_test_no_op", "gpr", "gpr_test_util", @@ -13314,6 +14030,7 @@ "src/core/channel/http_client_filter.h", "src/core/channel/http_server_filter.h", "src/core/channel/noop_filter.h", + "src/core/channel/subchannel_call_holder.h", "src/core/client_config/client_config.h", "src/core/client_config/connector.h", "src/core/client_config/initial_connect_string.h", @@ -13390,7 +14107,6 @@ "src/core/statistics/census_interface.h", "src/core/statistics/census_rpc_stats.h", "src/core/surface/api_trace.h", - "src/core/surface/byte_buffer_queue.h", "src/core/surface/call.h", "src/core/surface/call_test_only.h", "src/core/surface/channel.h", @@ -13399,6 +14115,7 @@ "src/core/surface/init.h", "src/core/surface/server.h", "src/core/surface/surface_trace.h", + "src/core/transport/byte_stream.h", "src/core/transport/chttp2/alpn.h", "src/core/transport/chttp2/bin_encoder.h", "src/core/transport/chttp2/frame.h", @@ -13408,6 +14125,7 @@ "src/core/transport/chttp2/frame_rst_stream.h", "src/core/transport/chttp2/frame_settings.h", "src/core/transport/chttp2/frame_window_update.h", + "src/core/transport/chttp2/hpack_encoder.h", "src/core/transport/chttp2/hpack_parser.h", "src/core/transport/chttp2/hpack_table.h", "src/core/transport/chttp2/http2_errors.h", @@ -13415,14 +14133,13 @@ "src/core/transport/chttp2/incoming_metadata.h", "src/core/transport/chttp2/internal.h", "src/core/transport/chttp2/status_conversion.h", - "src/core/transport/chttp2/stream_encoder.h", "src/core/transport/chttp2/stream_map.h", "src/core/transport/chttp2/timeout_encoding.h", "src/core/transport/chttp2/varint.h", "src/core/transport/chttp2_transport.h", "src/core/transport/connectivity_state.h", "src/core/transport/metadata.h", - "src/core/transport/stream_op.h", + "src/core/transport/metadata_batch.h", "src/core/transport/transport.h", "src/core/transport/transport_impl.h", "src/core/tsi/fake_transport_security.h", @@ -13469,6 +14186,8 @@ "src/core/channel/http_server_filter.h", "src/core/channel/noop_filter.c", "src/core/channel/noop_filter.h", + "src/core/channel/subchannel_call_holder.c", + "src/core/channel/subchannel_call_holder.h", "src/core/client_config/client_config.c", "src/core/client_config/client_config.h", "src/core/client_config/connector.c", @@ -13632,8 +14351,6 @@ "src/core/surface/api_trace.c", "src/core/surface/api_trace.h", "src/core/surface/byte_buffer.c", - "src/core/surface/byte_buffer_queue.c", - "src/core/surface/byte_buffer_queue.h", "src/core/surface/byte_buffer_reader.c", "src/core/surface/call.c", "src/core/surface/call.h", @@ -13660,6 +14377,8 @@ "src/core/surface/server_create.c", "src/core/surface/surface_trace.h", "src/core/surface/version.c", + "src/core/transport/byte_stream.c", + "src/core/transport/byte_stream.h", "src/core/transport/chttp2/alpn.c", "src/core/transport/chttp2/alpn.h", "src/core/transport/chttp2/bin_encoder.c", @@ -13677,6 +14396,8 @@ "src/core/transport/chttp2/frame_settings.h", "src/core/transport/chttp2/frame_window_update.c", "src/core/transport/chttp2/frame_window_update.h", + "src/core/transport/chttp2/hpack_encoder.c", + "src/core/transport/chttp2/hpack_encoder.h", "src/core/transport/chttp2/hpack_parser.c", "src/core/transport/chttp2/hpack_parser.h", "src/core/transport/chttp2/hpack_table.c", @@ -13690,8 +14411,6 @@ "src/core/transport/chttp2/parsing.c", "src/core/transport/chttp2/status_conversion.c", "src/core/transport/chttp2/status_conversion.h", - "src/core/transport/chttp2/stream_encoder.c", - "src/core/transport/chttp2/stream_encoder.h", "src/core/transport/chttp2/stream_lists.c", "src/core/transport/chttp2/stream_map.c", "src/core/transport/chttp2/stream_map.h", @@ -13706,8 +14425,8 @@ "src/core/transport/connectivity_state.h", "src/core/transport/metadata.c", "src/core/transport/metadata.h", - "src/core/transport/stream_op.c", - "src/core/transport/stream_op.h", + "src/core/transport/metadata_batch.c", + "src/core/transport/metadata_batch.h", "src/core/transport/transport.c", "src/core/transport/transport.h", "src/core/transport/transport_impl.h", @@ -13827,6 +14546,7 @@ "src/core/channel/http_client_filter.h", "src/core/channel/http_server_filter.h", "src/core/channel/noop_filter.h", + "src/core/channel/subchannel_call_holder.h", "src/core/client_config/client_config.h", "src/core/client_config/connector.h", "src/core/client_config/initial_connect_string.h", @@ -13894,7 +14614,6 @@ "src/core/statistics/census_interface.h", "src/core/statistics/census_rpc_stats.h", "src/core/surface/api_trace.h", - "src/core/surface/byte_buffer_queue.h", "src/core/surface/call.h", "src/core/surface/call_test_only.h", "src/core/surface/channel.h", @@ -13903,6 +14622,7 @@ "src/core/surface/init.h", "src/core/surface/server.h", "src/core/surface/surface_trace.h", + "src/core/transport/byte_stream.h", "src/core/transport/chttp2/alpn.h", "src/core/transport/chttp2/bin_encoder.h", "src/core/transport/chttp2/frame.h", @@ -13912,6 +14632,7 @@ "src/core/transport/chttp2/frame_rst_stream.h", "src/core/transport/chttp2/frame_settings.h", "src/core/transport/chttp2/frame_window_update.h", + "src/core/transport/chttp2/hpack_encoder.h", "src/core/transport/chttp2/hpack_parser.h", "src/core/transport/chttp2/hpack_table.h", "src/core/transport/chttp2/http2_errors.h", @@ -13919,14 +14640,13 @@ "src/core/transport/chttp2/incoming_metadata.h", "src/core/transport/chttp2/internal.h", "src/core/transport/chttp2/status_conversion.h", - "src/core/transport/chttp2/stream_encoder.h", "src/core/transport/chttp2/stream_map.h", "src/core/transport/chttp2/timeout_encoding.h", "src/core/transport/chttp2/varint.h", "src/core/transport/chttp2_transport.h", "src/core/transport/connectivity_state.h", "src/core/transport/metadata.h", - "src/core/transport/stream_op.h", + "src/core/transport/metadata_batch.h", "src/core/transport/transport.h", "src/core/transport/transport_impl.h" ], @@ -13968,6 +14688,8 @@ "src/core/channel/http_server_filter.h", "src/core/channel/noop_filter.c", "src/core/channel/noop_filter.h", + "src/core/channel/subchannel_call_holder.c", + "src/core/channel/subchannel_call_holder.h", "src/core/client_config/client_config.c", "src/core/client_config/client_config.h", "src/core/client_config/connector.c", @@ -14106,8 +14828,6 @@ "src/core/surface/api_trace.c", "src/core/surface/api_trace.h", "src/core/surface/byte_buffer.c", - "src/core/surface/byte_buffer_queue.c", - "src/core/surface/byte_buffer_queue.h", "src/core/surface/byte_buffer_reader.c", "src/core/surface/call.c", "src/core/surface/call.h", @@ -14133,6 +14853,8 @@ "src/core/surface/server_create.c", "src/core/surface/surface_trace.h", "src/core/surface/version.c", + "src/core/transport/byte_stream.c", + "src/core/transport/byte_stream.h", "src/core/transport/chttp2/alpn.c", "src/core/transport/chttp2/alpn.h", "src/core/transport/chttp2/bin_encoder.c", @@ -14150,6 +14872,8 @@ "src/core/transport/chttp2/frame_settings.h", "src/core/transport/chttp2/frame_window_update.c", "src/core/transport/chttp2/frame_window_update.h", + "src/core/transport/chttp2/hpack_encoder.c", + "src/core/transport/chttp2/hpack_encoder.h", "src/core/transport/chttp2/hpack_parser.c", "src/core/transport/chttp2/hpack_parser.h", "src/core/transport/chttp2/hpack_table.c", @@ -14163,8 +14887,6 @@ "src/core/transport/chttp2/parsing.c", "src/core/transport/chttp2/status_conversion.c", "src/core/transport/chttp2/status_conversion.h", - "src/core/transport/chttp2/stream_encoder.c", - "src/core/transport/chttp2/stream_encoder.h", "src/core/transport/chttp2/stream_lists.c", "src/core/transport/chttp2/stream_map.c", "src/core/transport/chttp2/stream_map.h", @@ -14179,8 +14901,8 @@ "src/core/transport/connectivity_state.h", "src/core/transport/metadata.c", "src/core/transport/metadata.h", - "src/core/transport/stream_op.c", - "src/core/transport/stream_op.h", + "src/core/transport/metadata_batch.c", + "src/core/transport/metadata_batch.h", "src/core/transport/transport.c", "src/core/transport/transport.h", "src/core/transport/transport_impl.h", @@ -15182,6 +15904,25 @@ "test/core/end2end/tests/cancel_test_helpers.h" ], "language": "c", + "name": "end2end_test_cancel_with_status", + "src": [ + "test/core/end2end/end2end_tests.h", + "test/core/end2end/tests/cancel_test_helpers.h", + "test/core/end2end/tests/cancel_with_status.c" + ] + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [ + "test/core/end2end/end2end_tests.h", + "test/core/end2end/tests/cancel_test_helpers.h" + ], + "language": "c", "name": "end2end_test_census_simple_request", "src": [ "test/core/end2end/end2end_tests.h", @@ -15429,6 +16170,25 @@ "test/core/end2end/tests/cancel_test_helpers.h" ], "language": "c", + "name": "end2end_test_negative_deadline", + "src": [ + "test/core/end2end/end2end_tests.h", + "test/core/end2end/tests/cancel_test_helpers.h", + "test/core/end2end/tests/negative_deadline.c" + ] + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [ + "test/core/end2end/end2end_tests.h", + "test/core/end2end/tests/cancel_test_helpers.h" + ], + "language": "c", "name": "end2end_test_no_op", "src": [ "test/core/end2end/end2end_tests.h", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 4f1538ac2f..c4333bb1cf 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -47,7 +47,7 @@ "exclude_configs": [], "flaky": false, "language": "c", - "name": "chttp2_status_conversion_test", + "name": "chttp2_hpack_encoder_test", "platforms": [ "linux", "mac", @@ -65,7 +65,7 @@ "exclude_configs": [], "flaky": false, "language": "c", - "name": "chttp2_stream_encoder_test", + "name": "chttp2_status_conversion_test", "platforms": [ "linux", "mac", @@ -683,24 +683,6 @@ "exclude_configs": [], "flaky": false, "language": "c", - "name": "grpc_stream_op_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ] - }, - { - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "exclude_configs": [], - "flaky": false, - "language": "c", "name": "hpack_parser_test", "platforms": [ "linux", @@ -1839,6 +1821,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_compress_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_compress_census_simple_request_test", "platforms": [ "linux", @@ -2073,6 +2073,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_compress_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_compress_no_op_test", "platforms": [ "linux", @@ -2424,6 +2442,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_fakesec_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_fakesec_census_simple_request_test", "platforms": [ "linux", @@ -2645,6 +2680,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_fakesec_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_fakesec_no_op_test", "platforms": [ "linux", @@ -2994,6 +3046,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_full_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_full_census_simple_request_test", "platforms": [ "linux", @@ -3228,6 +3298,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_full_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_full_no_op_test", "platforms": [ "linux", @@ -3537,6 +3625,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_full+poll_cancel_with_status_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_full+poll_census_simple_request_test", "platforms": [ "linux" @@ -3693,6 +3793,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_full+poll_negative_deadline_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_full+poll_no_op_test", "platforms": [ "linux" @@ -3975,6 +4087,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_oauth2_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_oauth2_census_simple_request_test", "platforms": [ "linux", @@ -4196,6 +4325,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_oauth2_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_oauth2_no_op_test", "platforms": [ "linux", @@ -4536,6 +4682,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_proxy_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_proxy_census_simple_request_test", "platforms": [ "linux", @@ -4706,6 +4869,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_proxy_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_proxy_no_op_test", "platforms": [ "linux", @@ -5029,6 +5209,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair_census_simple_request_test", "platforms": [ "linux", @@ -5199,6 +5396,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair_no_op_test", "platforms": [ "linux", @@ -5531,6 +5745,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair+trace_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair+trace_census_simple_request_test", "platforms": [ "linux", @@ -5711,6 +5943,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair+trace_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair+trace_no_op_test", "platforms": [ "linux", @@ -6044,6 +6294,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair_1byte_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair_1byte_census_simple_request_test", "platforms": [ "linux", @@ -6214,6 +6481,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair_1byte_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair_1byte_no_op_test", "platforms": [ "linux", @@ -6546,6 +6830,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_ssl_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_ssl_census_simple_request_test", "platforms": [ "linux", @@ -6780,6 +7082,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_ssl_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_ssl_no_op_test", "platforms": [ "linux", @@ -7089,6 +7409,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_ssl+poll_cancel_with_status_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_ssl+poll_census_simple_request_test", "platforms": [ "linux" @@ -7245,6 +7577,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_ssl+poll_negative_deadline_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_ssl+poll_no_op_test", "platforms": [ "linux" @@ -7527,6 +7871,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_ssl_proxy_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_ssl_proxy_census_simple_request_test", "platforms": [ "linux", @@ -7697,6 +8058,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_ssl_proxy_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_ssl_proxy_no_op_test", "platforms": [ "linux", @@ -8029,6 +8407,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uchannel_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uchannel_census_simple_request_test", "platforms": [ "linux", @@ -8263,6 +8659,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uchannel_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uchannel_no_op_test", "platforms": [ "linux", @@ -8606,6 +9020,22 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uds_cancel_with_status_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uds_census_simple_request_test", "platforms": [ "linux", @@ -8798,6 +9228,22 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uds_negative_deadline_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uds_no_op_test", "platforms": [ "linux", @@ -9084,6 +9530,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uds+poll_cancel_with_status_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uds+poll_census_simple_request_test", "platforms": [ "linux" @@ -9228,6 +9686,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uds+poll_negative_deadline_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uds+poll_no_op_test", "platforms": [ "linux" @@ -9501,6 +9971,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_compress_cancel_with_status_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_compress_census_simple_request_nosec_test", "platforms": [ "linux", @@ -9735,6 +10223,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_compress_negative_deadline_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_compress_no_op_nosec_test", "platforms": [ "linux", @@ -10077,6 +10583,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_full_cancel_with_status_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_full_census_simple_request_nosec_test", "platforms": [ "linux", @@ -10311,6 +10835,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_full_negative_deadline_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_full_no_op_nosec_test", "platforms": [ "linux", @@ -10608,6 +11150,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_full+poll_cancel_with_status_nosec_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_full+poll_census_simple_request_nosec_test", "platforms": [ "linux" @@ -10764,6 +11318,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_full+poll_negative_deadline_nosec_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_full+poll_no_op_nosec_test", "platforms": [ "linux" @@ -11029,6 +11595,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_proxy_cancel_with_status_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_proxy_census_simple_request_nosec_test", "platforms": [ "linux", @@ -11199,6 +11782,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_proxy_negative_deadline_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_proxy_no_op_nosec_test", "platforms": [ "linux", @@ -11505,6 +12105,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair_cancel_with_status_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair_census_simple_request_nosec_test", "platforms": [ "linux", @@ -11675,6 +12292,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair_negative_deadline_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair_no_op_nosec_test", "platforms": [ "linux", @@ -11989,6 +12623,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair+trace_cancel_with_status_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair+trace_census_simple_request_nosec_test", "platforms": [ "linux", @@ -12169,6 +12821,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair+trace_negative_deadline_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair+trace_no_op_nosec_test", "platforms": [ "linux", @@ -12485,6 +13155,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair_1byte_cancel_with_status_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair_1byte_census_simple_request_nosec_test", "platforms": [ "linux", @@ -12655,6 +13342,23 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_sockpair_1byte_negative_deadline_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_sockpair_1byte_no_op_nosec_test", "platforms": [ "linux", @@ -12969,6 +13673,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uchannel_cancel_with_status_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uchannel_census_simple_request_nosec_test", "platforms": [ "linux", @@ -13203,6 +13925,24 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uchannel_negative_deadline_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uchannel_no_op_nosec_test", "platforms": [ "linux", @@ -13530,6 +14270,22 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uds_cancel_with_status_nosec_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uds_census_simple_request_nosec_test", "platforms": [ "linux", @@ -13722,6 +14478,22 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uds_negative_deadline_nosec_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, + { + "ci_platforms": [ + "linux", + "mac", + "posix" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uds_no_op_nosec_test", "platforms": [ "linux", @@ -13996,6 +14768,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uds+poll_cancel_with_status_nosec_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uds+poll_census_simple_request_nosec_test", "platforms": [ "linux" @@ -14140,6 +14924,18 @@ "exclude_configs": [], "flaky": false, "language": "c", + "name": "h2_uds+poll_negative_deadline_nosec_test", + "platforms": [ + "linux" + ] + }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", "name": "h2_uds+poll_no_op_nosec_test", "platforms": [ "linux" |