From 1c805ec901761a81eb9298fb87b1c8592b46fe2a Mon Sep 17 00:00:00 2001 From: Adele Zhou Date: Tue, 20 Feb 2018 17:07:53 -0800 Subject: Add more bazel tests --- test/core/gpr/BUILD | 10 ++++++++++ test/core/iomgr/BUILD | 13 +++++++++++++ test/core/security/BUILD | 25 +++++++++++++++++++++++++ test/core/surface/BUILD | 25 +++++++++++++++++++++++++ test/cpp/end2end/BUILD | 21 +++++++++++++++++++++ test/cpp/grpclb/BUILD | 39 +++++++++++++++++++++++++++++++++++++++ test/cpp/test/BUILD | 39 +++++++++++++++++++++++++++++++++++++++ test/cpp/thread_manager/BUILD | 40 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 212 insertions(+) create mode 100644 test/cpp/grpclb/BUILD create mode 100644 test/cpp/test/BUILD create mode 100644 test/cpp/thread_manager/BUILD (limited to 'test') diff --git a/test/core/gpr/BUILD b/test/core/gpr/BUILD index 9aa74cc132..4032664b59 100644 --- a/test/core/gpr/BUILD +++ b/test/core/gpr/BUILD @@ -28,6 +28,16 @@ grpc_cc_test( ], ) +grpc_cc_test( + name = "arena_test", + srcs = ["arena_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//test/core/util:gpr_test_util", + ], +) + grpc_cc_test( name = "cpu_test", srcs = ["cpu_test.cc"], diff --git a/test/core/iomgr/BUILD b/test/core/iomgr/BUILD index 41e2607646..349a06d578 100644 --- a/test/core/iomgr/BUILD +++ b/test/core/iomgr/BUILD @@ -59,6 +59,19 @@ grpc_cc_test( ], ) +grpc_cc_test( + name = "error_test", + srcs = ["error_test.cc"], + language = "C++", + deps = [ + ":endpoint_tests", + "//:gpr", + "//:grpc", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + ], +) + grpc_cc_test( name = "ev_epollsig_linux_test", srcs = ["ev_epollsig_linux_test.cc"], diff --git a/test/core/security/BUILD b/test/core/security/BUILD index 6eaf0a19ce..9776e6d5fd 100644 --- a/test/core/security/BUILD +++ b/test/core/security/BUILD @@ -66,6 +66,31 @@ grpc_cc_test( ], ) +grpc_cc_test( + name = "json_token_test", + srcs = ["json_token_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + ], +) + +grpc_cc_test( + name = "jwt_verifier_test", + srcs = ["jwt_verifier_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + ], +) + + grpc_cc_test( name = "secure_endpoint_test", srcs = ["secure_endpoint_test.cc"], diff --git a/test/core/surface/BUILD b/test/core/surface/BUILD index d27123d1a3..e848dded13 100644 --- a/test/core/surface/BUILD +++ b/test/core/surface/BUILD @@ -54,6 +54,18 @@ grpc_cc_test( ], ) +grpc_cc_test( + name = "completion_queue_threading_test", + srcs = ["completion_queue_threading_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + ], +) + grpc_cc_test( name = "concurrent_connectivity_test", srcs = ["concurrent_connectivity_test.cc"], @@ -103,6 +115,19 @@ grpc_cc_test( ], ) +grpc_cc_test( + name = "num_external_connectivity_watchers_test", + srcs = ["num_external_connectivity_watchers_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/end2end:ssl_test_data", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + ], +) + grpc_cc_test( name = "public_headers_must_be_c89", srcs = ["public_headers_must_be_c89.c"], diff --git a/test/cpp/end2end/BUILD b/test/cpp/end2end/BUILD index afa054ae10..8ab0811ffa 100644 --- a/test/cpp/end2end/BUILD +++ b/test/cpp/end2end/BUILD @@ -200,6 +200,27 @@ grpc_cc_test( ], ) +grpc_cc_test( + name = "health_service_end2end_test", + srcs = ["health_service_end2end_test.cc"], + external_deps = [ + "gtest", + ], + deps = [ + ":test_service_impl", + "//:gpr", + "//:grpc", + "//:grpc++", + "//src/proto/grpc/health/v1:health_proto", + "//src/proto/grpc/testing:echo_messages_proto", + "//src/proto/grpc/testing:echo_proto", + "//src/proto/grpc/testing/duplicate:echo_duplicate_proto", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + "//test/cpp/util:test_util", + ], +) + grpc_cc_test( name = "hybrid_end2end_test", srcs = ["hybrid_end2end_test.cc"], diff --git a/test/cpp/grpclb/BUILD b/test/cpp/grpclb/BUILD new file mode 100644 index 0000000000..8319eb5142 --- /dev/null +++ b/test/cpp/grpclb/BUILD @@ -0,0 +1,39 @@ +# Copyright 2017 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +licenses(["notice"]) # Apache v2 + +load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_package", "grpc_cc_binary") + +grpc_package( + name = "test/cpp/grpclb", + visibility = "public", +) # Allows external users to implement grpclb tests. + +grpc_cc_test( + name = "grpclb_api_test", + srcs = ["grpclb_api_test.cc"], + external_deps = [ + "gtest", + ], + deps = [ + "//:gpr", + "//:grpc", + "//:grpc++", + "//src/proto/grpc/lb/v1:load_balancer_proto", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + "//test/cpp/util:test_util", + ], +) diff --git a/test/cpp/test/BUILD b/test/cpp/test/BUILD new file mode 100644 index 0000000000..c549478919 --- /dev/null +++ b/test/cpp/test/BUILD @@ -0,0 +1,39 @@ +# Copyright 2017 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +licenses(["notice"]) # Apache v2 + +load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_package", "grpc_cc_binary") + +grpc_package( + name = "test/cpp/test", + visibility = "public", +) + +grpc_cc_test( + name = "server_context_test_spouse_test", + srcs = ["server_context_test_spouse_test.cc"], + external_deps = [ + "gtest", + ], + deps = [ + "//:gpr", + "//:grpc", + "//:grpc++", + "//:grpc++_test", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + "//test/cpp/util:test_util", + ], +) diff --git a/test/cpp/thread_manager/BUILD b/test/cpp/thread_manager/BUILD new file mode 100644 index 0000000000..093e51e3fa --- /dev/null +++ b/test/cpp/thread_manager/BUILD @@ -0,0 +1,40 @@ +# Copyright 2017 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +licenses(["notice"]) # Apache v2 + +load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_package", "grpc_cc_binary") + +grpc_package( + name = "test/cpp/thread_manager", + visibility = "public", +) + +grpc_cc_test( + name = "thread_manager_test", + srcs = ["thread_manager_test.cc"], + external_deps = [ + "gflags", + "gtest", + ], + deps = [ + "//:gpr", + "//:grpc", + "//:grpc++", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + "//test/cpp/util:test_config", + "//test/cpp/util:test_util", + ], +) -- cgit v1.2.3 From 9429f7dfc9f9797238e55de7e562b488ee474333 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Wed, 21 Feb 2018 12:41:21 +0100 Subject: increase deadline in dualstack_socket_test --- test/core/end2end/dualstack_socket_test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test') diff --git a/test/core/end2end/dualstack_socket_test.cc b/test/core/end2end/dualstack_socket_test.cc index 411d0f2308..eb1d043fb2 100644 --- a/test/core/end2end/dualstack_socket_test.cc +++ b/test/core/end2end/dualstack_socket_test.cc @@ -166,7 +166,7 @@ void test_connect(const char* server_host, const char* client_host, int port, } else { /* Give up faster when failure is expected. BUG: Setting this to 1000 reveals a memory leak (b/18608927). */ - deadline = grpc_timeout_milliseconds_to_deadline(3000); + deadline = grpc_timeout_milliseconds_to_deadline(8000); } /* Send a trivial request. */ -- cgit v1.2.3 From 6c9a87c174189a767eca3bc387f36f4d5880cde3 Mon Sep 17 00:00:00 2001 From: Muxi Yan Date: Wed, 21 Feb 2018 16:06:25 -0800 Subject: Polish infer_length_after_decode and add test cases --- .../ext/transport/chttp2/transport/bin_decoder.cc | 12 +++++++-- .../ext/transport/chttp2/transport/bin_decoder.h | 2 +- test/core/transport/chttp2/bin_decoder_test.cc | 30 ++++++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/src/core/ext/transport/chttp2/transport/bin_decoder.cc b/src/core/ext/transport/chttp2/transport/bin_decoder.cc index 53b8622259..831a36961e 100644 --- a/src/core/ext/transport/chttp2/transport/bin_decoder.cc +++ b/src/core/ext/transport/chttp2/transport/bin_decoder.cc @@ -75,12 +75,20 @@ static bool input_is_valid(uint8_t* input_ptr, size_t length) { #define COMPOSE_OUTPUT_BYTE_2(input_ptr) \ (uint8_t)((decode_table[input_ptr[2]] << 6) | decode_table[input_ptr[3]]) -size_t grpc_base64_infer_length_after_decode(const grpc_slice& slice) { +// By RFC 4648, if the length of the encoded string without padding is 4n+r, +// the length of decoded string is: 1) 3n if r = 0, 2) 3n + 1 if r = 2, 3, or +// 3) invalid if r = 1. +size_t grpc_chttp2_base64_infer_length_after_decode(const grpc_slice& slice) { size_t len = GRPC_SLICE_LENGTH(slice); const uint8_t* bytes = GRPC_SLICE_START_PTR(slice); while (len > 0 && bytes[len - 1] == '=') { len--; } + if (GRPC_SLICE_LENGTH(slice) - len > 2) { + gpr_log(GPR_ERROR, + "Base64 decoding failed. Input has more than 2 paddings."); + return 0; + } size_t tuples = len / 4; size_t tail_case = len % 4; if (tail_case == 1) { @@ -88,7 +96,7 @@ size_t grpc_base64_infer_length_after_decode(const grpc_slice& slice) { "Base64 decoding failed. Input has a length of %zu (without" " padding), which is invalid.\n", len); - tail_case = 0; + return 0; } return tuples * 3 + tail_xtra[tail_case]; } diff --git a/src/core/ext/transport/chttp2/transport/bin_decoder.h b/src/core/ext/transport/chttp2/transport/bin_decoder.h index b5acb3fa91..a0d74fb20d 100644 --- a/src/core/ext/transport/chttp2/transport/bin_decoder.h +++ b/src/core/ext/transport/chttp2/transport/bin_decoder.h @@ -49,6 +49,6 @@ grpc_slice grpc_chttp2_base64_decode_with_length(grpc_slice input, size_t output_length); /* Infer the length of decoded data from encoded data. */ -size_t grpc_base64_infer_length_after_decode(const grpc_slice& slice); +size_t grpc_chttp2_base64_infer_length_after_decode(const grpc_slice& slice); #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_BIN_DECODER_H */ diff --git a/test/core/transport/chttp2/bin_decoder_test.cc b/test/core/transport/chttp2/bin_decoder_test.cc index 283eebbacf..751dd90c8c 100644 --- a/test/core/transport/chttp2/bin_decoder_test.cc +++ b/test/core/transport/chttp2/bin_decoder_test.cc @@ -67,6 +67,16 @@ static grpc_slice base64_decode_with_length(const char* s, return out; } +static size_t base64_infer_length(const char* s) { + grpc_slice ss = grpc_slice_from_copied_string(s); + size_t out = grpc_chttp2_base64_infer_length_after_decode(ss); + grpc_slice_unref_internal(ss); + return out; +} + +#define EXPECT_DECODED_LENGTH(s, expected) \ + GPR_ASSERT((expected) == base64_infer_length((s))); + #define EXPECT_SLICE_EQ(expected, slice) \ expect_slice_eq( \ grpc_slice_from_copied_buffer(expected, sizeof(expected) - 1), slice, \ @@ -131,6 +141,26 @@ int main(int argc, char** argv) { // Test illegal charactors in grpc_chttp2_base64_decode_with_length EXPECT_SLICE_EQ("", base64_decode_with_length("Zm:v", 3)); EXPECT_SLICE_EQ("", base64_decode_with_length("Zm=v", 3)); + + EXPECT_DECODED_LENGTH("", 0); + EXPECT_DECODED_LENGTH("ab", 1); + EXPECT_DECODED_LENGTH("abc", 2); + EXPECT_DECODED_LENGTH("abcd", 3); + EXPECT_DECODED_LENGTH("abcdef", 4); + EXPECT_DECODED_LENGTH("abcdefg", 5); + EXPECT_DECODED_LENGTH("abcdefgh", 6); + + EXPECT_DECODED_LENGTH("ab==", 1); + EXPECT_DECODED_LENGTH("abc=", 2); + EXPECT_DECODED_LENGTH("abcd", 3); + EXPECT_DECODED_LENGTH("abcdef==", 4); + EXPECT_DECODED_LENGTH("abcdefg=", 5); + EXPECT_DECODED_LENGTH("abcdefgh", 6); + + EXPECT_DECODED_LENGTH("a", 0); + EXPECT_DECODED_LENGTH("a===", 0); + EXPECT_DECODED_LENGTH("abcde", 0); + EXPECT_DECODED_LENGTH("abcde===", 0); } grpc_shutdown(); return all_ok ? 0 : 1; -- cgit v1.2.3